<classpathentry kind="lib" path="lib/miglayout-4.0-swing.jar"/>
<classpathentry kind="lib" path="lib/jswingreader-0.3.jar" sourcepath="/jswingreader"/>
<classpathentry kind="lib" path="lib/commons-codec-1.3.jar"/>
- <classpathentry kind="lib" path="lib/min-jaba-client-2.0.jar" sourcepath="/clustengine2"/>
<classpathentry kind="lib" path="lib/Jmol-12.2.4.jar"/>
<classpathentry kind="lib" path="appletlib/JmolApplet-12.2.4.jar"/>
<classpathentry kind="lib" path="lib/jdas-1.0.4.jar"/>
<classpathentry kind="lib" path="lib/spring-core-3.0.5.RELEASE.jar"/>
<classpathentry kind="lib" path="lib/spring-web-3.0.5.RELEASE.jar"/>
+ <classpathentry kind="lib" path="lib/VARNAv3-9-dev.jar"/>
+ <classpathentry kind="lib" path="lib/groovy-all-1.8.2.jar"/>
+ <classpathentry kind="lib" path="lib/min-jabaws-client-2.1.0.jar" sourcepath="/clustengine"/>
<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/plugin.jar"/>
- <classpathentry kind="lib" path="/Users/jimp/git/jalview_clean/lib/VARNAv3-9-dev.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
<classpathentry kind="output" path="classes"/>
</classpath>
</dictionary>
</arguments>
</buildCommand>
- <buildCommand>
- <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
- <triggers>full,incremental,</triggers>
- <arguments>
- <dictionary>
- <key>LaunchConfigHandle</key>
- <value><project>/.externalToolBuilders/buildapplet [Builder].launch</value>
- </dictionary>
- </arguments>
- </buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.groovy.core.groovyNature</nature>
<!-- Key Password -->
<property name="jalview.key.pass" value="alignmentisfun" />
+
+
<!-- Don't change anything below here unless you know what you are doing! -->
<!-- Url path for WebStart in JNLP file -->
<property name="WebStartLocation" value="http://www.jalview.org/webstart" />
<property name="WebStartImage" value="JalviewLogo_big.png"/>
<!-- J2SE version needed for webstart launch -->
<property name="j2sev" value="1.6+"/>
+
+ <!-- Permissions for running Java applets and applications. Defaults are those suitable for deploying jalview webstart/jalviewLite at www.jalview.org -->
+ <property name="application.codebase" value="*.jalview.org"/>
+ <property name="applet.codebase" value="*.jalview.org"/>
+ <property name="applet.caller-codebase" value="${applet.codebase}"/>
+
<!-- build directory configuration -->
<property name="libDir" value="lib" />
<property name="resourceDir" value="resources" />
<target name="makefulldist" depends="makedist">
<!-- the default keystore details might need to be edited here -->
- <signjar storepass="${jalview.keystore.pass}" keypass="${jalview.key.pass}" keystore="${jalview.keystore}" alias="${jalview.key}" lazy="false" verbose="false">
+ <signjar storepass="${jalview.keystore.pass}" keypass="${jalview.key.pass}" keystore="${jalview.keystore}" alias="${jalview.key}" lazy="false" verbose="false" sigalg="SHA1withRSA">
<fileset dir="${packageDir}">
<include name="*.jar" />
<include name="*.jar"/>
</fileset>
</delete>
- <jar destfile="${packageDir}/${outputJar}">
+ <jar destfile="${packageDir}/${outputJar}" index="true">
<manifest>
<attribute name="Main-Class" value="jalview.bin.Jalview" />
+ <attribute name="Permissions" value="all-permissions" />
+ <!--<attribute name="Trusted-Lib" value="true" /> -->
+ <attribute name="Application-Name" value="Jalview Desktop"/>
+ <attribute name="Codebase" value="${application.codebase}"/>
</manifest>
<fileset dir="${outputDir}/">
<exclude name="cache*/**" />
<target name="packageApplet" depends="compileApplet, buildPropertiesFile">
<copy file="${resourceDir}/images/idwidth.gif" toFile="${outputDir}/images/idwidth.gif" />
<copy file="${resourceDir}/images/link.gif" toFile="${outputDir}/images/link.gif" />
- <jar destfile="in.jar">
+ <copy todir="${outputDir}/lang">
+ <fileset dir="${resourceDir}/lang"><include name="**.*"/></fileset></copy>
+ <jar destfile="in.jar" index="true">
<manifest>
<attribute name="Main-Class" value="jalview.bin.JalviewLite" />
+ <attribute name="Application-Name" value="JalviewLite Applet"/>
+ <!-- <attribute name="Permissions" value="sandbox" /> -->
+ <!--<attribute name="Trusted-Lib" value="true" /> -->
+ <attribute name="Codebase" value="${applet.codebase}"/>
+ <attribute name="Caller-Allowable-Codebase" value="${applet.caller-codebase}"/>
</manifest>
<fileset dir="${outputDir}">
<include name="com/**" />
<include name=".build_properties" />
<include name="images/idwidth.gif" />
<include name="images/link.gif" />
+ <include name="lang/**" />
</fileset>
</jar>
</target>
<injar file="in.jar" />
<outjar file="${jalviewLiteJar}" />
<libraryjar refid="obfuscateDeps.path" />
+ <dontwarn/>
<keep access="public" type="class" name="jalview.bin.JalviewLite">
<field access="public" />
<method access="public" />
<constructor access="public" />
</keep>
+ <keep access="public" type="class" name="jalview.appletgui.AlignFrame">
+ <field access="public" />
+ <method access="public" />
+ <constructor access="public" />
+ </keep>
<!-- -libraryjars "${obfuscateDeps}"
-injars in.jar
-outjars jalviewApplet.jar
<include name="**/*"/>
</fileset>
</copy>
-
+ <jar update="true" index="true" jarfile="${packageDir}/examples/${jalviewLiteJar}"/>
+ <jar update="true" index="true" jarfile="${packageDir}/examples/${jmolJar}">
+ <manifest>
+ <attribute name="Application-Name" value="Jmol (bundled with JalviewLite)"/>
+ <!-- <attribute name="Permissions" value="sandbox" /> -->
+ <!--<attribute name="Trusted-Lib" value="true" /> -->
+ <attribute name="Codebase" value="${applet.codebase}"/>
+ <attribute name="Caller-Allowable-Codebase" value="${applet.caller-codebase}"/>
+ </manifest>
+ </jar>
+ <signjar sigalg="SHA1WithRSA" storepass="${jalview.keystore.pass}" keypass="${jalview.key.pass}" keystore="${jalview.keystore}" alias="${jalview.key}" lazy="false" verbose="false">
+ <fileset dir="${packageDir}/examples">
+ <include name="*.jar" />
+ </fileset>
+ </signjar>
</target>
<target name="sourcedoc" description="Create jalview source documentation pages" depends="init">
<javadoc destdir="${javadocDir}">
--- /dev/null
+<!DOCTYPE html SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\r
+<!--\r
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8)\r
+ * Copyright (C) 2012 J Procter, AM Waterhouse, LM Lui, J Engelhardt, G Barton, M Clamp, S Searle\r
+ * \r
+ * This file is part of Jalview.\r
+ * \r
+ * Jalview is free software: you can redistribute it and/or\r
+ * modify it under the terms of the GNU General Public License \r
+ * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.\r
+ * \r
+ * Jalview is distributed in the hope that it will be useful, but \r
+ * WITHOUT ANY WARRANTY; without even the implied warranty \r
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR \r
+ * PURPOSE. See the GNU General Public License for more details.\r
+ * \r
+ * You should have received a copy of the GNU General Public License along with Jalview. If not, see <http://www.gnu.org/licenses/>.\r
+-->\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+ <head>Jalview i18n</head>\r
+ <body>\r
+<h1>Best practices</h1>\r
+<ol>\r
+<li>Follow the standards described in this guide</li>\r
+<li>Always use properties files for user interface text; never include displayable text in code</li>\r
+<li>Use properties files only for user interface text (Messages_xx.properties) and config files for configuration settings (jalview.properties).</li>\r
+<li>Use a proper naming schema for keys in your resource bundles. The name of the keys should provide some information about the context of the displayed text. This helps the translators during the translation process.</li>\r
+<li>Group keys by view, ie. edit.title, edit.instructions, list.title, list.instructions, create.title, etc</li>\r
+<li>Never use displayable text when executing comparisons within the logic of the tool (separate codified values from displayable text)</li>\r
+<li>Always use the MessageManager class for retrieving properties values, and invoke MessageManager methods dynamically, to accommodate dynamic user preferences (see MessageManager below).</li>\r
+<li>All numbers and dates should be formatted specific to the user's locale (e.g. java.text.NumberFormat and java.text.DateFormat)</li>\r
+<li>Test code in more than one language</li>\r
+</ol>\r
+<h1>MessageManager</h1>\r
+<p>The jalview.util.MessageManager class is a wrapper class for the ResourceBundle class. It provides dynamic language/locale support for individual users, and is recommended for all Jalview code.</p>\r
+<p>To use it within your code, you only have to invoke MessageManager with the text key in Messages_xx.properties:</p>\r
+<p>JButton ok = new JButton(MessageManager.getString("button.ok"));</p>\r
+<p>This will set JButton text to the one included at button.ok key. In English JButton text will be OK, while in Spanish will be Aceptar. This is the big thing of i18n. :)</p>\r
+<h1>How to translate Jalview</h1>\r
+<p>Anyone interested in localizing/translating Jalview is strongly encouraged to join the <a href="mailto:jalview-dev@jalview.org">Jalview Development List</a> list. We would recommend that you read this entire page before proceeding.</p>\r
+<p>If you are planning on working on a Jalview translation, please send us an email (<a href="mailto:jalview-dev@jalview.org">Jalview Development List</a>). There may be someone else already working on translating Jalview to your target language.</p>\r
+<p>Once you have downloaded the source code (available at <a href="http://www.jalview.org/download">http://www.jalview.org/download</a>), you must edit {jalview.home}/resources/lang/Messages_xx.properties, where xx refers to your language country code. If it doesn't exits, rename Messages.properties to Messages_xx.properties.</p>\r
+<p>Next step...start transtalation!</p>\r
+<p>Once you have it translated, we would appreciate if you contribute it forwarding the file to <a href="mailto:jalview-dev@jalview.org">Jalview Development List</a>. We will commit it to the code base as soon as possible. Thanks so much for this in advance!</p>\r
+</body>\r
+</html>\r
+\r
--- /dev/null
+# STOCKHOLM 1.0
+#=GF ID Fer2
+#=GF AC PF00111.22
+#=GF DE 2Fe-2S iron-sulfur cluster binding domain
+#=GF PI fer2;
+#=GF AU Sonnhammer ELL
+#=GF SE Prosite
+#=GF GA 20.70 15.00;
+#=GF TC 20.70 15.70;
+#=GF NC 20.60 14.90;
+#=GF BM hmmbuild HMM.ann SEED.ann
+#=GF SM hmmsearch -Z 15929002 -E 1000 --cpu 4 HMM pfamseq
+#=GF TP Domain
+#=GF WK Ferredoxin
+#=GF DR INTERPRO; IPR001041;
+#=GF DR PROSITE; PDOC00175;
+#=GF DR PROSITE; PDOC00642;
+#=GF DR SCOP; 3fxc; fa;
+#=GF DR HOMSTRAD; fer2;
+#=GF DR HOMSTRAD; Ald_Xan_dh_1;
+#=GF SQ 206
+#=GS FER_GLEJA/8-82 AC P00233.1
+#=GS FER2_RAPSA/9-84 AC P14937.1
+#=GS Q39648_CITSI/61-136 AC Q39648.1
+#=GS FER3_MAIZE/63-138 AC P27788.1
+#=GS FER6_MAIZE/66-141 AC P94044.1
+#=GS FER1_SYNP2/9-83 AC P31965.2
+#=GS FER1_EQUAR/7-81 AC P00235.1
+#=GS FER2_EQUAR/7-80 AC P00237.1
+#=GS FER2_EQUAR/7-80 DR PDB; 1WRI A; 7-80;
+#=GS FER2_PLEBO/10-85 AC P46035.2
+#=GS P95533_PSEPU/253-328 AC P95533.1
+#=GS KSHB_MYCTU/273-348 AC P96853.1
+#=GS Q44253_ACISP/251-326 AC Q44253.1
+#=GS Q59656_PLEBO/573-647 AC Q59656.1
+#=GS P71846_MYCTU/600-675 AC P71846.3
+#=GS O84985_PSEPU/271-347 AC O84985.2
+#=GS PAAE_ECOLI/266-342 AC P76081.1
+#=GS HCR_ECOLI/241-316 AC P75824.3
+#=GS O87803_PSEST/5-82 AC O87803.2
+#=GS TMOF_PSEME/4-81 AC Q03304.1
+#=GS O32476_PSESP/4-81 AC O32476.1
+#=GS Q51944_BURPI/5-82 AC Q51944.1
+#=GS Q53028_RHOCO/4-80 AC Q53028.1
+#=GS Q45344_BURPI/10-88 AC Q45344.1
+#=GS Q9ZNP1_COMTE/9-88 AC Q9ZNP1.1
+#=GS Q9Z418_PSEPU/11-90 AC Q9Z418.1
+#=GS Q9ZAN6_9BURK/12-91 AC Q9ZAN6.1
+#=GS FERN_PSEPU/7-85 AC P23263.1
+#=GS O24827_ACISP/7-85 AC O24827.1
+#=GS FERX_PSEPU/8-86 AC P23103.1
+#=GS Q52061_PSEPU/8-86 AC Q52061.1
+#=GS Q52167_PSEPU/8-86 AC Q52167.1
+#=GS O84964_9RALS/4-82 AC O84964.1
+#=GS Q9Z3W9_9SPHN/8-85 AC Q9Z3W9.1
+#=GS DMPP_PSEUF/5-82 AC P19734.3
+#=GS O84963_9RALS/4-81 AC O84963.1
+#=GS Q52574_PSESP/5-83 AC Q52574.1
+#=GS Q9ZNP2_COMTE/5-82 AC Q9ZNP2.1
+#=GS Q43983_ACICA/5-82 AC Q43983.1
+#=GS O87617_PSEAE/3-78 AC O87617.1
+#=GS O52378_9RALS/3-78 AC O52378.1
+#=GS Q51492_PSEAE/3-78 AC Q51492.1
+#=GS NDOR_PSEPU/3-78 AC Q52126.1
+#=GS Q52140_PSEPU/3-78 AC Q52140.1
+#=GS Q9Z9X8_9GAMM/242-317 AC Q9Z9X8.1
+#=GS VANB_PSEUH/234-309 AC O05617.1
+#=GS VANB_PSES9/231-306 AC P12580.1
+#=GS VANB_PSEPU/231-307 AC O54037.1
+#=GS VANB_ACIAD/234-309 AC O24840.1
+#=GS O88034_STRCO/230-305 AC O88034.1
+#=GS P94680_COMTE/234-309 AC P94680.1
+#=GS CBAB_COMTE/232-307 AC Q44257.2
+#=GS POBB_PSEPS/236-311 AC Q52186.1
+#=GS YEAX_ECOLI/237-313 AC P76254.1
+#=GS Q47914_SPHCR/241-316 AC Q47914.2
+#=GS PDR_BURCE/241-314 AC P33164.3
+#=GS PDR_BURCE/241-314 DR PDB; 2PIA A; 240-313;
+#=GS PHT2_PSEPU/243-316 AC Q05182.1
+#=GS O86347_MYCTU/231-301 AC O86347.3
+#=GS YFAE_ECOLI/4-77 AC P0ABW3.1
+#=GS Y1309_HAEIN/3-75 AC P45154.1
+#=GS O31003_VIBAN/5-73 AC O31003.1
+#=GS RFBI_SALTY/5-76 AC P26395.1
+#=GS P95461_9PSED/17-94 AC P95461.1
+#=GS O85971_SPHAR/13-90 AC O85971.1
+#=GS XYLA_PSEPU/20-97 AC P21394.1
+#=GS YCBX_ECOLI/293-362 AC P75863.1
+#=GS P96096_THIFE/9-86 AC P96096.1
+#=GS MMOC_METTR/7-81 AC Q53563.1
+#=GS O85675_ACIAD/8-85 AC O85675.1
+#=GS BENC_ACIAD/19-98 AC P07771.2
+#=GS BENC_ACIAD/19-98 DR PDB; 1KRH B; 9-88;
+#=GS BENC_ACIAD/19-98 DR PDB; 1KRH A; 9-88;
+#=GS XYLZ_PSEPU/8-86 AC P23101.1
+#=GS CBDC_BURCE/8-85 AC Q51603.1
+#=GS O66892_AQUAE/7-72 AC O66892.1
+#=GS O85226_PSEFL/27-86 AC O85226.1
+#=GS O29575_ARCFU/14-75 AC O29575.1
+#=GS O27878_METTH/21-82 AC O27878.1
+#=GS Y092_METJA/14-73 AC Q57557.1
+#=GS FER5_RHOCA/10-107 AC P37097.2
+#=GS Q44501_AZOVI/10-107 AC Q44501.1
+#=GS Q46508_DESFR/6-74 AC Q46508.1
+#=GS Q9ZBV9_STRCO/15-78 AC Q9ZBV9.1
+#=GS NUOG_MYCTU/19-82 AC P95175.2
+#=GS O87815_CUPNE/22-85 AC O87815.1
+#=GS NQO3_THET8/4-88 AC Q56223.2
+#=GS NQO3_THET8/4-88 DR PDB; 3M9S C; 4-88;
+#=GS NQO3_THET8/4-88 DR PDB; 3M9S 3; 4-88;
+#=GS P74022_SYNY3/6-69 AC P74022.1
+#=GS P94157_SYNP6/6-69 AC P94157.1
+#=GS Q44513_ANAVA/6-69 AC Q44513.1
+#=GS P77908_MOOTH/4-67 AC P77908.3
+#=GS Q9ZJW1_HELPJ/4-65 AC Q9ZJW1.1
+#=GS O05397_BACSU/11-72 AC O05397.1
+#=GS YJGC_BACSU/7-68 AC O34720.1
+#=GS NUOG_SALTI/4-72 AC P0A1Y5.2
+#=GS O66748_AQUAE/6-70 AC O66748.1
+#=GS NDUS1_DICDI/5-71 AC Q34312.1
+#=GS NQO3_PARDE/7-71 AC P29915.4
+#=GS NDUS1_NEUCR/38-101 AC P24918.2
+#=GS NUOG_RICPR/4-67 AC Q9ZCF6.1
+#=GS NDUS1_SOLTU/70-133 AC Q43644.1
+#=GS NDUS1_RECAM/4-67 AC O21241.1
+#=GS NDUS1_BOVIN/34-97 AC P15690.1
+#=GS O52683_THEMA/3-65 AC O52683.1
+#=GS Q46606_DESVU/3-71 AC Q46606.1
+#=GS HOXU_CUPNH/5-66 AC P22318.2
+#=GS P72305_RHOOP/5-66 AC P72305.1
+#=GS Q59261_CLOSA/4-67 AC Q59261.1
+#=GS Q9ZNE4_CLOPE/4-67 AC Q9ZNE4.1
+#=GS PHF1_CLOPA/4-67 AC P29166.1
+#=GS Q59262_CLOAB/4-66 AC Q59262.1
+#=GS P74801_SYNY3/5-63 AC P74801.1
+#=GS XDHE_BACSU/18-77 AC O32143.1
+#=GS HCRC_THAAR/7-66 AC O33818.1
+#=GS HCRC_THAAR/7-66 DR PDB; 1SB3 F; 7-66;
+#=GS HCRC_THAAR/7-66 DR PDB; 1RM6 C; 7-66;
+#=GS HCRC_THAAR/7-66 DR PDB; 1RM6 F; 7-66;
+#=GS HCRC_THAAR/7-66 DR PDB; 1SB3 C; 7-66;
+#=GS P95635_RHOPA/15-74 AC P95635.1
+#=GS XDHC_ECOLI/11-69 AC Q46801.1
+#=GS YAGT_ECOLI/65-124 AC P77165.1
+#=GS DCMS_HYDPS/8-67 AC P19915.2
+#=GS Q52589_9PSED/8-67 AC Q52589.1
+#=GS O52837_BRAJA/6-65 AC O52837.1
+#=GS O53709_MYCTU/5-64 AC O53709.1
+#=GS O87682_ARTNI/8-67 AC O87682.1
+#=GS Q59128_ARTNI/14-73 AC Q59128.1
+#=GS P72223_PSEPU/14-73 AC P72223.1
+#=GS P72223_PSEPU/14-73 DR PDB; 1T3Q A; 14-73;
+#=GS P72223_PSEPU/14-73 DR PDB; 1T3Q D; 14-73;
+#=GS Q9ZBN8_STRCO/5-65 AC Q9ZBN8.1
+#=GS O54050_RHOCA/5-68 AC O54050.1
+#=GS O54050_RHOCA/5-68 DR PDB; 1JRP A; 5-68;
+#=GS O54050_RHOCA/5-68 DR PDB; 2W3R A; 5-68;
+#=GS O54050_RHOCA/5-68 DR PDB; 2W3S A; 5-68;
+#=GS O54050_RHOCA/5-68 DR PDB; 1JRP G; 5-68;
+#=GS O54050_RHOCA/5-68 DR PDB; 2W54 E; 5-68;
+#=GS O54050_RHOCA/5-68 DR PDB; 1JRP E; 5-68;
+#=GS O54050_RHOCA/5-68 DR PDB; 2W55 A; 5-68;
+#=GS O54050_RHOCA/5-68 DR PDB; 2W3R E; 5-68;
+#=GS O54050_RHOCA/5-68 DR PDB; 2W3S E; 5-68;
+#=GS O54050_RHOCA/5-68 DR PDB; 2W54 G; 5-68;
+#=GS O54050_RHOCA/5-68 DR PDB; 2W3R G; 5-68;
+#=GS O54050_RHOCA/5-68 DR PDB; 2W54 A; 5-68;
+#=GS O54050_RHOCA/5-68 DR PDB; 1JRO A; 5-68;
+#=GS O54050_RHOCA/5-68 DR PDB; 1JRO E; 5-68;
+#=GS O54050_RHOCA/5-68 DR PDB; 2W55 E; 5-68;
+#=GS O54050_RHOCA/5-68 DR PDB; 2W55 C; 5-68;
+#=GS O54050_RHOCA/5-68 DR PDB; 2W3R C; 5-68;
+#=GS O54050_RHOCA/5-68 DR PDB; 1JRO C; 5-68;
+#=GS O54050_RHOCA/5-68 DR PDB; 2W54 C; 5-68;
+#=GS O54050_RHOCA/5-68 DR PDB; 2W3S G; 5-68;
+#=GS O54050_RHOCA/5-68 DR PDB; 2W55 G; 5-68;
+#=GS O54050_RHOCA/5-68 DR PDB; 2W3S C; 5-68;
+#=GS O54050_RHOCA/5-68 DR PDB; 1JRO G; 5-68;
+#=GS O54050_RHOCA/5-68 DR PDB; 1JRP C; 5-68;
+#=GS O23887_MAIZE/15-85 AC O23887.1
+#=GS ALDO4_ARATH/8-78 AC Q7G191.2
+#=GS ALDO1_ARATH/23-95 AC Q7G193.2
+#=GS O30328_ACEEU/4-63 AC O30328.1
+#=GS IORA_BREDI/4-64 AC Q51697.1
+#=GS XDH_EMENI/39-108 AC Q12553.2
+#=GS O61198_CAEEL/8-78 AC O61198.2
+#=GS O17892_CAEEL/18-86 AC O17892.1
+#=GS XDH_DROSU/13-83 AC P91711.1
+#=GS O17506_BOMMO/19-89 AC O17506.1
+#=GS Q17250_BOMMO/18-88 AC Q17250.2
+#=GS ADO_BOVIN/9-79 AC P48034.2
+#=GS XDH_BOVIN/8-78 AC P80457.4
+#=GS XDH_BOVIN/8-78 DR PDB; 1V97 B; 8-78;
+#=GS XDH_BOVIN/8-78 DR PDB; 3NVY A; 8-78;
+#=GS XDH_BOVIN/8-78 DR PDB; 3NVY J; 8-78;
+#=GS XDH_BOVIN/8-78 DR PDB; 3NRZ J; 8-78;
+#=GS XDH_BOVIN/8-78 DR PDB; 3NVV A; 8-78;
+#=GS XDH_BOVIN/8-78 DR PDB; 3NRZ A; 8-78;
+#=GS XDH_BOVIN/8-78 DR PDB; 1N5X A; 8-78;
+#=GS XDH_BOVIN/8-78 DR PDB; 1N5X B; 8-78;
+#=GS XDH_BOVIN/8-78 DR PDB; 1V97 A; 8-78;
+#=GS XDH_BOVIN/8-78 DR PDB; 1VDV A; 8-78;
+#=GS XDH_BOVIN/8-78 DR PDB; 3NVV J; 8-78;
+#=GS XDH_BOVIN/8-78 DR PDB; 1VDV B; 8-78;
+#=GS XDH_BOVIN/8-78 DR PDB; 3NS1 A; 8-78;
+#=GS XDH_BOVIN/8-78 DR PDB; 3NS1 J; 8-78;
+#=GS MOP_DESGI/6-65 AC Q46509.1
+#=GS MOP_DESGI/6-65 DR PDB; 1VLB A; 6-65;
+#=GS MOP_DESGI/6-65 DR PDB; 1SIJ A; 6-65;
+#=GS O53669_MYCTU/13-78 AC O53669.1
+#=GS O29566_ARCFU/5-80 AC O29566.1
+#=GS O30225_ARCFU/5-84 AC O30225.1
+#=GS NQRF_CHLTR/46-122 AC O84745.1
+#=GS NQRF_HAEIN/43-119 AC O05012.1
+#=GS NQRF_VIBAL/39-115 AC Q56584.1
+#=GS O84062_CHLTR/8-83 AC O84062.1
+#=GS Q9Z8H9_CHLPN/8-83 AC Q9Z8H9.1
+#=GS CSMJ_CHLTE/5-82 AC O68983.1
+#=GS CSMI_CHLTE/5-82 AC O68988.1
+#=GS FER_TRIVA/13-90 AC P21149.1
+#=GS FER_TRIVA/13-90 DR PDB; 1L5P A; 5-83;
+#=GS FER_TRIVA/13-90 DR PDB; 1L5P C; 5-83;
+#=GS FER_TRIVA/13-90 DR PDB; 1L5P B; 5-83;
+#=GS P73774_SYNY3/7-88 AC P73774.1
+#=GS FER_BUCAP/10-92 AC O51882.1
+#=GS O69222_AZOVI/11-93 AC O69222.1
+#=GS FER_HAEIN/10-92 AC P44428.2
+#=GS FER_PSEAE/10-92 AC Q51383.2
+#=GS ADRX_YEAST/67-149 AC Q12184.1
+#=GS ADX_PIG/71-155 AC P00258.2
+#=GS FER2_RICPR/11-93 AC Q9ZDW6.1
+#=GS O49551_ARATH/44-127 AC O49551.1
+#=GS ETP1_SCHPO/525-592 AC Q10361.2
+#=GS ETP1_SCHPO/525-592 DR PDB; 2WLB A; 525-607;
+#=GS ETP1_SCHPO/525-592 DR PDB; 2WLB B; 525-607;
+#=GS O07876_SPHSX/8-91 AC O07876.1
+#=GS Q9ZAM5_SPHSX/8-91 AC Q9ZAM5.1
+#=GS FER2_CAUCR/8-91 AC P37098.1
+#=GS FER6_RHOCA/7-91 AC P80306.1
+#=GS FER6_RHOCA/7-91 DR PDB; 1UWM A; 7-91;
+#=GS P74447_SYNY3/31-113 AC P74447.1
+#=GS P73171_SYNY3/7-85 AC P73171.1
+#=GS FER1_AQUAE/3-83 AC O67065.1
+#=GS FER4_RHOCA/7-86 AC P16022.1
+#=GS P74283_SYNY3/5-88 AC P74283.1
+#=GS PUTX_PSEPU/8-92 AC P00259.3
+#=GS PUTX_PSEPU/8-92 DR PDB; 1PDX A; 7-91;
+#=GS PUTX_PSEPU/8-92 DR PDB; 1OQR C; 7-91;
+#=GS PUTX_PSEPU/8-92 DR PDB; 1OQR B; 7-91;
+#=GS PUTX_PSEPU/8-92 DR PDB; 1XLP C; 7-91;
+#=GS PUTX_PSEPU/8-92 DR PDB; 1R7S A; 7-91;
+#=GS PUTX_PSEPU/8-92 DR PDB; 1OQR A; 7-91;
+#=GS PUTX_PSEPU/8-92 DR PDB; 1YJJ A; 7-91;
+#=GS PUTX_PSEPU/8-92 DR PDB; 1R7S C; 7-91;
+#=GS PUTX_PSEPU/8-92 DR PDB; 1OQQ B; 7-91;
+#=GS PUTX_PSEPU/8-92 DR PDB; 1XLP A; 7-91;
+#=GS PUTX_PSEPU/8-92 DR PDB; 1XLP B; 7-91;
+#=GS PUTX_PSEPU/8-92 DR PDB; 1R7S B; 7-91;
+#=GS PUTX_PSEPU/8-92 DR PDB; 1OQQ A; 7-91;
+#=GS PUTX_PSEPU/8-92 DR PDB; 1XLN B; 7-91;
+#=GS PUTX_PSEPU/8-92 DR PDB; 1YJI A; 7-91;
+#=GS PUTX_PSEPU/8-92 DR PDB; 1XLN A; 7-91;
+#=GS TERPB_PSESP/8-92 AC P33007.2
+#=GS P95277_MYCTU/9-84 AC P95277.1
+#=GS O05933_PSEPU/11-88 AC O05933.1
+#=GS DESET_MYCTU/303-373 AC O05875.1
+#=GS O23344_ARATH/57-131 AC O23344.1
+#=GS P74159_SYNY3/11-86 AC P74159.1
+#=GS FER2_SYNP6/8-83 AC P08451.2
+#=GS P73388_SYNY3/9-84 AC P73388.1
+#=GS FER1_HALMA/35-108 AC P00217.2
+#=GS P74449_SYNY3/11-88 AC P74449.1
+#=GS FER2_NOSMU/10-85 AC P00249.2
+#=GS FER2_APHSA/10-86 AC P00251.2
+#=GS FER1_CYAPA/10-85 AC P17007.3
+#=GS FER_PORPU/10-85 AC P51320.2
+#=GS FER_ODOSI/10-85 AC P49522.2
+#=GS FER_BUMFI/9-84 AC P13106.1
+#=GS FER3_CYACA/9-84 AC P00241.1
+#=GS FER2_CYACA/8-83 AC P15789.1
+#=GS FER_BRYMA/8-83 AC P07838.1
+#=GS FER_APHSA/9-83 AC P00250.2
+#=GS FER_THEVL/9-84 AC P0A3D1.2
+#=GS FER_PERBI/6-80 AC P10770.1
+#=GS FER3_RAPSA/8-82 AC P14938.1
+#=GS FER1_SPIOL/58-132 AC P00221.2
+#=GS FER_SILPR/57-131 AC P04669.1
+#=GS FER_WHEAT/54-128 AC P00228.2
+#=GS FER_SAMNI/8-82 AC P00226.1
+#=GS FERA_ALOMA/8-82 AC P81372.1
+#=GS FER_ARCLA/8-82 AC P00223.1
+#=GS FER_DATST/8-82 AC P68165.1
+#=GS FER_PALPL/9-83 AC P07484.1
+#=GS FER_EUGVI/8-82 AC P22341.1
+#=GS FER_CHLFU/6-80 AC P56408.1
+#=GS FER_SYNY4/9-83 AC P00243.2
+#=GS FER1_PHYAM/8-82 AC P00229.1
+#=GS FER2_PHYAM/9-83 AC P00231.1
+#=GS FER2_SPIOL/8-82 AC P00224.1
+#=GS FER_PHYPA/57-132 AC O04166.1
+#=GS FER_MARPO/7-81 AC P09735.1
+FER_GLEJA/8-82 LTPDGE...RTIEVPDDKF.ILDAGE...E.A.GLDLPYSCRA.......GA....CSSCTGKLLDGRV.....DQSE...QSFLDDDQMAEGFV.....................LTCVAYPA
+FER2_RAPSA/9-84 IGPEGE..ENEFEVQDDQF.ILDAAE...E.A.GVDLPYSCRA.......GA....CSTCAGQIVKGQV.....DQSE...GSFLEDDHFEKGFV.....................LTCVAYPQ
+Q39648_CITSI/61-136 IGPMGE..EHEFEAQEDQY.ILDAAE...E.A.GVDLPYSCRA.......GA....CSTCAGKLVSGSV.....DQSD...GSFLDDNQMEAGYL.....................LTCISYPT
+FER3_MAIZE/63-138 VGPEGE..EHEFDAPDDAY.ILDAAE...T.A.GVELPYSCRA.......GA....CSTCAGKIESGSV.....DQSD...GSFLDDGQQEEGYV.....................LTCVSYPK
+FER6_MAIZE/66-141 VGPDGT..EHEFEAPDDTY.ILEAAE...T.A.GVELPFSCRA.......GS....CSTCAGRMSAGEV.....DQSE...GSFLDDGQMAEGYL.....................LTCISYPK
+FER1_SYNP2/9-83 ITPDGE...VSYDAPDDEY.ILDSAG...D.A.GYDLPASCRA.......GA....CSTCAGKIVSGTV.....DQSE...QSFLDDDQIEAGYV.....................LTCIAYPQ
+FER1_EQUAR/7-81 KTPSGE...FTLDVPEGTT.ILDAAE...E.A.GYDLPFSCRA.......GA....CSSCLGKVVSGSV.....DESE...GSFLDDGQMEEGFV.....................LTCIAIPE
+FER2_EQUAR/7-80 KTPDGD...ITFDVEPGER.LIDIGS...E.K..ADLPLSCQA.......GA....CSTCLGKIVSGTV.....DQSE...GSFLDDEQIEQGYV.....................LTCIAIPE
+#=GR FER2_EQUAR/7-80 SS E-----...EEEEE-----.TT----...-.S..S----SS--.......--....-STT---EEE-EE.....E---...-----HHHHH----.....................-TTT-EEE
+FER2_PLEBO/10-85 NKKRNL..DITLPVDEDTT.VLEAAE...E.A.ELDLPFSCHS.......GA....CSSCVGKVVEGEI.....NQDD...QTFLDEEQVAKGFV.....................LLCVTYPR
+P95533_PSEPU/253-328 VLMKGQ..THAVPVRAGEL.LLSAML...R.A.GLPAPHACRV.......GE....CASCMCRLQAGEVQ....RLDS....SVLDEDDVAAG.W...................L.LACRTRAA
+KSHB_MYCTU/273-348 VELDGQ..THTVSWPRTAK.LLDVLL...A.A.GLDAPFSCRE.......GH....CGACACTLRAGKVN....MGVN....DVLEQQDLDEG.L...................I.LACQSRPE
+Q44253_ACISP/251-326 FMLNGI..KNSVMCSEDDFILNEIIK......AGINVPSSCCA.......GN....CGSCMCLLVSGDVI....LESN....TVLDASDEEDGWI.....................LACRSKPR
+Q59656_PLEBO/573-647 FAQSGK....EITCTQDDL.ILDIAD.....QAEVAIESSCRS.......GT....CGSCKCTLLEGEV.....SYDS..EPDVLDEHDRASGQI.....................LTCIARPV
+P71846_MYCTU/600-675 FTLSGQ..RAIFDLVPGDS.ILEGAL...G..LRSDAPYACMG.......GA....CGTCRAKLIEGNVE....MD....HNFALRKAELDAGYI.....................LTCQSHPT
+O84985_PSEPU/271-347 VISDGR..ALTFDLPRNTQNVLDAGN...A.I.GAELPYSCKA.......GV....CSTCKCRVIEGEV.....EMDS...NHALEDYEVAAGYV.....................LSCQTYPV
+PAAE_ECOLI/266-342 VRQDGR..DREIVLNADDESILDAAL...R.Q.GADLPYACKG.......GV....CATCKCKVLRGKV.....AMET...NYSLEPDELAAGYV.....................LSCQALPL
+HCR_ECOLI/241-316 FTKLQP..AREFYAPVGTT.LLEALE.....SNNVPVVAACRA.......GV....CGCCKTKVVSGEY.....TVSS...TMTLTDAEIAEGYV.....................LACSCHPQ
+O87803_PSEST/5-82 IKIADT..DVEFTISDRDT.ILRAAL...R.D.GIPISYECNS.......GG....CGSCKIDVVEGQVE...TLWGE...APGLSPRDKRK.SR...................K.LACQCLAS
+TMOF_PSEME/4-81 IQSDDL..LHHFEADSNDT.LLSAAL...R.A.ELVFPYECNS.......GG....CGACKIELLEGEVS...NLWPD...APGLAARELRK.NR...................F.LACQCKPL
+O32476_PSESP/4-81 LKIEGQ..APGTCG.SGKS.LLVSAL...A.N.GIGFPYECAS.......GG....CGVCKFELLEGNVQ...SMWPD...APGLSSRDREKGNR...................H.LACQCVAL
+Q51944_BURPI/5-82 ITIEGG..SAFSVAADEDT.LLRGAL...R.G.GIALPHECSV.......GG....CGACRFDLLSGLVE...SIWPE...APGLSERDRKR.GK...................H.LACQSRPL
+Q53028_RHOCO/4-80 INVQPF..SHEYSCEDGES.LLDGAL..RN...SLLLKYGCKH.......GG....CGTCKVRLLDGDV.....EEPG..SSFALTPEDRENDVI.....................LACASVPL
+Q45344_BURPI/10-88 YAWNRP..RSTTHARPPKA.SLTGML...R.LGRKGIPVGCVN.......GG....CGVCKVRVLDGST......RLGR.RQPCPRQRRRRSAGL...................T.LACREAPL
+Q9ZNP1_COMTE/9-88 VSVEQT..GDTYACGTHES.LLSGML...R.LGRKGIPVGCVN.......GG....CGVCKVQVLEGAV.....RHLGP.VSCAHVSDLERDQGY...................T.LACRVAPL
+Q9Z418_PSEPU/11-90 VHVMQT..GETFPCATDES.LLQGML...R.LGRKGIPVGCVN.......GG....CGVCKVHVIEGQC.....RPLGP.VSRAHVSAAEEARGF...................T.LACRVAPV
+Q9ZAN6_9BURK/12-91 VHVAQT..DETFPCAGNES.LLTGMV...R.LGRKGIPVGCVN.......GG....CGVCKVRIVEGQI.....KALGP.ISRAHVTLDEENQGY...................T.LACRVAPQ
+FERN_PSEPU/7-85 ITVQPG..GERFVCQPQQS.ALHAME...T.QGKRCLPVGCRG.......GG....CGLCKVRVLAGDY......ESGR.VSCKHLPVEAREQGY...................A.LACRLFAR
+O24827_ACISP/7-85 ITEQCS..GQRFPCKAGQS.VLKAME...Q.QGLECAPVGCRG.......GG....CGLCKVTVREGDY......ECGK.MSRVHAPPEALAQGE...................V.LACRIYPL
+FERX_PSEPU/8-86 VFEVLS..GQSFRCAEGQS.VLRAME...A.QGKRCIPVGCRG.......GG....CGLCRVRVLSGAY......RSGR.MSRGHVPAKAAAEAL...................A.LACQVFPQ
+Q52061_PSEPU/8-86 IRETVS..GQTFRCLPDQS.VLSAME...Q.QGKRCVPVGCRG.......GG....CGLCKVRVLSGTY......QCHK.MSCNHVPPEAAKQGL...................A.LACQLFPQ
+Q52167_PSEPU/8-86 VHETNS..GQSFTCRPDQS.VLRAME...E.QGKRCVPVGCRG.......GG....CGLCKVRVLSGDY......QCGR.MSCSQVPPEAAQQGL...................A.LACQLYPR
+O84964_9RALS/4-82 VEIADS..GQRYPCDPGQN.LLRAME...V.LGQRGIPAGCRG.......GG....CGVCKVRIESGRY......RTGK.MSRACLSEAEQGQGL...................V.LACKAFPD
+Q9Z3W9_9SPHN/8-85 IRILGG..GQ.FACPEGER.VLIAME...Q.FGSSDIGVGCRG.......GG....CGFCLVRVVEGEY......RTGK.MSTAKVSVADQAKGY...................A.LACRIYPM
+DMPP_PSEUF/5-82 VTIEPT..GEVIEVEDGQT.ILQAAL...R.Q.GVWLPFACGH.......GT....CATCKVQVVEGEVD...IGEAS...PFALMDIERDERKV.....................LACCAIPL
+O84963_9RALS/4-81 LTIEPI..GQTIPIAPGQT.VLDACL...R.S.GVWLPHACCH.......GL....CATCKVQVVEGEVD...QGEAS..SFALMDFER.DNGQC.....................LACCATAQ
+Q52574_PSESP/5-83 LTIEPL..GRTLDVAEGQT.LLDAAL...R.S.GVYIPHACGH.......GL....CGTCKVQVTSGEVD...HGAAN..PLRRSWISSGEEGKT.....................LACCATAL
+Q9ZNP2_COMTE/5-82 LTLEPL..GASIEVEEGQT.LLDAAL...R.Q.GIYIPHACGH.......GL....CGTCKIQVCDGDVD...HGAAN..PFALMDMER.EDGMT.....................LACCATLQ
+Q43983_ACICA/5-82 VTIEPA..GTIIQVEEDQT.ILDAAL...R.Q.GVWLPFACGH.......GT....CGTCKVQVTDGFYD...VGEAS..PFALMDIER.EENKV.....................LACCCKPE
+O87617_PSEAE/3-78 LHIQPL..GQTLSVDSGAN.LLEALR...A.AE.VPISYSCMA.......GR....CGTCRCKVLKGQV......L..E.SGREATLTNPHADDY...................V.LACMSAIT
+O52378_9RALS/3-78 LVVEPL..NLHLNAETGST.LLDVLR...S.NE.VPISYSCMS.......GR....CGTCRCRVIAGHL......R..D.NGPETGRPQAGKGTY...................V.LACQAVLT
+Q51492_PSEAE/3-78 LLVLPN..NRRLPFDSGAN.LLEVLR...E.HR.VGISYSCMS.......GR....CGTCRCRVIDGSV......I..S.SAAKSGDSNRIEEHY...................V.LACQSVLT
+NDOR_PSEPU/3-78 LLIQPN..NRIIPFSAGAN.LLEVLR...E.NG.VAISYSCLS.......GR....CGTCRCRVIDGSV......I..D.SGAENGQSNLTDKQY...................V.LACQSVLT
+Q52140_PSEPU/3-78 LLIQPN..NRLISFSPGAN.LLEVLR...E.NG.VAISYSCMS.......GR....CGTCRCRVTDGSV......I..D.SGTGSGLPHLVDEHY...................V.LACRSVLT
+Q9Z9X8_9GAMM/242-317 VRIASS..GATVHVDKHTT.IVAALA...S.I.GIEVDTSCGE.......GV....CGTCMVDVVSGTP.....EHRD....HCLSKAERASGKV...................I.CCCVSRAR
+VANB_PSEUH/234-309 VRIHST..GQVLQVPADQT.VSQVLD...A.A.GIIVPVSCEQ.......GI....CGTCITRVVDGEP.....DHRD....FFLTDAEKAKNDQ...................F.TPCCSRAK
+VANB_PSES9/231-306 GRLARS..GLTLQVPAERS.VAQVLD...D.A.GVCIPLACEQ.......GI....CGTCLTRVLDGEP.....EHRD....SFLTDAERARNDQ...................F.TPCCSRAR
+VANB_PSEPU/231-307 VQLNST..GQVFEVPADQS.VVHVLE...Q.H.GIAIAMSCEQ.......GI....CGTCLTRVLSGTPE....ASRP....VFLTEQEQALNDQ...................F.TPCCSRSK
+VANB_ACIAD/234-309 IEVLGS..DRKIEVSAHQT.ATQALL...E.H.GFDVPVSCEQ.......GI....CGTCITRVVSGTP.....DHRD....VFMTDEEHALNDQ...................F.TPCCSRAK
+O88034_STRCO/230-305 VVLARS..GRTVAVPPGTS.VLDAVR...E.T.GVEVLYSCTE.......GT....CGTCETEVVEGEP.....DHRD....SVLTEEERAAGET...................M.LICVSRCR
+P94680_COMTE/234-309 LVLQRA..GLSTTVDAHES.VLDAME...R.V.GVDFPWSCRE.......GI....CGTCEAPVLEGEV.....QHLD....YVLSPEERAEQRR...................M.MVCVSRCG
+CBAB_COMTE/232-307 VNLARS..GAQYVVREGET.ILDVLR...N.A.GHHVTSSCRQ.......GI....CGMCETTLISGVP.....DHRD....RLLTDSEKASGRT...................M.LICCSRAL
+POBB_PSEPS/236-311 VHLARS..GRTIPIAAGCT.ILDALQ...A.G.GVAVPSSCQQ.......GV....CGICETAVLAGVP.....DHRD....LVLSDQERAAGRT...................M.MICCSGSK
+YEAX_ECOLI/237-313 LVLARS..GKEFVVPEEMT.ILQVIE...N.NKAAKVECLCRE.......GV....CGTCETAILEGEA.....DHRD....QYFSDEERASQQS...................M.LICCSRAK
+Q47914_SPHCR/241-316 VLARRS..GQEFTVEPGMT.ILETLL...Q.N.GISRNYSCTQ.......GV....CGTCETKVLEGEP.....DHRD....WVLSDEKKASNST...................M.LICCSLSK
+PDR_BURCE/241-314 VRLSRS..GTSFEIPANRS.ILEVLR...D.A.NVRVPSSCES.......GT....CGSCKTALCSGEA.....DHRD....MVLRDD..EKGTQ...................I.MVCVSRAK
+#=GR PDR_BURCE/241-314 SS EEES--..--EEEE-TTS-.HHHHHH...H.T.T-----S---.......--....----EEEEEE--E.....E---....SS--TT..T---E...................E.ETTT-EES
+PHT2_PSEPU/243-316 VTLGRS..GIDLEIPVDRS.ILEVLR...D.N.GIRAPSSCES.......GT....CGSCRTRLIEGDV.....EHRD....MVLREDEQH..DQ...................I.MICVSRAR
+O86347_MYCTU/231-301 LELARS..RRVLRVPANRS.ALDVML.....DWDPTTAYSCQQ.......GF....CGTCKVRVLAGQV.....DRRG....RIIEGDN.....E...................M.LVCVSRAV
+YFAE_ECOLI/4-77 VTLRIT..GTQLLCQDEHP.SLLAAL...E.SHNVAVEYQCRE.......GY....CGSCRTRLVAGQV......D......WIAEPLAFIQPGE...................I.LPCCCRAK
+Y1309_HAEIN/3-75 IHLIRH..NTTLEFNNET..SLLDHL...E.KNNIHHEYQCRS.......GY....CGSCRVKIKKGKV......S......YKEMPLAFIQPDE...................I.LLCCCHVE
+O31003_VIBAN/5-73 VIVKPS..GVEYQSG..RN.ILDDAF...A.S.SISLEHSCKT.......GD....CGVCCAEVISGLV.....ENEN........GELVTQG.H...................I.LTCQSKAK
+RFBI_SALTY/5-76 IKIFPS..NIEFSGREDES.ILDAAL...S.A.GIHLEHSCKA.......GD....CGICESDLLAGEVV....DSKG.........NIFGQGDK...................I.LTCCCKPK
+P95461_9PSED/17-94 VQILPQ..DVTIVLEPGQT.LLEAAL...A.N.GIAYPHDCTV.......GT....CASCKTRLKQGRVR...EATPF...GYTLSKAELDA.GY...................I.LACQAFPR
+O85971_SPHAR/13-90 VTVEGS..PTTLDIPAGKT.LLEAML...D.A.GLAMPHDCKV.......GS....CGTCKFKLVSGKIG...ELSPS...ALALEGDELRS.GF...................R.LACQAIPR
+XYLA_PSEPU/20-97 VSVRGQ..GFQFKVPRGQT.ILESAL...H.Q.GIAFPHDCKV.......GS....CGTCKYKLISGRVN...ELTSS...AMGLSGDLYQS.GY...................R.LGCQCIPK
+YCBX_ECOLI/293-362 IDWQGQ....AFRGNNQQV.LLEQLE.....NQGIRIPYSCRA.......GI....CGSCRVQLLEGEV......T.P......LKKSAMGDDGT....................ILCCSCVPK
+P96096_THIFE/9-86 HTRDKQ..QVSFVCSEAED.LLSAAD...R.G.SILLPSQCRK.......GT....CGACVATVTAGTYH...LGEVS..MEALPEKAQ.ARGDV.....................LLCRTYPR
+MMOC_METTR/7-81 ETEDGE..TCRRMR.PSED.WISR.A...E.A.ERNLLASCRA.......G.....CATCKADCTDGDYE...LIDVK..VQAVPPDEE.EDGKV.....................LLCRTFPR
+O85675_ACIAD/8-85 NFADGK..TFFIAVQEDEL.LLDAAV...R.Q.GINLPLDCRE.......GV....CGTCQGTCETGIYE...QEYVD..EDALSERDL.AKRKM.....................LACQTRVK
+BENC_ACIAD/19-98 QFEDGV..TRFIRIAQGET.LSDAAY...R.Q.QINIPMDCRE.......GA....CGTCRAFCESGNYD...MPEDNY.IEDALTPEEAQQGYV.....................LACQCRPT
+#=GR BENC_ACIAD/19-98 SS E-----..EEEEEE-----.HHHHHH...H.T.T---S-S---.......--....----EEEEEE-EEE...--GGGS.-TTT--HHHHH---E.....................ETTT-EEE
+XYLZ_PSEPU/8-86 DFEDGV..TRFIDANTGET.VADAAY...R.Q.GINLPLDCRD.......GA....CGACKCFAESGRYS...LGEE.YIEDALSEAEA.EQGYV.....................LTCQMRAE
+CBDC_BURCE/8-85 RFEDDV..TYFITSSEHET.VADAAY...Q.H.GIRIPLDCRN.......GV....CGTCKGFCEHGEYD...GGDY.I.EDALSADEA.REGFV.....................LPCQMQAR
+O66892_AQUAE/7-72 RYSDGDFRWEEYEVDGEGKTVLEILQNIKEIDPTLSFRAMCRA.......GI....CGTCVVKVN.....................GEHK..........................LACNTRVY
+O85226_PSEFL/27-86 VTA.AL..GETVLSVIQATGLRQVAR...N.DHGQLVGAYCGM.......GV....CHCCLVQIDG...................RHKR...........................RACQTLVK
+O29575_ARCFU/14-75 AYWQSFEVPAKR.GMTVLEALYYIKE...NLDSSLAFRASCRM.......GI....CGSCAMKIN.....................DKP..........................RLACETQVL
+O27878_METTH/21-82 PHLESYEIPSKE.KMKVLDALQLINK...IHGANIAFRSSCRA.......GQ....CGSCAVKMN.....................GEV..........................VLACRAEVE
+Y092_METJA/14-73 EYLESYEVP..E.NITVLEALEYINK...HYEANILFRASCRN.......AQ....CGSCAVTIN.....................GEP..........................RLACETKVE
+FER5_RHOCA/10-107 IMKKDK..TIYAVAGNTATILALAKE...H.AIPIPF..ECG........DG...DCASCLIEVTHLDN.....KPAMAMMLTEKEKARLKELQMITAEEIEAA..EVSDLPPRFRLACQFIPR
+Q44501_AZOVI/10-107 LMPHNK..KVQAVAGKRSTLLGVAQE...N.GVKIPF..ECQ........DG...NCGSCLVKITHLDG.....ERIKGMLLTDKERNVLKSVGKLPKSEEERA..AVRDLPPTYRLACQTIVT
+Q46508_DESFR/6-74 ITIDGK..TTSVPE...GSTILDAAK...T.L.DIDIPTLCYLNLEALSINNKAASCRVCVVE.....................VEGRRN....L....................APSCATPVT
+Q9ZBV9_STRCO/15-78 FTLDGQ..EARVPE...GSTILDACR...A.A.GKDVPTLCEGDT..LAPKN...ACRVCVVD.....................VEGART....L....................APACSRKAE
+NUOG_MYCTU/19-82 LTIDGV..EISVPK...GTLVIRAAE...L.M.GIQIPRFCDHPL..LEPVG...ACRQCLV.....................EVEGQR....KP....................LASCTTVAT
+O87815_CUPNE/22-85 LEVDGV..SVTVPA...GTSVMRAAM...E.A.QIAVPKLCATDS..LRNFG...SCRLCLV.....................EIEGRR....GY....................PASCTTPVE
+NQO3_THET8/4-88 VKVNDR..IVEVPP...GTSVMDAVF...H.A.GYDVPLFCSEKH..LSPIG...ACRMCLVRIGLPKKGPDGKPLLNEKGEPEIQWQP....KL....................AASCVTAVA
+#=GR NQO3_THET8/4-88 SS EE-SS-..EEEE--...--BHHHHHH...H.-.------SS--TT..S----...----SEEB-------------------------S....S-....................EETTT-B--
+P74022_SYNY3/6-69 LTIDDK..AIAIEE...GASILQAAK...E.A.GVPIPTLCHLEG..ISEAA...ACRLCMVE.....................VEGTNK....L....................MPACVTAVS
+P94157_SYNP6/6-69 LQIDDQ..ELAANV...GQTVLQVAR...E.A.SIPIPTLCHLQG..VSDVG...ACRLCVVE.....................VAGSPK....L....................QPACLLTVS
+Q44513_ANAVA/6-69 LTINDQ..LISAQE...EETLLQAAQ...E.A.GIHIPTLCHLEG..VGDVG...ACRLCLVE.....................VAGSNK....L....................LPACVTKVA
+P77908_MOOTH/4-67 LTIDGQ..RVTAPE...GMTILEVAR...E.N.GIHIPTLCHHPK..LRPLG...YCRLCLVD.....................IEGAAK....P....................MTACNTPVA
+Q9ZJW1_HELPJ/4-65 MNINGK..TIECQE...GQSVLEAAR...S.A.GIYIPTICYLSG..CSPTV...ACKMCMV........................EMDG...KR....................IYSCNTKAK
+O05397_BACSU/11-72 VRVDGT..EIQARA...GATILDILN...E.N.GIEYPQICHVPE..VDPIQ...TCDTCIV........................EANG...KL....................VRSCATVAE
+YJGC_BACSU/7-68 ITINGV..EMEASE...EQTVLQLLN...N.S.SIEVPQVCYHPS..LGPIE...TCDTCIV........................SING...EL....................KRSCSAELK
+NUOG_SALTI/4-72 IHVDGK....EYEVNGADN.LLQACL...S.L.GLDIPYFCWHPAL.GSVGA....CRQCAVK..................QYQNAEDTR...GR...................LVMSCMTPAT
+O66748_AQUAE/6-70 KIYIDD...VEIEAEKGKTVLQVALE..N....GIDIPYFCYHPR..LSIAG...ACRMCVVY.......................WEDINR......................LVISCNLPVQ
+NDUS1_DICDI/5-71 FKINEI..ECEVNEEKEDITILQACT...A.N.GIEIPRFCYHEK..LTIAG...NCRMCLV.....................YVTNEE....KL....................LAACGIPLD
+NQO3_PARDE/7-71 IKIDDT....IIEVDPNMT.LIQACE...M.A.GIEVPRFCYHER..LSIAG...NCRMCLVEVVGG........PPK........PA............................ASCAMQVK
+NDUS1_NEUCR/38-101 LTIDGK..KVSIEA...GSALIQACE...K.A.GVTIPRYCYHEK..LMIAG...NCRMCLV.....................EVEKVP....KP....................VASCAWPVQ
+NUOG_RICPR/4-67 LIIDGS..EIEISE...GSTVYQACI...Q.A.GKEIPHFCYHAR..LKIAG...NCRMCLV.....................EIEKSQ....KP....................VASCAMPVS
+NDUS1_SOLTU/70-133 VFVDGY..PVKIPK...GMTVLQACE...I.A.GVDIPRFCYHSR..LSIAG...NCRMCLV.....................EVEKSP....KP....................VASCAMPAL
+NDUS1_RECAM/4-67 VFVDGL..SVEVKK...GATILQACA...Q.V.GIEIPRFCYHER..LSIAG...NCRMCLV.....................EVEKSP....KP....................VASCAMPVM
+NDUS1_BOVIN/34-97 VFVDGQ..SVMVEP...GTTVLQACE...K.V.GMQIPRFCYHER..LSVAG...NCRMCLV.....................EIEKAP....KV....................VAACAMPVM
+O52683_THEMA/3-65 IYVDGR..EVIIN..DNERNLLEALK.....NVGIEIPNLCYLS.....EASIYGACRMCLVEIN.......................GQIT........................TSCTLKPY
+Q46606_DESVU/3-71 AFINGK..EVRCEP...GRTILEAAR...E.N.GHFIPTLCELADIGHAPGT....CRVCLVE.....................IWRDKEAGPQI....................VTSCTTPVE
+HOXU_CUPNH/5-66 ITIDGK..TLTTEE...GRTLVDVAA...E.N.GVYIPTLCYLKDK.PCLGT....CRVCSVKVN.....................GN......V....................AAACTVRVS
+P72305_RHOOP/5-66 IEIDGV..TVTTEE...SRTLVDVAA...E.A.GVYIPTLCYLKGK.PSLGT....CRVCSVK.....................LNGTV..........................VAACTIRVA
+Q59261_CLOSA/4-67 IVIDEK..TIQVQE...NTTVIQAAL...A.N.GIDIPSLCYLNEC.GNVGK....CGVCAVE.....................IEGKNN....L....................ALACITKVE
+Q9ZNE4_CLOPE/4-67 IIINDK..TIEFDG...DKTILDLAR...E.N.GFDIPVLCELKNC.GNKGQ....CGVCLVE.....................QEGNDR....L....................LRSCAIKAK
+PHF1_CLOPA/4-67 IIINGV..QFNTDE...DTTILKFAR...D.N.NIDISALCFLNNCNNDINK....CEICTVE.....................VEGTG.....L....................VTACDTLIE
+Q59262_CLOAB/4-66 IILNGN..EVHTDK...DITILELAR...E.N.NVDIPTLCFLKDC.GNFGK....CGVCMVE.....................VEGKG.....F....................RAACVAKVE
+P74801_SYNY3/5-63 IHFLPD..DVTVAARVGEPILDVAER......AGVFIPTGCLM.......GS....CHACEVELG.......................DGTP.......................ICACISAVP
+XDHE_BACSU/18-77 MTVNGQ..AWEV.AAVPTTHLSDLLR...KEFQLTGTKVSCGI.......GR....CGACSILID.....................GK......L....................ANACMTMAY
+HCRC_THAAR/7-66 LTLNGR..ARED.LVPDNMLLLDYLR...ETVGLTGTKQGCDG.......GE....CGACTVLVD.....................DR......P....................RLACSTLAH
+#=GR HCRC_THAAR/7-66 SS EEE---..EEEE.EEETT-BHHHHHH...HT------------.......--....----EEEET.....................TE......E....................EEGGGSBGG
+P95635_RHOPA/15-74 LNVNGR..WRED.AVTDDMLLVDYLR...DIAGLTGVKTGCDG.......GE....CGACTVLID.....................GE......A....................APSCLVLAV
+XDHC_ECOLI/11-69 CTINGM..PFQLHAAPGTP.LSELLR...E.QGLLSVKQGCCV.......GE....CGACTVLVD....................G..TAID.........................SCLYLAA
+YAGT_ECOLI/65-124 LKVNGK..TEQL.EVDTRTTLLDTLR...ENLHLIGTKKGCDH.......GQ....CGACTVLVN.....................GR......R....................LNACLTLAV
+DCMS_HYDPS/8-67 VNVNGK..AQEK.AVEPRTLLIHFLR...EELNLTGAHIGCET.......SH....CGACTVDID.....................GR......S....................VKSCTHLAV
+Q52589_9PSED/8-67 MTVNGR..KVEE.AVEARTLLVHFLR...EKLNLTGTHIGCDT.......SH....CGACTVDVD.....................GK......S....................IKSCTHLAV
+O52837_BRAJA/6-65 LIVNGN..PVTA.NVDPRTLLVQFLR...ENLRLTGTHVGCDT.......SQ....CGACVVHLD.....................GK......A....................VKSCTTLAV
+O53709_MYCTU/5-64 MTVNGE..PVTA.EVEPRMLLVHFLR...DQLRLTGTHWGCDT.......SN....CGTCVVEVD.....................GV......P....................VKSCTMLAV
+O87682_ARTNI/8-67 VEVNGV..THAT.DVEPRRLLADFLR...DDLHLRGTRVGCEH.......GV....CGSCTVLLD.....................GQ......P....................VRSCTVLAV
+Q59128_ARTNI/14-73 VEVNGR..RRTV.AVDARETLADHLR...NDQKLTGIKLGCEH.......GV....CGACTILMD.....................GA......A....................VRSCLTLAA
+P72223_PSEPU/14-73 ATINGK..PRVF.YVEPRMHLADALR...EVVGLTGTKIGCEQ.......GV....CGSCTILID.....................GA......P....................MRSCLTLAV
+#=GR P72223_PSEPU/14-73 SS EEE---..EEEE.EE-TTSBHHHHHH...HT------------.......--....----EEEE-.....................--......E....................EEGGGSBGG
+Q9ZBN8_STRCO/5-65 LTVNGR..PQEADDVWEGESLLYVLR...ERMGLPGSKNACEQ.......GE....CGSCTVRLD.....................GVP..........................VCSCLVAAG
+O54050_RHOCA/5-68 FLLNGE..TRRVRIEDPTQSLLELLR...A.EGLTGTKEGCNE.......GD....CGACTVMIRD.................AAGSR......A....................VNACLMMLP
+#=GR O54050_RHOCA/5-68 SS EEE---..EEEEE-S-TT-BHHHHHH...H.------------.......--....----EEEEES.................----E......E....................EETTTSBGG
+O23887_MAIZE/15-85 LAVNGK..RYEAAGVAPSTSLLEFLR...TQTPVRGPKLGCGE.......GG....CGACVVLVSK.................YDPATDEVTEFS....................ASSCLTLLH
+ALDO4_ARATH/8-78 FAVNGE..KFEVLSVNPSTTLLEFLR...SNTCFKSVKLSCGE.......GG....CGACIVILSK.................YDPVLDQVEEYS....................INSCLTLLC
+ALDO1_ARATH/23-95 FAINGQRFELELSSIDPSTTLVDFLR...NKTPFKSVKLGCGE.......GG....CGACVVLLSK.................YDPLLEKVDEFT....................ISSCLTLLC
+O30328_ACEEU/4-63 FRLNGR..EVTV.DVPGDTPLLWVIR...DEVGLTGTKFGCGI.......GM....CGACTIHIG.....................GR......A....................TRSCVTPVS
+IORA_BREDI/4-64 FILNGQ..PVRVTEVPEDAPLLWVVR...EHLKLSGTKFGCGL.......GL....CGACTVHIN.....................GE......A....................ARSCITPLS
+XDH_EMENI/39-108 FYLNGT..KVILDSVDPEITLLEYLR...G.IGLTGTKLGCAE.......GG....CGACTVVVS..........QIN.....PTTKKL....YHA..................SINACIAPLV
+O61198_CAEEL/8-78 FNVNGK..DIKEENVDPELTLAYYLR...NKLGLRGTKLGCEE.......GV....CGSCTVVLGT.................WDDSLNKAVYSA....................VNACLVPLF
+O17892_CAEEL/18-86 FYVNGK..RVEEKDVDPKMTLATYLR...DKLKLTGTKIGCNE.......GG....CGACTIMISH.................IENGE..IKHFS....................ANSCLMPVC
+XDH_DROSU/13-83 FFVNGK..KVTDTNPDPECTLLTYLR...DKLRLCGTKLGCAE.......GG....CGACTVMISR.................MDRGQHKIRHLA....................VNACLTPVC
+O17506_BOMMO/19-89 FYVNGK..KVIESSPDPEWTLLWYLR...KKLRLTGTKLGCAE.......GG....CGACTVMVSK.................YNRQENKIIHLA....................VNACLAPVC
+Q17250_BOMMO/18-88 FFVNGK..KVLESNPDPEWTLLFYLR...KKLKLTGTKYGCGE.......GG....CGACTVMVSK.................YLKNEDRINHIA....................VNACLISVC
+ADO_BOVIN/9-79 FYVNGR..KVTEKNVDPETMLLPYLR...KKLRLTGTKYGCGG.......GG....CGACTVMISR.................YNPITKKIRHYP....................ANACLTPIC
+XDH_BOVIN/8-78 FFVNGK..KVVEKNADPETTLLAYLR...RKLGLRGTKLGCGE.......GG....CGACTVM............LSK.....YDRLQDKIIHFS....................ANACLAPIC
+#=GR XDH_BOVIN/8-78 SS EEE---..EEEETT--TT-BHHHHHH...HT------------.......--....----EEE............EEE.....EETTTTEEEEEE....................EETTT-BGG
+MOP_DESGI/6-65 ITVNGI..EQNL.FVDAEALLSDVLR...QQLGLTGVKVGCEQ.......GQ....CGACSVILD.....................GK......V....................VRACVTKMK
+#=GR MOP_DESGI/6-65 SS EEE---..EEEE.EE-TTSBHHHHHH...HT------------.......--....----EEEE-.....................--......E....................EEGGG-BGG
+O53669_MYCTU/13-78 DESCGELREFTVEVNEGEVVLDVILRLQQTQTPDLAVRWNCKA.......GK....CGSCSAEIN.....................GKPR..........................LMCMTRMS
+O29566_ARCFU/5-80 TFL.PS..GKRAEVDEGKTILSAAQE...I.GEGIRS..LCGG.......KG...SCGKCL..VVVR........KGDVEILSEEAHEKFVRE..K.................GYYLACQTAVK
+O30225_ARCFU/5-84 TFE.PV..GKKVE.DEPDTILEIARR...N.GVLIRS..DCGG.......KG...VCGKCK..VVVVDY......RGSLSDITDHERKHLIEEEISK................GYRLACQARVE
+NQRF_CHLTR/46-122 NND.DS..LTKTV.DSGKTLLSSLLD...S.GIAIPS..PCGG.......KA...ACKQCK..VRIT.........KNADEPLETDRSTFSKQQLEQ................GWRLSCQTKVQ
+NQRF_HAEIN/43-119 NDD.PE..KAITL.PAGGKLLGALAS...K.GIFVSS..ACGG.......GG...SCGQCI..VKVK.........NGGGEILPTELSHINKREAKE................GYRLACQVNVK
+NQRF_VIBAL/39-115 NDD.PS..LAIVT.QPGGKLLSALAG...A.GVFVSS..ACGG.......GG...SCGQCR..VKVK.........SGGGDILPTELDHITKGEARE................GERLACQVAMK
+O84062_CHLTR/8-83 ADD......ENQEFHLEDGSSIAEV......CEHSGVPLACT........EG...VCGTCVIEVLEGA........DNLSDFSEAEYDFLGDPEDS.................NERLACQCCIK
+Q9Z8H9_CHLPN/8-83 SDD......EQQEFELEDNSEIAEP......CESMGIPFACT........EG...VCGTCVIEVLEGR........ENLSEFTEPEYDFLGEPEDS.................NERLACQCRIK
+CSMJ_CHLTE/5-82 IND......KPCNAKVGDLLLNTAK......LNKAHIGYICGG.......NG...ICQSCFVYVLEGA........ECLSEPGEDEKAFISDKLFAE................GGRLACRTTIV
+CSMI_CHLTE/5-82 IND......KTASSSVGQTIGKAAR......LNHAHVGYVCGG.......HG...LCQACYITVQEGA........DCLAPLTDVEKAFLSPRQIAA................GGRIACQATIA
+FER_TRIVA/13-90 AVKGGVKKQLKFEDDQTLFTVLTEAG.......LMSADDTCQG.......NK...ACGKCICKHVSGKV......A.A..E..DDEKEFLEDQPAN..................ARLACAITLS
+#=GR FER_TRIVA/13-90 SS EE----EEEE---TTEEHHHHHHT--.......----TTS---.......--...-----EEEEEE---......-.-..-..HHHHHHCTTS-TT..................EEEGGG-EE-
+P73774_SYNY3/7-88 LICLPD..NRLLEIDSNETILDALLK..G....DIAHISVCGG.......KA...NCSTCRIMVLDGIK.....NCSPPTSIEQALAKKLDFPFHV..................R.LACQTKLS
+FER_BUCAP/10-92 KLLLPK..GGCFECKEGETILNVALK...N.NIKLEHA..CEK.......SC...ACSTCH..CIIRKG......FLSLSGWSEKEEDVLDKAWGLE...............STSRLSCQAIIG
+O69222_AZOVI/11-93 EVHCPE..GRVVEAETGESILEAALR...N.DIEIEHA..CEM.......SC...ACTTCH..VIVRDG......FDSLEPSDELEDDMLDKAWGLE...............PESRLSCQARVG
+FER_HAEIN/10-92 EDFCPE..GMVVDAATGDN.LLEVAH...N.A.GVEIHHACDG.......SC...ACTTCHVIVREG........FDSLNETSDQEEDMLDKAWGLE...............MDSRLSCQCVVG
+FER_PSEAE/10-92 ADHCPE..GAVFEAKPGET.ILDAAL...R.N.GIEIEHACEK.......SC...ACTTCHVIVREG........LDSMEPSDELEDDMLDKAWGLE...............PDSRLSCQAVVA
+ADRX_YEAST/67-149 LKD.GS..QKTYEVCEGETILDIAQG...H.NLDMEG..ACGG.......SC...ACSTCH.VIVDPDY......YDALPEPEDDENDMLDLAYGLT...............ETSRLGCQIKMS
+ADX_PIG/71-155 NRD.GK..TLTTQGKVGDSLLDVVIE...N.NLDIDGFGACEG.......TL...ACSTCH.LIFEDHI......FEKLEAITDEENDMLDLAYGLT...............DRSRLGCQICLT
+FER2_RICPR/11-93 IND.EE..ERTVEAPIGLSILEIAHS...N.DLDLEG..ACEG.......SL...ACATCH.VMLEEEF......YNKLKKPTEAEEDMLDLAFGLT...............DTSRLGCQIILT
+O49551_ARATH/44-127 DKD.GE..EIHIKVPVGMNILEAAHE...N.DIELEG..ACEG.......SL...ACSTCHVIVMDTKY......YNKLEEPTDEENDMLDLAFGLT...............ATSRLGCQVIAK
+ETP1_SCHPO/525-592 TPE.GR..EIMIE....GN......E...E.G.......ACEG.......SV...ACSTCHVIVDPEHY.....ELLD..PPEEDEEDMLDLAFGLE...............ETSRLGCQVLLR
+#=GR ETP1_SCHPO/525-592 SS ---.--..EEEE-....--......-...-.-.......----.......--...--STT-EEE-HHHH.....HHS-..---HHHHHHHCTB----...............TTEE-----B--
+O07876_SPHSX/8-91 AAD.GR..EIETNVDIGTDLMHAGLY...N.SVPGLLG.ECSG.......GL...ACATCR.VHVPAEW......QGVLPAALPAEAELLGFCEESP...............PEARLSCQIKMT
+Q9ZAM5_SPHSX/8-91 SED.GS..ELETTVDVGVDLMHAGLY...N.SIPGILG.ECSG.......GL...ACATCR.VRVPVEW......QSILPPAFPSEAELLGFCDEAP...............PEARLSCQIKMT
+FER2_CAUCR/8-91 QHD.GA..EQVIDVKPGLTVMEGAVK...N.NVPGIDA.DCGG.......AC...ACATCH.VYVDEAW......LDKTGDKSAMEESMLDFAENVE...............PNSRLSCQIKVS
+FER6_RHOCA/7-91 EHN.GT..RHEVEAKPGLTVMEAARD...N.GVPGIDA.DCGG.......AC...ACSTCH.AYVDPAW......VDKLPKALPTETDMIDFAYEPNP..............ATSRLTCQIKVT
+#=GR FER6_RHOCA/7-91 SS ---.--..EEEEE-----BHHHHHHT...-.-------.----.......--...SS-TTE.EEE-HHH......HTTS----HHHHHHHTTSSS--T..............TTEEEGGG-B--
+P74447_SYNY3/31-113 IKLDPIDLKVAIETNDNLLSGLLGQD........LRIMKECGG.......RG...MCATCHVYITAGMES...LSPLNRREQRTLEVITTHNRYS...................R.LACQARVL
+P73171_SYNY3/7-85 SFPQTKFLPLSLEFNACLAEYLTPDN........SPILFGCRT.......GL....CGTCLVKVVGEIL......SPEAEEREILAILAPDDVQA...................R.LACQIKLT
+FER1_AQUAE/3-83 VIINGK....EFDIPKGVRFGELSHE.....IEKAGIEFGCTD.......GQ....CGVCVARVIKGMECL..NEPSEEEEETLWRVGAVDEDQR.....................LTCQLVIE
+FER4_RHOCA/7-86 TFTDVS...ITVNVPTGTRIIEMSEK......VGSGITYGCRE.......GE....CGTCMTHILEGSE.....NLSEPTALEMRVLEENLGGKD...................DRLACQCRVL
+P74283_SYNY3/5-88 FVKEQK....DIVVAQGANLREKALQNGVDIYTLKGKLMNCGG......YGQ....CGTCIVEITAGME.....NLSPKTDFENRVLRKKPDNFR.....................LACQTLVN
+PUTX_PSEPU/8-92 SHD.GT..RRELDVADGVS.LMQAAV...S.NGIYDIVGDCGG.......SA...SCATCHVYVN................EAFTDKVP.....AANEREIGMLECVTAELKPNSRLCCQIIMT
+#=GR PUTX_PSEPU/8-92 SS E--.--..EEEEE-----B.HHHHHH...H.---TTG------.......--...SSSTTEEEE-................TTTGTTS-.....---TTT---GGGSSS---TTEEEGGG-B--
+TERPB_PSESP/8-92 DEQSGE...YAVDAQDGQS.LMEVAT...Q.NGVPGIVAECGG.......SC...VCATCRIEIEDAWV......E.......IVGEANPDENDLLQSTGE........PMTAGTRLSCQVFID
+P95277_MYCTU/9-84 GYSDGT..HKTMPVRCDQT.VLDAAE.....EHGVAIVNECQS.......GI....CGTCVATCTAGRYQ....MG.R...TEGLSDVERAARKI.....................LTCQTFVT
+O05933_PSEPU/11-88 NFSDGV..SRSFDVEAGTS.ILDAAI.....ESEIPLLYQCRS.......GS....CSTCIAQLTEGEAH....TRAG..ASSTLLASEYASGQR.....................LLCLCQAQ
+DESET_MYCTU/303-373 FARSGK....SVAADAATS.LMDAGE.....GAGVQLPFGCRM.......GI....CQSCVVDLVEGHV......R.D.....LRTGQRHEPGTR....................VQTCVSAAS
+O23344_ARATH/57-131 VEHDGK..TTELEVEPDETILSKALD...S...GLDVPYDCNL.......GV....CMTCPAKLVTGTV.....DQSG....GMLSDDVVERGYT.....................LLCASYPT
+P74159_SYNY3/11-86 DRQNEK..DYSVIVSDDRYILHQAED...Q...GFELPFSCRN.......GA....CTACAVRVISGQIH....QP....EAMGLSPDLQRQGYA.....................LLCVSYAQ
+FER2_SYNP6/8-83 VIYQGQ..SQTFTADSDQS.VLDSAQ...A.A.GVDLPASCLT.......GV....CTTCAARILSGEV.....DQPD...AMGVGPEPAKQGYT.....................LLCVAYPR
+P73388_SYNY3/9-84 IQHQGQ..TYTISVPEDKT.VLQAAD...D.E.GIQLPTSCGA.......GV....CTTCAALITEGTA.....EQAD...GMGVSAELQAEGYA.....................LLCVAYPR
+FER1_HALMA/35-108 DEDYGS.....LEVNEGEY.ILEAAE...A.Q.GYDWPFSCRA.......GA....CANCAAIVLEGDI.....DM..D.MQQILSDEEVEDKNV....................RLTCIGSPD
+P74449_SYNY3/11-88 NPATGS..DVTIEVAEDEL.ILEAAE...N.Q.GLDLPYSCRA.......AS....CVACAGRLLEGTVE...HTDKG...SDFLKPEELAAGCV.....................LLCAAYAT
+FER2_NOSMU/10-85 NAAEGL..DETIEVPDDEY.ILDAAE...E.A.GLDLPFSCRS.......GS....CSSCNGILKKGTV.....DQSD...QNFLDDDQIAAGNV.....................LTCVAYPT
+FER2_APHSA/10-86 NEEEGI..NAILEVADDQT.ILDAGE...E.A.GLDLPSSCRA.......GS....CSTCAGKLVSGAA.......PNQDDQAFLDDDQLAAGWV.....................MTCVAYPT
+FER1_CYAPA/10-85 CEEQGL..DTTIECPDDEY.ILDAAE...E.Q.GIDLPYSCRA.......GA....CSTCAGKVVEGTV.....DQSD...QSFLDDAQLAAGYV.....................LTCVAYPS
+FER_PORPU/10-85 SEDEGI..DVTFDCSEDTY.ILDAAE...E.A.GIELPYSCRA.......GA....CSTCAGKVTEGSV.....DQSD...QSFLDDEQLLKGYV.....................LTCIAYPE
+FER_ODOSI/10-85 SEEHDI..DATIDCNDDVF.LLDAAE...E.Q.GIELPYSCRA.......GA....CSTCAGKVTEGDI.....DQSE...QTFLDDDQVGAGFV.....................LTCIAYPK
+FER_BUMFI/9-84 NEEKNI..NAVIKCPDDQF.ILDAAE...E.Q.GIELPYSCRA.......GA....CSTCAGKVLSGTI.....DQSE...QSFLDDDQMGAGFL.....................LTCVAYPT
+FER3_CYACA/9-84 NKDQGI..DETIECPDDQY.ILDAAE...E.Q.GLDLPYSCRA.......GA....CSTCAGKLLEGEV.....DQSD...QSFLDDDQVKAGFV.....................LTCVAYPT
+FER2_CYACA/8-83 NQKEGV..DVTINCPGDQY.ILDAAE...E.Q.GVDLPYSCRA.......GA....CSTCAGKLVKGSV.....DQSD...QSFLDEEQINNGFI.....................LTCVAYPT
+FER_BRYMA/8-83 KLDDGS..EAVIDCDEDSF.ILDVAE...E.E.GIDIPFSCRS.......GS....CSTCAGKIEGGTV.....DQSE...QTFLDDDQMEEGYV.....................LTCVAYPT
+FER_APHSA/9-83 KTPDGD..NVIT.VPDDEY.ILDVAE...E.E.GLDLPYSCRA.......GA....CSTCAGKLVSG........PAPDEDQSFLDDDQIQAGYI.....................LTCVAYPT
+FER_THEVL/9-84 VRPDGS..ETTIDVPEDEY.ILDVAE...E.Q.GLDLPFSCRA.......GA....CSTCAGKLLEGEV.....DQSD...QSFLDDDQIEKGFV.....................LTCVAYPR
+FER_PERBI/6-80 DTPDGK...KSFECPGDSY.ILDKAE...E.E.GLELPYSCRA.......GS....CSSCAGKVLTGSI.....DQSD...QAFLDDDQGGDGYC.....................LTCVTYPT
+FER3_RAPSA/8-82 ITPEGE...QEVECDDDVY.VLDAAE...E.A.GIDLPYSCRA.......GS....CSSCAGKVVSGSV.....DQSD...QSFLDDDQIAEGFV.....................LTCAAYPT
+FER1_SPIOL/58-132 VTPTGN...VEFQCPDDVY.ILDAAE...E.E.GIDLPYSCRA.......GS....CSSCAGKLKTGSL.....NQDD...QSFLDDDQIDEGWV.....................LTCAAYPV
+FER_SILPR/57-131 TKESGT...VTFDCPDDVY.VLDQAE...E.E.GIDLPYSCRA.......GS....CSSCAGKVVAGSV.....DQSD...QSFLDDDQIEAGWV.....................LTCAAYPS
+FER_WHEAT/54-128 VTPEGE...VELEVPDDVY.ILDQAE...E.E.GIDLPYSCRA.......GS....CSSCAGKLVSGEI.....DQSD...QSFLDDDQMEAGWV.....................LTCHAYPK
+FER_SAMNI/8-82 ITPDGP...QEFECPDDVY.ILEHAE...E.L.GIDIPYSCRA.......GS....CSSCAGKLVAGSV.....DQSD...QSFLDDEQIEEGWV.....................LTCVAYPK
+FERA_ALOMA/8-82 VTPQGQ...QEFDCPDDVY.ILDQAE...E.E.GIDLPYSCRA.......GS....CSSCAGKVKQGEV.....DQSD...GSFLDDEQMEQGWV.....................LTCVAFPT
+FER_ARCLA/8-82 ITPEGK...QEFEVPDDVY.ILDHAA...E.E.VGDLPYSCRA.......GS....CSSCAGKVTAGSV.....DQSD...GSYLDDDQMEAGWV.....................LTCVAYPT
+FER_DATST/8-82 VTPDGP...VEFNCPDDVY.ILDQAE...E.E.GHDLPYSCRA.......GS....CSSCAGKVTAGTV.....DQSD...GNYLDDDQMADGFV.....................LTCVAYPQ
+FER_PALPL/9-83 STPGGV...EEIEGDETTY.VLDSAE...D.Q.GIDLPYSCRA.......GA....CSTCAGIVELGTV.....DQSD...QSFLDDDQLNDSFV.....................LTCVAYPT
+FER_EUGVI/8-82 INPDGE..VTI.ECGEDQY.ILDAAE...D.A.GIDLPYSCRA.......GA....CSSCTGIVKEGTV.....DQSD...QSFLDDDQMAKGFC.....................LTCTTYPT
+FER_CHLFU/6-80 KTPSGE...ETIECPEDTY.ILDAAE...E.A.GLDLPYSCRA.......GA....CSSCAGKVESGEV.....DQSD...QSFLDDAQMGKGFV.....................LTCVAYPT
+FER_SYNY4/9-83 ITPDGE...NSIECSDDTY.ILDAAE...E.A.GLDLPYSCRA.......GA....CSTCAGKITAGSV.....DQSD...QSFLDDDQIEAGYV.....................LTCVAYPT
+FER1_PHYAM/8-82 VTPSGT...QTIDCPDDTY.VLDAAE...E.A.GLDLPYSCRA.......GS....CSSCTGKVTAGTV.....DQED...QSFLDDDQIEAGFV.....................LTCVAFPK
+FER2_PHYAM/9-83 VTPSGT...NTITCPADTY.VLDAAE...E.S.GLDLPYSCRA.......GA....CSSCAGKVTAGAV.....NQED...GSFLEEEQMEAGWV.....................LTCVAYPT
+FER2_SPIOL/8-82 VTPSGS...QVIECGDDEY.ILDAAE...E.K.GMDLPYSCRA.......GA....CSSCAGKVTSGSV.....DQSD...QSFLEDGQMEEGWV.....................LTCIAYPT
+FER_PHYPA/57-132 DGETGA..ENVXECSDEEY.XLDAAE...R.A.GMDLPYSCRA.......GA....CSSCAGIIKAGEV.....DQSD...QSFLDDSQIDDGFV.....................LTCVAYPA
+FER_MARPO/7-81 NTPTGQ...SVIDVEDDEY.ILDAAE...E.A.GLSLPYSCRA.......GA....CSSCAGKVTAGEV.....DQSD...ESFLDDDQMDEGYV.....................LTCIAYPT
+#=GC SS_cons EEESS-EEEEEEEEEETTCBHHHHHH...HTT-TTTGTTSS--TT..S..--...SSSTTEEEEEEHCEE....EHCCS..TTHHHHHHHTTSSET-TTT---GGGSSS---TTEEECCCSBGG
+#=GC seq_cons hphsup..thphpsssspp.lLcshc...p.t.slslshuCps.......Gs....CusCtsplhtu.................hpspphttt.h.....................LuCtshsp
+//
document.onclick = mclose;
// -->
</script>
-
+<script>
+<!--//--><![CDATA[//><!--
+var _gaq = _gaq || [];_gaq.push(["_setAccount", "UA-9060947-1"]);_gaq.push(["_trackPageview"]);(function() {var ga = document.createElement("script");ga.type = "text/javascript";ga.async = true;ga.src = ("https:" == document.location.protocol ? "https://ssl" : "http://www") + ".google-analytics.com/ga.js";var s = document.getElementsByTagName("script")[0];s.parentNode.insertBefore(ga, s);})();
+//--><!]]>
+</script>
</head>
<div id="header">
-<div id="logo"><a href="/" title="Home"></a></div>
+<div id="logo"><a href="http://www.jalview.org" title="Home"></a></div>
<ul id="buttons">
<li id="applet"><a href="applets.html" title="applet"></a></li>
-<li id="desktop"><a href="/webstart/jalview.jnlp" title="desktop"></a></li>
+<li id="desktop"><a href="../webstart/jalview.jnlp" title="desktop"></a></li>
</ul>
</div>
<div id="navInner">
<ul id="sddm">
- <li><a href="#">Home</a></li>
- <li><a href="#" onmouseover="mopen('m1')" onmouseout="mclosetime()">About</a>
+ <li><a href="http://www.jalview.org">Home</a></li>
+ <li><a href="http://www.jalview.org/about" onmouseover="mopen('m1')" onmouseout="mclosetime()">About</a>
<div id="m1" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
- <a href="#">Documentation</a>
- <a href="#">Publications</a>
- <a href="#">Credits</a>
- <a href="#">Screenshots</a>
+ <a href="http://www.jalview.org/about/documentation">Documentation</a>
+ <a href="http://www.jalview.org/about/citation">Publications</a>
+ <a href="http://www.jalview.org/about/credits">Credits</a>
</div>
</li>
- <li><a href="#">FAQ</a></li>
- <li><a href="#" onmouseover="mopen('m3')" onmouseout="mclosetime()" class="community">Community</a>
+ <li><a href="http://www.jalview.org/faq">FAQ</a></li>
+ <li><a href="http://www.jalview.org/community" onmouseover="mopen('m3')" onmouseout="mclosetime()" class="community">Community</a>
<div id="m3" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
- <a href="#">News Mailing List</a>
- <a href="#">Discussion Mailing List</a>
- <a href="#">Links</a>
- <a href="#">Community News</a>
+ <a href="http://www.jalview.org/mailman/listinfo/jalview-announce">News Mailing List</a>
+ <a href="http://www.jalview.org/mailman/listinfo/jalview-discuss">Discussion Mailing List</a>
+ <a href="http://www.jalview.org/community/links">Links</a>
+ <a href="http://www.jalview.org/community/community-news">Community News</a>
</div>
</li>
- <li><a href="#" onmouseover="mopen('m4')" onmouseout="mclosetime()" class="development">Development</a>
+ <li><a href="http://www.jalview.org/development" onmouseover="mopen('m4')" onmouseout="mclosetime()" class="development">Development</a>
<div id="m4" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
- <a href="#">Release History</a>
- <a href="#">Jalview Bug Tracker</a>
- <a href="#">Jalview Git Web</a>
- <a href="#">Development News</a>
+ <a href="http://www.jalview.org/development/release-history">Release History</a>
+ <a href="http://issues.jalview.org">Jalview Bug Tracker</a>
+ <a href="http://source.jalview.org/gitweb/">Jalview Git Web</a>
+ <a href="http://www.jalview.org/development/development-news">Development News</a>
</div>
</li>
- <li><a href="#" onmouseover="mopen('m5')" onmouseout="mclosetime()" class="training">Training</a>
+ <li><a href="http://www.jalview.org/training" onmouseover="mopen('m5')" onmouseout="mclosetime()" class="training">Training</a>
<div id="m5" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
- <a href="#">Training Courses</a>
- <a href="#">Training News</a>
+ <a href="http://www.jalview.org/training/training-courses">Training Courses</a>
+ <a href="http://www.jalview.org/training/training-news">Training News</a>
</div>
</li>
- <li><a href="#" class="download-right">Download</a></li>
+ <li><a href="http://www.jalview.org/download" class="download-right">Download</a></li>
</ul>
<div style="clear:both"></div>
</div>
<td width="80" ><strong>value=""></strong></td>
<td width="100%"><strong>Description</strong></td>
</tr>
+ <tr>
+ <td>permissions</td>
+ <td>sandbox</td>
+ <td><strong>This parameter is necessary, and must have the value <em>sandbox</em> to allow the JalviewLite applet to run.</strong></td>
+ </tr>
<tr>
<td>file</td>
<td>fileName</td>
</li>
<li>Note parameter "PDBSeq" is no longer required.<br>
</li>
- <li>Jalview 2.3 was updated to work with Jmol 11. See the <a href="../versions.html">versions archive if you want to download the old Jmol applet</a>.</li>
+ <li>Jalview 2.3 was updated to work with Jmol 11. See the <a href="/development">versions archive if you want to download the old Jmol applet</a>.</li>
<p> </p>
</li>
</ul>
</div>
</div>
</div>
-
-<script type="text/javascript">
- var gaJsHost = (("https:" == document.location.protocol) ?
- "https://ssl." : "http://www.");
- document.write(unescape("%3Cscript src=\'" + gaJsHost +
- "google-analytics.com/ga.js\' type=\'text/javascript\'%3E%3C/script%3E"));
-</script>
-<script type="text/javascript">
-try{
- var pageTracker = _gat._getTracker("'UA-9060947-1'");
- pageTracker._trackPageview();
-} catch(err) {}
-</script>
</body>
</html>
document.onclick = mclose;
// -->
</script>
-
+<script>
+<!--//--><![CDATA[//><!--
+var _gaq = _gaq || [];_gaq.push(["_setAccount", "UA-9060947-1"]);_gaq.push(["_trackPageview"]);(function() {var ga = document.createElement("script");ga.type = "text/javascript";ga.async = true;ga.src = ("https:" == document.location.protocol ? "https://ssl" : "http://www") + ".google-analytics.com/ga.js";var s = document.getElementsByTagName("script")[0];s.parentNode.insertBefore(ga, s);})();
+//--><!]]>
+</script>
</head>
<div id="header">
-<div id="logo"><a href="/" title="Home"></a></div>
+<div id="logo"><a href="http://www.jalview.org" title="Home"></a></div>
<ul id="buttons">
<li id="applet"><a href="applets.html" title="applet"></a></li>
-<li id="desktop"><a href="/webstart/jalview.jnlp" title="desktop"></a></li>
+<li id="desktop"><a href="../webstart/jalview.jnlp" title="desktop"></a></li>
</ul>
</div>
<div id="navInner">
<ul id="sddm">
- <li><a href="#">Home</a></li>
- <li><a href="#" onmouseover="mopen('m1')" onmouseout="mclosetime()">About</a>
+ <li><a href="http://www.jalview.org">Home</a></li>
+ <li><a href="http://www.jalview.org/about" onmouseover="mopen('m1')" onmouseout="mclosetime()">About</a>
<div id="m1" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
- <a href="#">Documentation</a>
- <a href="#">Publications</a>
- <a href="#">Credits</a>
- <a href="#">Screenshots</a>
+ <a href="http://www.jalview.org/about/documentation">Documentation</a>
+ <a href="http://www.jalview.org/about/citation">Publications</a>
+ <a href="http://www.jalview.org/about/credits">Credits</a>
</div>
</li>
- <li><a href="#">FAQ</a></li>
- <li><a href="#" onmouseover="mopen('m3')" onmouseout="mclosetime()" class="community">Community</a>
+ <li><a href="http://www.jalview.org/faq">FAQ</a></li>
+ <li><a href="http://www.jalview.org/community" onmouseover="mopen('m3')" onmouseout="mclosetime()" class="community">Community</a>
<div id="m3" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
- <a href="#">News Mailing List</a>
- <a href="#">Discussion Mailing List</a>
- <a href="#">Links</a>
- <a href="#">Community News</a>
+ <a href="http://www.jalview.org/mailman/listinfo/jalview-announce">News Mailing List</a>
+ <a href="http://www.jalview.org/mailman/listinfo/jalview-discuss">Discussion Mailing List</a>
+ <a href="http://www.jalview.org/community/links">Links</a>
+ <a href="http://www.jalview.org/community/community-news">Community News</a>
</div>
</li>
- <li><a href="#" onmouseover="mopen('m4')" onmouseout="mclosetime()" class="development">Development</a>
+ <li><a href="http://www.jalview.org/development" onmouseover="mopen('m4')" onmouseout="mclosetime()" class="development">Development</a>
<div id="m4" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
- <a href="#">Release History</a>
- <a href="#">Jalview Bug Tracker</a>
- <a href="#">Jalview Git Web</a>
- <a href="#">Development News</a>
+ <a href="http://www.jalview.org/development/release-history">Release History</a>
+ <a href="http://issues.jalview.org">Jalview Bug Tracker</a>
+ <a href="http://source.jalview.org/gitweb/">Jalview Git Web</a>
+ <a href="http://www.jalview.org/development/development-news">Development News</a>
</div>
</li>
- <li><a href="#" onmouseover="mopen('m5')" onmouseout="mclosetime()" class="training">Training</a>
+ <li><a href="http://www.jalview.org/training" onmouseover="mopen('m5')" onmouseout="mclosetime()" class="training">Training</a>
<div id="m5" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
- <a href="#">Training Courses</a>
- <a href="#">Training News</a>
+ <a href="http://www.jalview.org/training/training-courses">Training Courses</a>
+ <a href="http://www.jalview.org/training/training-news">Training News</a>
</div>
</li>
- <li><a href="#" class="download-right">Download</a></li>
+ <li><a href="http://www.jalview.org/download" class="download-right">Download</a></li>
</ul>
<div style="clear:both"></div>
</div>
<td width="10%" valign="center"><applet
code="jalview.bin.JalviewLite" width="140" height="35"
archive="jalviewApplet.jar">
+<param name="permissions" value="sandbox">
<param name="file" value="uniref50.fa">
<param name="treeFile" value="ferredoxin.nw">
<param name="userDefinedColour"
<td width="10%" valign="center"><applet
code="jalview.bin.JalviewLite" width="140" height="35"
archive="jalviewApplet.jar">
+<param name="permissions" value="sandbox">
<param name="file" value="uniref50.fa">
<param name="features" value="exampleFeatures.txt">
<param name="showFeatureSettings" value="true">
<td width="10%" valign="center"><applet
code="jalview.bin.JalviewLite" width="140" height="35"
archive="jalviewApplet.jar,JmolApplet-12.2.4.jar">
+<param name="permissions" value="sandbox">
<param name="file" value="uniref50.fa">
<!-- <param name="debug" value="true">
-->
<td width="10%" valign="middle"><applet
code="jalview.bin.JalviewLite" width="140" height="35"
archive="jalviewApplet.jar">
+<param name="permissions" value="sandbox">
<param name="file" value="jpred_msa.fasta">
<param name="jnetfile" value="jpred_msa.seq.concise">
<param name="defaultColour" value="Clustal">
<td width="10%" valign="center"><applet
code="jalview.bin.JalviewLite" width="140" height="35"
archive="jalviewApplet.jar">
+<param name="permissions" value="sandbox">
<param name="file" value="RF00031_folded.stk">
<param name="defaultColour" value="Purine/Pyrimidine">
<param name="showAnnotation" value="true">
</div>
</body>
</html>
-
\ No newline at end of file
+
document.onclick = mclose;
// -->
</script>
-
+<script>
+<!--//--><![CDATA[//><!--
+var _gaq = _gaq || [];_gaq.push(["_setAccount", "UA-9060947-1"]);_gaq.push(["_trackPageview"]);(function() {var ga = document.createElement("script");ga.type = "text/javascript";ga.async = true;ga.src = ("https:" == document.location.protocol ? "https://ssl" : "http://www") + ".google-analytics.com/ga.js";var s = document.getElementsByTagName("script")[0];s.parentNode.insertBefore(ga, s);})();
+//--><!]]>
+</script>
</head>
<div id="header">
-<div id="logo"><a href="/" title="Home"></a></div>
+<div id="logo"><a href="http://www.jalview.org" title="Home"></a></div>
<ul id="buttons">
<li id="applet"><a href="applets.html" title="applet"></a></li>
-<li id="desktop"><a href="/webstart/jalview.jnlp" title="desktop"></a></li>
+<li id="desktop"><a href="../webstart/jalview.jnlp" title="desktop"></a></li>
</ul>
</div>
<div id="navInner">
<ul id="sddm">
- <li><a href="#">Home</a></li>
- <li><a href="#" onmouseover="mopen('m1')" onmouseout="mclosetime()">About</a>
+ <li><a href="http://www.jalview.org">Home</a></li>
+ <li><a href="http://www.jalview.org/about" onmouseover="mopen('m1')" onmouseout="mclosetime()">About</a>
<div id="m1" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
- <a href="#">Documentation</a>
- <a href="#">Publications</a>
- <a href="#">Credits</a>
- <a href="#">Screenshots</a>
+ <a href="http://www.jalview.org/about/documentation">Documentation</a>
+ <a href="http://www.jalview.org/about/citation">Publications</a>
+ <a href="http://www.jalview.org/about/credits">Credits</a>
</div>
</li>
- <li><a href="#">FAQ</a></li>
- <li><a href="#" onmouseover="mopen('m3')" onmouseout="mclosetime()" class="community">Community</a>
+ <li><a href="http://www.jalview.org/faq">FAQ</a></li>
+ <li><a href="http://www.jalview.org/community" onmouseover="mopen('m3')" onmouseout="mclosetime()" class="community">Community</a>
<div id="m3" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
- <a href="#">News Mailing List</a>
- <a href="#">Discussion Mailing List</a>
- <a href="#">Links</a>
- <a href="#">Community News</a>
+ <a href="http://www.jalview.org/mailman/listinfo/jalview-announce">News Mailing List</a>
+ <a href="http://www.jalview.org/mailman/listinfo/jalview-discuss">Discussion Mailing List</a>
+ <a href="http://www.jalview.org/community/links">Links</a>
+ <a href="http://www.jalview.org/community/community-news">Community News</a>
</div>
</li>
- <li><a href="#" onmouseover="mopen('m4')" onmouseout="mclosetime()" class="development">Development</a>
+ <li><a href="http://www.jalview.org/development" onmouseover="mopen('m4')" onmouseout="mclosetime()" class="development">Development</a>
<div id="m4" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
- <a href="#">Release History</a>
- <a href="#">Jalview Bug Tracker</a>
- <a href="#">Jalview Git Web</a>
- <a href="#">Development News</a>
+ <a href="http://www.jalview.org/development/release-history">Release History</a>
+ <a href="http://issues.jalview.org">Jalview Bug Tracker</a>
+ <a href="http://source.jalview.org/gitweb/">Jalview Git Web</a>
+ <a href="http://www.jalview.org/development/development-news">Development News</a>
</div>
</li>
- <li><a href="#" onmouseover="mopen('m5')" onmouseout="mclosetime()" class="training">Training</a>
+ <li><a href="http://www.jalview.org/training" onmouseover="mopen('m5')" onmouseout="mclosetime()" class="training">Training</a>
<div id="m5" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
- <a href="#">Training Courses</a>
- <a href="#">Training News</a>
+ <a href="http://www.jalview.org/training/training-courses">Training Courses</a>
+ <a href="http://www.jalview.org/training/training-news">Training News</a>
</div>
</li>
- <li><a href="#" class="download-right">Download</a></li>
+ <li><a href="http://www.jalview.org/download" class="download-right">Download</a></li>
</ul>
<div style="clear:both"></div>
</div>
</ul>
<applet code="jalview.bin.JalviewLite"
width="756" height="560" archive="jalviewApplet.jar">
- <param name="file" value="plantfdx.fa">
+ <param name="permissions" value="sandbox">
+ <param name="file" value="plantfdx.fa">
<param name="annotations" value="plantfdx.annotations">
<param name="features" value="plantfdx.features">
<param name="embedded" value="true">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<TITLE>Embedded JalviewLite talking to externally managed Jmol</TITLE>
+<script>
+<!--//--><![CDATA[//><!--
+var _gaq = _gaq || [];_gaq.push(["_setAccount", "UA-9060947-1"]);_gaq.push(["_trackPageview"]);(function() {var ga = document.createElement("script");ga.type = "text/javascript";ga.async = true;ga.src = ("https:" == document.location.protocol ? "https://ssl" : "http://www") + ".google-analytics.com/ga.js";var s = document.getElementsByTagName("script")[0];s.parentNode.insertBefore(ga, s);})();
+//--><!]]>
+</script>
<script src="javascript/deployJava.js"></script>
<script src="jmol/Jmol.js"></script>
<script src="javascript/jquery-1.4.4.min.js"></script>
,
linkUrl_2 : "http://www.uniprot.org/uniprot/$SEQUENCE_ID$",
APPLICATION_URL : "http://www.jalview.org/services/launchApp",
- PDBfile : "1gaq.txt FER1_MAIZE"
+ PDBfile : "1gaq.txt FER1_MAIZE",
+ permissions : "sandbox"
};
jmolSetCallback("hoverCallback","_jmolhover");
jmolSetCallback("pickCallback","_jmolpick");
<div id="header">
-<div id="logo"><a href="/" title="Home"></a></div>
+<div id="logo"><a href="http://www.jalview.org" title="Home"></a></div>
<ul id="buttons">
<li id="applet"><a href="applets.html" title="applet"></a></li>
-<li id="desktop"><a href="/webstart/jalview.jnlp" title="desktop"></a></li>
+<li id="desktop"><a href="../webstart/jalview.jnlp" title="desktop"></a></li>
</ul>
</div>
<div id="navInner">
<ul id="sddm">
- <li><a href="#">Home</a></li>
- <li><a href="#" onmouseover="mopen('m1')" onmouseout="mclosetime()">About</a>
+ <li><a href="http://www.jalview.org">Home</a></li>
+ <li><a href="http://www.jalview.org/about" onmouseover="mopen('m1')" onmouseout="mclosetime()">About</a>
<div id="m1" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
- <a href="#">Documentation</a>
- <a href="#">Publications</a>
- <a href="#">Credits</a>
- <a href="#">Screenshots</a>
+ <a href="http://www.jalview.org/about/documentation">Documentation</a>
+ <a href="http://www.jalview.org/about/citation">Publications</a>
+ <a href="http://www.jalview.org/about/credits">Credits</a>
</div>
</li>
- <li><a href="#">FAQ</a></li>
- <li><a href="#" onmouseover="mopen('m3')" onmouseout="mclosetime()" class="community">Community</a>
+ <li><a href="http://www.jalview.org/faq">FAQ</a></li>
+ <li><a href="http://www.jalview.org/community" onmouseover="mopen('m3')" onmouseout="mclosetime()" class="community">Community</a>
<div id="m3" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
- <a href="#">News Mailing List</a>
- <a href="#">Discussion Mailing List</a>
- <a href="#">Links</a>
- <a href="#">Community News</a>
+ <a href="http://www.jalview.org/mailman/listinfo/jalview-announce">News Mailing List</a>
+ <a href="http://www.jalview.org/mailman/listinfo/jalview-discuss">Discussion Mailing List</a>
+ <a href="http://www.jalview.org/community/links">Links</a>
+ <a href="http://www.jalview.org/community/community-news">Community News</a>
</div>
</li>
- <li><a href="#" onmouseover="mopen('m4')" onmouseout="mclosetime()" class="development">Development</a>
+ <li><a href="http://www.jalview.org/development" onmouseover="mopen('m4')" onmouseout="mclosetime()" class="development">Development</a>
<div id="m4" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
- <a href="#">Release History</a>
- <a href="#">Jalview Bug Tracker</a>
- <a href="#">Jalview Git Web</a>
- <a href="#">Development News</a>
+ <a href="http://www.jalview.org/development/release-history">Release History</a>
+ <a href="http://issues.jalview.org">Jalview Bug Tracker</a>
+ <a href="http://source.jalview.org/gitweb/">Jalview Git Web</a>
+ <a href="http://www.jalview.org/development/development-news">Development News</a>
</div>
</li>
- <li><a href="#" onmouseover="mopen('m5')" onmouseout="mclosetime()" class="training">Training</a>
+ <li><a href="http://www.jalview.org/training" onmouseover="mopen('m5')" onmouseout="mclosetime()" class="training">Training</a>
<div id="m5" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
- <a href="#">Training Courses</a>
- <a href="#">Training News</a>
+ <a href="http://www.jalview.org/training/training-courses">Training Courses</a>
+ <a href="http://www.jalview.org/training/training-news">Training News</a>
</div>
</li>
- <li><a href="#" class="download-right">Download</a></li>
+ <li><a href="http://www.jalview.org/download" class="download-right">Download</a></li>
</ul>
<div style="clear:both"></div>
</div>
</div>
</div>
</div>
-
-<script type="text/javascript">
- var gaJsHost = (("https:" == document.location.protocol) ?
- "https://ssl." : "http://www.");
- document.write(unescape("%3Cscript src=\'" + gaJsHost +
- "google-analytics.com/ga.js\' type=\'text/javascript\'%3E%3C/script%3E"));
-</script>
-<script type="text/javascript">
-try{
- var pageTracker = _gat._getTracker("'UA-9060947-1'");
- pageTracker._trackPageview();
-} catch(err) {}
-</script>
</body>
</html>
document.onclick = mclose;
// -->
</script>
-
+<script>
+<!--//--><![CDATA[//><!--
+var _gaq = _gaq || [];_gaq.push(["_setAccount", "UA-9060947-1"]);_gaq.push(["_trackPageview"]);(function() {var ga = document.createElement("script");ga.type = "text/javascript";ga.async = true;ga.src = ("https:" == document.location.protocol ? "https://ssl" : "http://www") + ".google-analytics.com/ga.js";var s = document.getElementsByTagName("script")[0];s.parentNode.insertBefore(ga, s);})();
+//--><!]]>
+</script>
</head>
<div id="header">
-<div id="logo"><a href="/" title="Home"></a></div>
+<div id="logo"><a href="http://www.jalview.org" title="Home"></a></div>
<ul id="buttons">
<li id="applet"><a href="applets.html" title="applet"></a></li>
-<li id="desktop"><a href="/webstart/jalview.jnlp" title="desktop"></a></li>
+<li id="desktop"><a href="../webstart/jalview.jnlp" title="desktop"></a></li>
</ul>
</div>
<div id="navInner">
<ul id="sddm">
- <li><a href="#">Home</a></li>
- <li><a href="#" onmouseover="mopen('m1')" onmouseout="mclosetime()">About</a>
+ <li><a href="http://www.jalview.org">Home</a></li>
+ <li><a href="http://www.jalview.org/about" onmouseover="mopen('m1')" onmouseout="mclosetime()">About</a>
<div id="m1" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
- <a href="#">Documentation</a>
- <a href="#">Publications</a>
- <a href="#">Credits</a>
- <a href="#">Screenshots</a>
+ <a href="http://www.jalview.org/about/documentation">Documentation</a>
+ <a href="http://www.jalview.org/about/citation">Publications</a>
+ <a href="http://www.jalview.org/about/credits">Credits</a>
</div>
</li>
- <li><a href="#">FAQ</a></li>
- <li><a href="#" onmouseover="mopen('m3')" onmouseout="mclosetime()" class="community">Community</a>
+ <li><a href="http://www.jalview.org/faq">FAQ</a></li>
+ <li><a href="http://www.jalview.org/community" onmouseover="mopen('m3')" onmouseout="mclosetime()" class="community">Community</a>
<div id="m3" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
- <a href="#">News Mailing List</a>
- <a href="#">Discussion Mailing List</a>
- <a href="#">Links</a>
- <a href="#">Community News</a>
+ <a href="http://www.jalview.org/mailman/listinfo/jalview-announce">News Mailing List</a>
+ <a href="http://www.jalview.org/mailman/listinfo/jalview-discuss">Discussion Mailing List</a>
+ <a href="http://www.jalview.org/community/links">Links</a>
+ <a href="http://www.jalview.org/community/community-news">Community News</a>
</div>
</li>
- <li><a href="#" onmouseover="mopen('m4')" onmouseout="mclosetime()" class="development">Development</a>
+ <li><a href="http://www.jalview.org/development" onmouseover="mopen('m4')" onmouseout="mclosetime()" class="development">Development</a>
<div id="m4" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
- <a href="#">Release History</a>
- <a href="#">Jalview Bug Tracker</a>
- <a href="#">Jalview Git Web</a>
- <a href="#">Development News</a>
+ <a href="http://www.jalview.org/development/release-history">Release History</a>
+ <a href="http://issues.jalview.org">Jalview Bug Tracker</a>
+ <a href="http://source.jalview.org/gitweb/">Jalview Git Web</a>
+ <a href="http://www.jalview.org/development/development-news">Development News</a>
</div>
</li>
- <li><a href="#" onmouseover="mopen('m5')" onmouseout="mclosetime()" class="training">Training</a>
+ <li><a href="http://www.jalview.org/training" onmouseover="mopen('m5')" onmouseout="mclosetime()" class="training">Training</a>
<div id="m5" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
- <a href="#">Training Courses</a>
- <a href="#">Training News</a>
+ <a href="http://www.jalview.org/training/training-courses">Training Courses</a>
+ <a href="http://www.jalview.org/training/training-news">Training News</a>
</div>
</li>
- <li><a href="#" class="download-right">Download</a></li>
+ <li><a href="http://www.jalview.org/download" class="download-right">Download</a></li>
</ul>
<div style="clear:both"></div>
</div>
<a name="api">View the full <a href="jalviewLiteJs.html">JalviewLite API documentation</a>.</a>
<applet code="jalview.bin.JalviewLite" width="0" height="0"
archive="jalviewApplet.jar" name="Jalview">
+ <param name="permissions" value="sandbox">
<param name="file" value="plantfdx.fa">
<param name="features" value="plantfdx.features">
<param name="wrap" value="true">
</div>
</div>
</div>
-
-<script type="text/javascript">
- var gaJsHost = (("https:" == document.location.protocol) ?
- "https://ssl." : "http://www.");
- document.write(unescape("%3Cscript src=\'" + gaJsHost +
- "google-analytics.com/ga.js\' type=\'text/javascript\'%3E%3C/script%3E"));
-</script>
-<script type="text/javascript">
-try{
- var pageTracker = _gat._getTracker("'UA-9060947-1'");
- pageTracker._trackPageview();
-} catch(err) {}
-</script></body>
+</body>
</html>
-
\ No newline at end of file
+
document.onclick = mclose;
// -->
</script>
-
+<!--//--><![CDATA[//><!--
+var _gaq = _gaq || [];_gaq.push(["_setAccount", "UA-9060947-1"]);_gaq.push(["_trackPageview"]);(function() {var ga = document.createElement("script");ga.type = "text/javascript";ga.async = true;ga.src = ("https:" == document.location.protocol ? "https://ssl" : "http://www") + ".google-analytics.com/ga.js";var s = document.getElementsByTagName("script")[0];s.parentNode.insertBefore(ga, s);})();
+//--><!]]>
</head>
<div id="header">
-<div id="logo"><a href="/" title="Home"></a></div>
+<div id="logo"><a href="http://www.jalview.org" title="Home"></a></div>
<ul id="buttons">
<li id="applet"><a href="applets.html" title="applet"></a></li>
-<li id="desktop"><a href="/webstart/jalview.jnlp" title="desktop"></a></li>
+<li id="desktop"><a href="../webstart/jalview.jnlp" title="desktop"></a></li>
</ul>
</div>
<div id="navInner">
<ul id="sddm">
- <li><a href="#">Home</a></li>
- <li><a href="#" onmouseover="mopen('m1')" onmouseout="mclosetime()">About</a>
- <div id="m1" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
- <a href="#">Documentation</a>
- <a href="#">Publications</a>
- <a href="#">Credits</a>
- <a href="#">Screenshots</a>
- </div>
- </li>
- <li><a href="#">FAQ</a></li>
- <li><a href="#" onmouseover="mopen('m3')" onmouseout="mclosetime()" class="community">Community</a>
- <div id="m3" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
- <a href="#">News Mailing List</a>
- <a href="#">Discussion Mailing List</a>
- <a href="#">Links</a>
- <a href="#">Community News</a>
- </div>
- </li>
- <li><a href="#" onmouseover="mopen('m4')" onmouseout="mclosetime()" class="development">Development</a>
- <div id="m4" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
- <a href="#">Release History</a>
- <a href="#">Jalview Bug Tracker</a>
- <a href="#">Jalview Git Web</a>
- <a href="#">Development News</a>
- </div>
- </li>
- <li><a href="#" onmouseover="mopen('m5')" onmouseout="mclosetime()" class="training">Training</a>
- <div id="m5" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
- <a href="#">Training Courses</a>
- <a href="#">Training News</a>
- </div>
- </li>
- <li><a href="#" class="download-right">Download</a></li>
+ <li><a href="http://www.jalview.org">Home</a></li>
+ <li><a href="http://www.jalview.org/about" onmouseover="mopen('m1')" onmouseout="mclosetime()">About</a>
+ <div id="m1" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
+ <a href="http://www.jalview.org/about/documentation">Documentation</a>
+ <a href="http://www.jalview.org/about/citation">Publications</a>
+ <a href="http://www.jalview.org/about/credits">Credits</a>
+ </div>
+ </li>
+ <li><a href="http://www.jalview.org/faq">FAQ</a></li>
+ <li><a href="http://www.jalview.org/community" onmouseover="mopen('m3')" onmouseout="mclosetime()" class="community">Community</a>
+ <div id="m3" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
+ <a href="http://www.jalview.org/mailman/listinfo/jalview-announce">News Mailing List</a>
+ <a href="http://www.jalview.org/mailman/listinfo/jalview-discuss">Discussion Mailing List</a>
+ <a href="http://www.jalview.org/community/links">Links</a>
+ <a href="http://www.jalview.org/community/community-news">Community News</a>
+ </div>
+ </li>
+ <li><a href="http://www.jalview.org/development" onmouseover="mopen('m4')" onmouseout="mclosetime()" class="development">Development</a>
+ <div id="m4" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
+ <a href="http://www.jalview.org/development/release-history">Release History</a>
+ <a href="http://issues.jalview.org">Jalview Bug Tracker</a>
+ <a href="http://source.jalview.org/gitweb/">Jalview Git Web</a>
+ <a href="http://www.jalview.org/development/development-news">Development News</a>
+ </div>
+ </li>
+ <li><a href="http://www.jalview.org/training" onmouseover="mopen('m5')" onmouseout="mclosetime()" class="training">Training</a>
+ <div id="m5" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
+ <a href="http://www.jalview.org/training/training-courses">Training Courses</a>
+ <a href="http://www.jalview.org/training/training-news">Training News</a>
+ </div>
+ </li>
+ <li><a href="http://www.jalview.org/download" class="download-right">Download</a></li>
</ul>
<div style="clear:both"></div>
</div>
</div>
</div>
</div>
-
-<script type="text/javascript">
- var gaJsHost = (("https:" == document.location.protocol) ?
- "https://ssl." : "http://www.");
- document.write(unescape("%3Cscript src=\'" + gaJsHost +
- "google-analytics.com/ga.js\' type=\'text/javascript\'%3E%3C/script%3E"));
-</script>
-<script type="text/javascript">
-try{
- var pageTracker = _gat._getTracker("'UA-9060947-1'");
- pageTracker._trackPageview();
-} catch(err) {}
-</script></body>
+</body>
</html>
document.onclick = mclose;
// -->
</script>
-
+<!--//--><![CDATA[//><!--
+var _gaq = _gaq || [];_gaq.push(["_setAccount", "UA-9060947-1"]);_gaq.push(["_trackPageview"]);(function() {var ga = document.createElement("script");ga.type = "text/javascript";ga.async = true;ga.src = ("https:" == document.location.protocol ? "https://ssl" : "http://www") + ".google-analytics.com/ga.js";var s = document.getElementsByTagName("script")[0];s.parentNode.insertBefore(ga, s);})();
+//--><!]]>
</head>
<div id="header">
-<div id="logo"><a href="/" title="Home"></a></div>
+<div id="logo"><a href="http://www.jalview.org" title="Home"></a></div>
<ul id="buttons">
<li id="applet"><a href="applets.html" title="applet"></a></li>
-<li id="desktop"><a href="/webstart/jalview.jnlp" title="desktop"></a></li>
+<li id="desktop"><a href="../webstart/jalview.jnlp" title="desktop"></a></li>
</ul>
</div>
<div id="navInner">
<ul id="sddm">
- <li><a href="#">Home</a></li>
- <li><a href="#" onmouseover="mopen('m1')" onmouseout="mclosetime()">About</a>
+ <li><a href="http://www.jalview.org">Home</a></li>
+ <li><a href="http://www.jalview.org/about" onmouseover="mopen('m1')" onmouseout="mclosetime()">About</a>
<div id="m1" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
- <a href="#">Documentation</a>
- <a href="#">Publications</a>
- <a href="#">Credits</a>
- <a href="#">Screenshots</a>
+ <a href="http://www.jalview.org/about/documentation">Documentation</a>
+ <a href="http://www.jalview.org/about/citation">Publications</a>
+ <a href="http://www.jalview.org/about/credits">Credits</a>
</div>
</li>
- <li><a href="#">FAQ</a></li>
- <li><a href="#" onmouseover="mopen('m3')" onmouseout="mclosetime()" class="community">Community</a>
+ <li><a href="http://www.jalview.org/faq">FAQ</a></li>
+ <li><a href="http://www.jalview.org/community" onmouseover="mopen('m3')" onmouseout="mclosetime()" class="community">Community</a>
<div id="m3" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
- <a href="#">News Mailing List</a>
- <a href="#">Discussion Mailing List</a>
- <a href="#">Links</a>
- <a href="#">Community News</a>
+ <a href="http://www.jalview.org/mailman/listinfo/jalview-announce">News Mailing List</a>
+ <a href="http://www.jalview.org/mailman/listinfo/jalview-discuss">Discussion Mailing List</a>
+ <a href="http://www.jalview.org/community/links">Links</a>
+ <a href="http://www.jalview.org/community/community-news">Community News</a>
</div>
</li>
- <li><a href="#" onmouseover="mopen('m4')" onmouseout="mclosetime()" class="development">Development</a>
+ <li><a href="http://www.jalview.org/development" onmouseover="mopen('m4')" onmouseout="mclosetime()" class="development">Development</a>
<div id="m4" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
- <a href="#">Release History</a>
- <a href="#">Jalview Bug Tracker</a>
- <a href="#">Jalview Git Web</a>
- <a href="#">Development News</a>
+ <a href="http://www.jalview.org/development/release-history">Release History</a>
+ <a href="http://issues.jalview.org">Jalview Bug Tracker</a>
+ <a href="http://source.jalview.org/gitweb/">Jalview Git Web</a>
+ <a href="http://www.jalview.org/development/development-news">Development News</a>
</div>
</li>
- <li><a href="#" onmouseover="mopen('m5')" onmouseout="mclosetime()" class="training">Training</a>
+ <li><a href="http://www.jalview.org/training" onmouseover="mopen('m5')" onmouseout="mclosetime()" class="training">Training</a>
<div id="m5" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
- <a href="#">Training Courses</a>
- <a href="#">Training News</a>
+ <a href="http://www.jalview.org/training/training-courses">Training Courses</a>
+ <a href="http://www.jalview.org/training/training-news">Training News</a>
</div>
</li>
- <li><a href="#" class="download-right">Download</a></li>
+ <li><a href="http://www.jalview.org/download" class="download-right">Download</a></li>
</ul>
<div style="clear:both"></div>
</div>
archive="jalviewApplet.jar" width="0" height="0">
<param name="debug" value="true"/>
<param name="showbutton" value="false"/>
+<param name="permissions" value="sandbox"/>
</applet>
</div>
</div>
</div>
-
-<script type="text/javascript">
- var gaJsHost = (("https:" == document.location.protocol) ?
- "https://ssl." : "http://www.");
- document.write(unescape("%3Cscript src=\'" + gaJsHost +
- "google-analytics.com/ga.js\' type=\'text/javascript\'%3E%3C/script%3E"));
-</script>
-<script type="text/javascript">
-try{
- var pageTracker = _gat._getTracker("'UA-9060947-1'");
- pageTracker._trackPageview();
-} catch(err) {}
-</script>
</body>
</head>
-</html>
\ No newline at end of file
+</html>
<link href="css/reset.css" rel="stylesheet" type="text/css" />
<link href="css/style.css" rel="stylesheet" type="text/css" />
+<script>
+<!--//--><![CDATA[//><!--
+var _gaq = _gaq || [];_gaq.push(["_setAccount", "UA-9060947-1"]);_gaq.push(["_trackPageview"]);(function() {var ga = document.createElement("script");ga.type = "text/javascript";ga.async = true;ga.src = ("https:" == document.location.protocol ? "https://ssl" : "http://www") + ".google-analytics.com/ga.js";var s = document.getElementsByTagName("script")[0];s.parentNode.insertBefore(ga, s);})();
+//--><!]]>
+</script>
<script src="http://www.java.com/js/deployJava.js"></script>
<script src="javascript/jalview.js" language="javascript"></script>
<script> //deployJava.debug="true";
<div id="header">
-<div id="logo"><a href="/" title="Home"></a></div>
+<div id="logo"><a href="http://www.jalview.org" title="Home"></a></div>
<ul id="buttons">
<li id="applet"><a href="applets.html" title="applet"></a></li>
-<li id="desktop"><a href="/webstart/jalview.jnlp" title="desktop"></a></li>
+<li id="desktop"><a href="../webstart/jalview.jnlp" title="desktop"></a></li>
</ul>
</div>
<div id="navInner">
<ul id="sddm">
- <li><a href="#">Home</a></li>
- <li><a href="#" onmouseover="mopen('m1')" onmouseout="mclosetime()">About</a>
+ <li><a href="http://www.jalview.org">Home</a></li>
+ <li><a href="http://www.jalview.org/about" onmouseover="mopen('m1')" onmouseout="mclosetime()">About</a>
<div id="m1" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
- <a href="#">Documentation</a>
- <a href="#">Publications</a>
- <a href="#">Credits</a>
- <a href="#">Screenshots</a>
+ <a href="http://www.jalview.org/about/documentation">Documentation</a>
+ <a href="http://www.jalview.org/about/citation">Publications</a>
+ <a href="http://www.jalview.org/about/credits">Credits</a>
</div>
</li>
- <li><a href="#">FAQ</a></li>
- <li><a href="#" onmouseover="mopen('m3')" onmouseout="mclosetime()" class="community">Community</a>
+ <li><a href="http://www.jalview.org/faq">FAQ</a></li>
+ <li><a href="http://www.jalview.org/community" onmouseover="mopen('m3')" onmouseout="mclosetime()" class="community">Community</a>
<div id="m3" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
- <a href="#">News Mailing List</a>
- <a href="#">Discussion Mailing List</a>
- <a href="#">Links</a>
- <a href="#">Community News</a>
+ <a href="http://www.jalview.org/mailman/listinfo/jalview-announce">News Mailing List</a>
+ <a href="http://www.jalview.org/mailman/listinfo/jalview-discuss">Discussion Mailing List</a>
+ <a href="http://www.jalview.org/community/links">Links</a>
+ <a href="http://www.jalview.org/community/community-news">Community News</a>
</div>
</li>
- <li><a href="#" onmouseover="mopen('m4')" onmouseout="mclosetime()" class="development">Development</a>
+ <li><a href="http://www.jalview.org/development" onmouseover="mopen('m4')" onmouseout="mclosetime()" class="development">Development</a>
<div id="m4" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
- <a href="#">Release History</a>
- <a href="#">Jalview Bug Tracker</a>
- <a href="#">Jalview Git Web</a>
- <a href="#">Development News</a>
+ <a href="http://www.jalview.org/development/release-history">Release History</a>
+ <a href="http://issues.jalview.org">Jalview Bug Tracker</a>
+ <a href="http://source.jalview.org/gitweb/">Jalview Git Web</a>
+ <a href="http://www.jalview.org/development/development-news">Development News</a>
</div>
</li>
- <li><a href="#" onmouseover="mopen('m5')" onmouseout="mclosetime()" class="training">Training</a>
+ <li><a href="http://www.jalview.org/training" onmouseover="mopen('m5')" onmouseout="mclosetime()" class="training">Training</a>
<div id="m5" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
- <a href="#">Training Courses</a>
- <a href="#">Training News</a>
+ <a href="http://www.jalview.org/training/training-courses">Training Courses</a>
+ <a href="http://www.jalview.org/training/training-news">Training News</a>
</div>
</li>
- <li><a href="#" class="download-right">Download</a></li>
+ <li><a href="http://www.jalview.org/download" class="download-right">Download</a></li>
</ul>
<div style="clear:both"></div>
</div>
linkLabel_2 : "Uniprot"
,
linkUrl_2 : "http://www.uniprot.org/uniprot/$SEQUENCE_ID$",
+ permissions : 'sandbox',
APPLICATION_URL : "http://www.jalview.org/services/launchApp"
};
linkLabel_1 : "EMBL-EBI Search",
linkUrl_1 : "http://www.ebi.ac.uk/ebisearch/search.ebi?db=allebi&query=$SEQUENCE_ID$"
,
- linkLabel_2 : "Uniprot"
- ,
+ linkLabel_2 : "Uniprot",
linkUrl_2 : "http://www.uniprot.org/uniprot/$SEQUENCE_ID$",
+ permissions : 'sandbox',
APPLICATION_URL : "http://www.jalview.org/services/launchApp"
};
deployJava.runApplet(attributes, parameters, '1.6');
</div>
</div>
</div>
-
-<script type="text/javascript">
- var gaJsHost = (("https:" == document.location.protocol) ?
- "https://ssl." : "http://www.");
- document.write(unescape("%3Cscript src=\'" + gaJsHost +
- "google-analytics.com/ga.js\' type=\'text/javascript\'%3E%3C/script%3E"));
-</script>
-<script type="text/javascript">
-try{
- var pageTracker = _gat._getTracker("'UA-9060947-1'");
- pageTracker._trackPageview();
-} catch(err) {}
-</script>
</body>
</html>
--- /dev/null
+#Comment lines follow the hash symbol
+JALVIEW_ANNOTATION
+SEQUENCE_REF FER1_MESCR 5
+BAR_GRAPH Bar Graph 1 <html>an <em>html tooltip</em> for Bar graph 1.</html> ||-100,-|-200,-|-300,-|-400,-|200,+|300,+|150,+
+LINE_GRAPH Green Values 1.1|2.2|1.3|3.4|0.7|1.4|3.3|2.2|2.1|-1.1|3.2
+LINE_GRAPH Red Values 2.1|3.2|1.3|-1.4|5.5|1.4|1.3|4.2|-1.1|1.1|3.2
+BAR_GRAPH Bar Graph 2 1,.|2,*|3,:|4,.|5,*|4,:|3,.|2|1|1|2|3|4|5|4
+NO_GRAPH Icons ||||E,Sheet1|E|E||||H,Sheet 2|H|H|H||||||
+NO_GRAPH Purple Letters m|y|p|r|o|t|e|i|n
+COLOUR Bar Graph 2 blue
+COLOUR Red Values 255,0,0
+COLOUR Green Values green
+COLOUR Purple Letters 151,52,228
+COMBINE Green Values Red Values
+GRAPHLINE Red Values 2.6 threshold black
+
+SEQUENCE_GROUP Group_A 30 50 *
+SEQUENCE_GROUP Group_B 1 351 2-5
+SEQUENCE_GROUP Group_C 12 14 -1 seq1 seq2 seq3
+PROPERTIES Group_A description=This is the description colour=Helix Propensity pidThreshold=0 outlineColour=red displayBoxes=true displayText=false colourText=false textCol1=black textCol2=black textColThreshold=0
+PROPERTIES Group_B outlineColour=red
+PROPERTIES Group_C colour=Clustal
--- /dev/null
+>gi|7160686|emb|CAB76819.1|/1-465
+DVQAVAYEEPKHWCSIVYYELNNRVGEAFHASSTSILVDGFTDPSNNKNRFCLGLLSNVNRNSTIENTRRHI
+GKGVHLYYVGGEVYAECLSDSSIFVQSRNCNYHHGFHPTTVCKIPSGCSLKIFNNQEF----AQLLAQSVNH
+GFETVYELTKMCTLRMSFVKGWGAEYHRQDVTSTPCWIEIHLHGPLQWLDKVLTQMGSPHNPISSVS
+>gi|61967924|gb|AAX56944.1|/1-465
+DVQAVAYEEPKHWCSIVYYELNNRVGEAFHASSTSILVDGFTDPSNNKNRFCLGLLSNVNRNSTIENTRRHI
+GKGVHLYYVGGEVYAECLSDSSIFVQSRNCNYHHGFHPTTVCKIPSGCSLKIFNNQEF----AQLLAQSVNH
+GFETVYELTKMCTLRMSFVKGWGAEYHRQDVTSTPCWIEIHLHGPLQWLDKVLTQMGSPHNPISSVS
+>gi|11464653|gb|AAG35265.1|/1-455
+TMHPVNYQEPKYWCSIVYYELNNRVGEAFNASQLSIIIDGFTDPSNNSDRFCLGLLSNVNRNSTIENTRRHI
+GKGVHLYYVGGEVYAECLSDSSIFVQSRNCNYHHNFHPTTVCKIPPGCSLKIFSNQEF----AHLLSRTVHH
+GFEAVYELTKMCTIRMSFVKGWGAEYHRQDVTSTPCWVEIHLNGPLQWLDRVLTQMGTPRNPISSVS
+>gi|6273783|gb|AAF06361.1|/1-472
+DVHPVAYQEPKHWCSIVYYELNNRVGEAFLASSTSVLVDGFTDPSNNRNRFCLGLLSNVNRNSTIENTRRHI
+GKGVHLYYVGGEVYAECLSDSSIFVQSRNCNYHHGFHPTTVCKIPSRCSLKIFNNQEF----AELLAQSVNH
+GFEAVYELTKMCTIRMSFVKGWGAKYHRQDVTSTPCWIEIHLHGPLQWLDKVLTQMGSPHNPISSVS
+>gi|11907945|gb|AAG41407.1|/1-465
+DVQAVAYEEPKHWCSIVYYELNNRVGEAFHASSTSVLVDGFTDPSNNKNRFCLGLLSNVNRNSTIENTRRHI
+GKGVHLYYVGGEVYAECLSDSSIFVQSRNCNYHHGFHPTTVCKIPSGCSLKIFNNQEF----AQLLAQSVNH
+GFETVYELTKMCTIRMSFVKGWGAEYHRQDVTSTPCWIEIHLHGPLQWLDKVLTQMGSPHNPISSVS
+>gi|29725652|gb|AAO88909.1|/1-465
+DVQAVAYEEPKHWCSIVYYELNNRVGEAFHASSTSVLVDGFTDPSNNKNRFCLGLLSNVNRNSTIENTRRHI
+GKGVHLYYVGGEVYAECLSDSSIFVQSRNCNYHHGFHPTTVCKIPSGCSLKIFNNQEF----AQLLAQSVNH
+GFETVYELTKMCTIRMSFVKGWGAEYHRQDVTSTPCWIEIHLHGPLQWLDKVLTQMGSPHNPISSVS
+>gi|1654323|gb|AAC50790.1|/1-465
+DVQAVAYEEPKHWCSIVYYELNNRVGEAFHASSTSVLVDGFTDPSNNKNRFCLGLLSNVNRNSTIENTRRHI
+GKGVHLYYVGGEVYAECLSDSSIFVQSRNCNYHHGFHPTTVCKIPSGCSLKIFNNQEF----AQLLAQSVNH
+GFETVYELTKMCTIRMSFVKGWGAEYHRQDVTSTPCWIEIHLHGPLQWLDKVLTQMGSPHNPISSVS
+>gi|3192871|gb|AAC19116.1|/1-468
+DVQAVAYEEPKHWCSIVYYELNNRVGEAFHASSTSVLVDGFTDPSNNKNRFCLGLLSNVNRNSTIENTRRHI
+GKGVHLYYVGGEVYAECLSDSSIFVQSRNCNYHHGFHPTTVCKIPSGCSLKIFNNQEF----AQLLAQSVNH
+GFETVYELTKMCTIRMSFVKGWGAEYHRQDVTSTPCWIEIHLHGPLQWLDKVLTQMGSPHNPISSVS
+>gi|55926152|ref|NP_001007481.1|/1-464
+DVQAVAYEEPKHWCSIVYYELNNRVGEAFHASSTSVLVDGFTDPSNNRNRFCLGLLSNVNRNSTIENTRRHI
+GKGVHLYYVGGEVYAECLSDSSIFVQSRNCNFHHGFHPTTVCKIPSGCSLKIFNNQEF----AQLLAQSVNH
+GFETVYELTKMCTIRMSFVKGWGAEYHRQDVTSTPCWIEIHLHGPLQWLDKVLTQMGSPHNPISSVS
+>gi|61967926|gb|AAX56945.1|/1-465
+DVQPVAYEEPKHWCSIVYYELNNRVGEAFHASSTSVLVDGFTDPSNNKNRFCLGLLSNVNRNSTIENTRRHI
+GKGVHLYYVGGEVYAECLSDSSIFVQSRNCNYHHGFHPTTVCKIPSGCSLKIFNNQEF----AQLLAQSVNH
+GFEAVYELTKMCTIRMSFVKGWGAEYHRQDVTSTPCWIEIHLHGPLQWLDKVLTQMGSPLNPISSVS
+>gi|2360958|gb|AAB92396.1|/1-465
+DVQPVAYEEPKHWCSIVYYELNNRVGEAFHASSTSVLVDGFTDPSNNKSRFCLGLLSNVNRNSTIENTRRHI
+GKGVHLYYVGGEVYAECLSDSSIFVQSRNCNFHHGFHPTTVCKIPSSCSLKIFNNQEF----AQLLAQSVNH
+GFEAVYELTKMCTIRMSFVKGWGAEYHRQDVTSTPCWIEIHLHGPLQWLDKVLTQMGSPLNPISSVS
+>gi|5706366|dbj|BAA83093.1|/1-465
+DVQPVAYEEPKHWCSIVYYELNNRVGEAFHASSTSVLVDGFTDPANNKSRFCLGLLSNVNRNSTIENTRRHI
+GKGVHLYYVGGEVYAECLSDSSIFVQSRNCNFHHGFHPTTVCKIPSSCSLKIFNNQEF----AQLLAQSVNH
+GFEAVYELTKMCTIRMSFVKGWGAEYHRQDVTSTPCWIEIHLHGPLQWLDKVLTQMGSPLNPISSVS
+>gi|3982649|gb|AAC83580.1|/1-465
+DVQPVAYEEPKHWCSIVYYELNNRVGEAFHASSTSVLVDGFTDPSNNKSRFCLGLLSNVNRNSTIENTRRHI
+GKGVHLYYVGGEVYAECLSDSSIFVQSRNCNFHHGFHPTTVCKIPSSCSLKIFNNQEF----AQLLAQSVNH
+GFEAVYELTKMCTIRMSFVKGWGAEYHRQDVTSTPCWIEIHLHGPLQWLDKVLTQMGSPLNPISSVS
+>gi|6288777|gb|AAF06738.1|/1-464
+DVQPVEYQEPSHWCSIVYYELNNRVGEAYHASSTSVLVDGFTDPSNNKNRFCLGLLSNVNRNSTIENTRRHI
+GKGVHLYYVGGEVYAECLSDTSIFVQSRNCNYHHGFHPTTVCKIPSGCSLKIFNNQEF----AQLLAQSVNH
+GFEAVYELTKMCTIRMSFVKGWGAEYHRQDVTSTPCWIEVHLHGPLQWLDKVLTQMGSPLNPISSVS
+>gi|61967928|gb|AAX56946.1|/1-476
+NFRPVCYEEPQHWCSVAYYELNNRVGETFQASSRSILIDGFTDPSNNKNRFCLGLLSNVNRNSTIENTRRHI
+GKGVHLYYVGGEVYAECVSDSSIFVQSRNCNYQHGFHPATVCKIPSGCSLKIFNNQLF----AQPLAQSVNH
+GFEVVYELTKMCTIRMSFVKGWGAEYHRQDVTSTPCWIEIHLHGPLQWLDKVLTQMGSPHNPISSVS
+>gi|2689629|gb|AAC53515.1|/1-434
+DFRPVCYEEPLHWCSVAYYELNNRVGETFQASSRSVLIDGFTDPSNNRNRFCLGLLSNVNRNSTIENTRRHI
+GKGVHLYYVGGEVYAECVSDSSIFVQSRNCNYQHGFHPATVCKIPSGCSLKVFNNQLFAQLLAQLLAQSVHH
+GFEVVYELTKMCTIRMSFVKGWGAEYHRQDVTSTPCWIEIHLHGPLQWLDKVLTQMGSPHNPISSVS
+>gi|22532988|gb|AAF77079.2|/1-428
+DFRPVCYEEPQHWCSVAYYELNNRVGETFQASSRSVLIDGFTDPSNNRNRFCLGLLSNVNRNSTIENTRRHI
+GKGVHLYYVGGEVYAECVSDSSIFVQSRNCNYQHGFHPATVCKIPSGCSLKVFNNQLF----AQLLAQSVHH
+GFEVVYELTKMCTIRMSFVKGWGAEYHRQDVTSTPCWIEIHLHGPLQWLDKVLTQMGSPHNPISSVS
+>gi|2967646|gb|AAC39657.1|/1-467
+DLQPVTYSEPAFWCSIAYYELNQRVGETFHASQPSLTVDGFTDPSNS-ERFCLGLLSNVNRNATVEMTRRHI
+GRGVRLYYIGGEVFAECLSDSAIFVQSPNCNQRYGWHPATVCKIPPGCNLKIFNNQEF----AALLAQSVNQ
+GFEAVYQLTRMCTIRMSFVKGWGAEYRRQTVTSTPCWIELHLNGPLQWLDKVLTQMGSPSVRCSSMS
+>gi|45331050|gb|AAS57861.1|/1-468
+DLQPVTYSEPAFWCSIAYYELNQRVGETFHASQPSLTVDGFTDPSNS-ERFCLGLLSNVNRNATVEMTRRHI
+GRGVRLYYIGGEVFAECLSDSAIFVQSPNCNQRYDWHPATVCKIPPGCNLKIFNNQEF----AALLAQSVNQ
+GFEAVYQLTRMCTIRMSFVKGWGAEYRRQTVTSTPCWIELHLNGPLQWLDKVLTQMGSPSVRCSSMS
+>gi|5360217|dbj|BAA81909.1|/1-467
+DLQPVTYSEPAFWCSIAYYELNQRVGETFHASQPSLTVDGFTDPSNS-ERFCLGLLSNVNRNATVEMTRRHI
+GRGVRLYYIGGEVFAECLSDSAIFVQSPNCNQRYGWHPATVCKIPPGCNLKIFNNQEF----AALLAQSVNQ
+GFEAVYQLTRMCTIRMSFVKGWGAEYRRQTVTSTPCWIELHLNGPLQWLDKVLTQMGSPSVRCSSMS
+>gi|6288775|gb|AAF06737.1|/1-468
+DLQPVTYSEPAFWCSIAYYELNQRVGETFHASQPSLTVDGFTDPSNS-ERFCLCLLSNVNRNATVEMTRRHI
+GRGVRLYYIGGEVFAECLSDSAIFVQSPNCNQRYGWHPATVCKIPPGCNLKIFNNQEF----AALLAQSVNQ
+GFEAVYQLTRMCTIRMSFVKGWGAEYRRQTVTSTPCWIELHLNGPLQWLDKVLTQMGSPSVRCSSMS
+>gi|58047721|gb|AAH89184.1|/1-467
+DLQPVTYSEPAFWCSIAYYELNQRVGETFHASQPSLTVDGFTDPSNS-ERFCLGLLSNVNRNATVEMTRRHI
+GRGVRLYYIGGEVFAECLSDSAIFVQSPNCNQRYGWHPATVCKIPPGCNLKIFNNQEF----AALLAQSVNQ
+GFEAVYQLTRMCTIRMSFVKGWGAEYRRQTVTSTPCWIELHLNGPLQWLDKVLTQMGSPSVRCSSMS
+>gi|4009524|gb|AAD11458.1|/1-486
+DAAPVMYHEPAFWCSISYYELNTRVGETFHASQPSITVDGFTDPSNS-ERFCLGLLSNVNRNEVVEQTRRHI
+GKGVRLYYIGGEVFAECLSDSSIFVQSPNCNQRYGWHPATVCKIPPGCNLKIFNNQEF----AALLSQSVSQ
+GFEAVYQLTRMCTIRMSFVKGWGAEYRRQTVTSTPCWIELHLNGPLQWLDRVLTQMGSPRLPCSSMS
+>gi|40254710|ref|NP_571441.2|/1-468
+DLQPVTYSEPAFWCSIAYYELNQRVGETFHASQPSLTVDGFTDPSNS-ERFCLGLLSNVNRNATVEMTRRHI
+GRGVRLYYIGGEVFAECLSDSAIFVQSPNCNQRYGWHPATVCKIPPGCNLKIFNNQEF----AALLAQSVNQ
+GFEAVYQLTRMCTIRMSFVKGWGAEYRRQTVTSTPCWIELHLNGPLQWLDKVLTQMGSPSVRCSSMS
+>gi|18655485|pdb|1KHX|A|/22-227
+DLQPVTYSEPAFWCSIAYYELNQRVGETFHASQPSLTVDGFTDPSNS-ERFCLGLLSNVNRNATVEMTRRHI
+GRGVRLYYIGGEVFAECLSDSAIFVQSPNCNQRYGWHPATVCKIPPGCNLKIFNNQEF----AALLAQSVNQ
+GFEAVYQLTRMCTIRMSFVKGWGAEYRRQTVTSTPCWIELHLNGPLQWLDKVLTQMGSPSVRCSSMS
+>gi|13992583|emb|CAC38118.1|/1-425
+DLQPVTYCEPAFWCSISYYELNQRVGETFHASQPSMTVDGFTDPSNS-ERFCLGLLSNVNRNAAVELTRRHI
+GRGVRLYYIGGEVFAECLSDNAIFVQSPNCNQRYGWHPATVCKIPPGCNLKIFNNQEF----AALLAQSVNQ
+GFEAVYQLTRMCTIRMSFVKGWGAEYRRQTVTSTPCWIELHLNGPLQWLDKVLTQMGSPSIRCSSVS
+>gi|11875329|dbj|BAB19634.1|/1-425
+DLQPVTYCEPAFWCSISYYELNQRVGETFHASQPSMTVDGFTDPSNS-ERFCLGLLSNVNRNAAVELTRRHI
+GRGVRLYYIGGEVFAECLSDSAIFVQSPNCNQRYGWHPATVCKIPPGCNLKIFNNQEF----AALLAQSVNQ
+GFEAVYQLTRMCTIRMSFVKGWGAEYRRQTVTSTPCWIELHLNGPLQWLDKVLTQMGSPSIRCSSVS
+>gi|45331052|gb|AAS57862.1|/1-422
+DLQPVTYCESAFWCSISYYELNQRVGETFHASQPSLTVDGFTDPSNA-ERFCLGLLSNVNRNAAVELTRRHI
+GRGVRLYYIGGEVFAECLSDSAIFVQSPNCNQRYGWHPATVCKIPPGCNLKIFNNQEF----AALLAQSVNQ
+GFEAVYRLTRMCTIRMSFVKGWGAEYRRQTVTSTPCWIELHLNGPLQWLDKVLTQMGSPNLRCSSVS
+>gi|18418623|gb|AAL68976.1|/1-425
+DLQPVTYCEPAFWCSISYYELNQRVGETFHASQPSMTVDGFTDPSNS-ERFCLGLLSNVNRNAAVELTRRHI
+GRGVRLYYIGGEVFAECLSDSAIFVQSPNCNQRYGWHPATVCKIPPGCNLKIFNNQEF----AALLAQSVNQ
+GFEAVYQLTRMCTIRMSFVKGWGAEYRRQTVTSTPCWIELHLNGPLQWLDKVLTQMGSPSIRCSSVS
+>gi|2564493|gb|AAB81755.1|/1-425
+DLQPVTYCEPAFWCSISYYELNQRVGETFHASQPSMTVDGFTDPSNS-ERLCLGLLSNVNRNAAVELTRRHI
+GRGVRLYYIGGEVFAECLSDSAIFVQSPNCNQRYGWHPATVCKIPPGCNLKIFNNQEF----AALLAQSVNQ
+GFEAVYQLTRMCTIRMSFVKGWGAEYRRQTVTSTPCWIELHLNGPLQWLDKVLTQMGSPSIRCSSVS
+>gi|6981174|ref|NP_037227.1|/1-425
+DLQPVTYCEPAFWCSISYYELNQRVGETFHASQPSMTVDGFTDPSNS-ERFCLGLLSNVNRNAAVELTRRHI
+GRGVRLYYIGGEVFAECLSDSAIFVQSPNCNQRYGWHPATVCKIPPGCNLKIFNNQEF----AALLAQSVNQ
+GFEAVYQLTRMCTIRMSFVKGWGAEYRRQTVTSTPCWIELHLNGPLQWLDKVLTQMGSPSIRCSSVS
+>gi|45383213|ref|NP_989806.1|/1-426
+DLQPVTYCEPAFWCSISYYELNQRVGETFHASQPSMTVDGFTDPSNS-ERFCLGLLSNVNRNAAVELTRRHI
+GRGVRLYYIGGEVFAECLSDSAIFVQSPNCNQRYGWHPATVCKIPPGCNLKIFNNQEF----AALLAQSVNQ
+GFEAVYQLTRMCTIRMSFVKGWGAEYRRQTVTSTPCWIELHLNGPLQWLDKVLTQMGSPSIRCSSVS
+>gi|47523074|ref|NP_999302.1|/1-425
+DLQPVTYCEPAFWCSISYYELNQRVGETFHASQPSMTVDGFTDPSNS-ERFCLGLLSNVNRNAAVELTRRHI
+GRGVRLYYIGGEVFAECLSDSAIFVQSPNCNQRYGWHPATVCKIPPGCNLKIFNNQEF----AALLAQSVNQ
+GFEAVYQLTRMCTIRMSFVKGWGAEYRRQTVTSTPCWIELHLNGPLQWLDKVLTQMGSPSIRCSSVS
--- /dev/null
+JALVIEW_ANNOTATION
+# Created: Tue Jun 04 16:56:03 BST 2013
+
+
+SEQUENCE_GROUP group1 1 211 -1 gi|7160686|emb|CAB76819.1| gi|61967924|gb|AAX56944.1| gi|11464653|gb|AAG35265.1| gi|6273783|gb|AAF06361.1| gi|11907945|gb|AAG41407.1| gi|29725652|gb|AAO88909.1| gi|1654323|gb|AAC50790.1| gi|3192871|gb|AAC19116.1| gi|55926152|ref|NP_001007481.1|
+PROPERTIES group1 outlineColour=000000 displayBoxes=true displayText=true colourText=false showUnconserved=false textCol1=000000 textCol2=ffffff
+
+SEQUENCE_GROUP group2 1 211 -1 gi|61967926|gb|AAX56945.1| gi|2360958|gb|AAB92396.1| gi|5706366|dbj|BAA83093.1| gi|3982649|gb|AAC83580.1| gi|6288777|gb|AAF06738.1|
+PROPERTIES group2 outlineColour=000000 displayBoxes=true displayText=true colourText=false showUnconserved=false textCol1=000000 textCol2=ffffff
+
+SEQUENCE_GROUP group3 1 211 -1 gi|61967928|gb|AAX56946.1| gi|2689629|gb|AAC53515.1| gi|22532988|gb|AAF77079.2|
+PROPERTIES group3 outlineColour=000000 displayBoxes=true displayText=true colourText=false showUnconserved=false textCol1=000000 textCol2=ffffff
+
+SEQUENCE_GROUP group4 1 211 -1 gi|2967646|gb|AAC39657.1| gi|45331050|gb|AAS57861.1| gi|5360217|dbj|BAA81909.1| gi|6288775|gb|AAF06737.1| gi|58047721|gb|AAH89184.1| gi|4009524|gb|AAD11458.1| gi|40254710|ref|NP_571441.2| gi|18655485|pdb|1KHX|A|
+PROPERTIES group4 outlineColour=000000 displayBoxes=true displayText=true colourText=false showUnconserved=false textCol1=000000 textCol2=ffffff
+
+SEQUENCE_GROUP group5 1 211 -1 gi|13992583|emb|CAC38118.1| gi|11875329|dbj|BAB19634.1| gi|45331052|gb|AAS57862.1| gi|18418623|gb|AAL68976.1| gi|2564493|gb|AAB81755.1| gi|6981174|ref|NP_037227.1| gi|45383213|ref|NP_989806.1| gi|47523074|ref|NP_999302.1|
+PROPERTIES group5 outlineColour=000000 displayBoxes=true displayText=true colourText=false showUnconserved=false textCol1=000000 textCol2=ffffff
+
--- /dev/null
+#Comment lines follow the hash symbol
+JALVIEW_ANNOTATION
+SEQUENCE_REF FER1_MESCR 5
+BAR_GRAPH Bar Graph 1 <html>an <em>html tooltip</em> for Bar graph 1.</html> ||-100,-|-200,-|-300,-|-400,-|200,+|300,+|150,+
+LINE_GRAPH Green Values 1.1|2.2|1.3|3.4|0.7|1.4|3.3|2.2|2.1|-1.1|3.2
+LINE_GRAPH Red Values 2.1|3.2|1.3|-1.4|5.5|1.4|1.3|4.2|-1.1|1.1|3.2
+LINE_GRAPH Blue Values 0|0|0|1.1|2.2|1.3|3.4|0.7|1.4|3.3|2.2
+LINE_GRAPH Yellow Values 3.0|3.0|3.0|2.1|3.2|1.3|-1.4|5.5|1.4|1.3|4.2
+
+BAR_GRAPH Bar Graph 2 1,.|2,*|3,:|4,.|5,*|4,:|3,.|2|1|1|2|3|4|5|4
+
+NO_GRAPH Icons ||||E,Sheet1|E|E||||H,Sheet 2|H|H|H||||||
+NO_GRAPH Purple Letters m|y|p|r|o|t|e|i|n
+COLOUR Bar Graph 2 blue
+COLOUR Red Values 255,0,0
+COLOUR Green Values green
+COLOUR Blue Values blue
+COLOUR Yellow Values yellow
+COLOUR Purple Letters 151,52,228
+
+COMBINE Green Values Red Values
+COMBINE Blue Values Yellow Values
+
+GRAPHLINE Red Values 2.6 threshold black
+
+SEQUENCE_GROUP Group_A 30 50 *
+SEQUENCE_GROUP Group_B 1 351 2-5
+SEQUENCE_GROUP Group_C 12 14 -1 seq1 seq2 seq3
+PROPERTIES Group_A description=This is the description colour=Helix Propensity pidThreshold=0 outlineColour=red displayBoxes=true displayText=false colourText=false textCol1=black textCol2=black textColThreshold=0
+PROPERTIES Group_B outlineColour=red
+PROPERTIES Group_C colour=Clustal
--- /dev/null
+JALVIEW_ANNOTATION
+# Created: Fri Jun 21 13:44:50 BST 2013
+
+BAR_GRAPH Conservation Conservation of total alignment less than 25% gaps 1.0,1,1.0,[5d1500]|3.0,3,3.0,[7d3f00]|0.0,-,0.0,[4d0000]|0.0,-,0.0,[4d0000]|0.0,-,0.0,[4d0000]|0.0,-,0.0,[4d0000]|0.0,-,0.0,[4d0000]|0.0,-,0.0,[4d0000]|0.0,-,0.0,[4d0000]|0.0,-,0.0,[4d0000]|0.0,-,0.0,[4d0000]|0.0,-,0.0,[4d0000]|0.0,-,0.0,[4d0000]|0.0,-,0.0,[4d0000]|1.0,1,1.0,[5d1500]|2.0,2,2.0,[6d2a00]|0.0,0,0.0,[4d0000]|1.0,1,1.0,[5d1500]|0.0,0,0.0,[4d0000]|1.0,1,1.0,[5d1500]|0.0,0,0.0,[4d0000]|0.0,-,0.0,[4d0000]|0.0,-,0.0,[4d0000]|0.0,-,0.0,[4d0000]|0.0,0,0.0,[4d0000]|1.0,1,1.0,[5d1500]|0.0,0,0.0,[4d0000]|0.0,0,0.0,[4d0000]|0.0,0,0.0,[4d0000]|0.0,-,0.0,[4d0000]|0.0,-,0.0,[4d0000]|0.0,0,0.0,[4d0000]|0.0,0,0.0,[4d0000]|0.0,0,0.0,[4d0000]|0.0,0,0.0,[4d0000]|0.0,0,0.0,[4d0000]|0.0,0,0.0,[4d0000]|0.0,0,0.0,[4d0000]|0.0,-,0.0,[4d0000]|0.0,-,0.0,[4d0000]|2.0,2,2.0,[6d2a00]|1.0,1,1.0,[5d1500]|1.0,1,1.0,[5d1500]|1.0,1,1.0,[5d1500]|0.0,0,0.0,[4d0000]|0.0,0,0.0,[4d0000]|1.0,1,1.0,[5d1500]|0.0,-,0.0,[4d0000]|2.0,2,2.0,[6d2a00]|0.0,-,0.0,[4d0000]|0.0,-,0.0,[4d0000]|0.0,-,0.0,[4d0000]|0.0,-,0.0,[4d0000]|0.0,-,0.0,[4d0000]|0.0,0,0.0,[4d0000]|0.0,0,0.0,[4d0000]|0.0,0,0.0,[4d0000]|1.0,1,1.0,[5d1500]|0.0,0,0.0,[4d0000]|11.0,*,11.0,[ffe600]|7.0,7,7.0,[be9200]|11.0,*,11.0,[ffe600]|6.0,6,6.0,[ae7d00]|11.0,*,11.0,[ffe600]|6.0,6,6.0,[ae7d00]|8.0,8,8.0,[cea700]|9.0,9,9.0,[dfbc00]|11.0,*,11.0,[ffe600]|11.0,*,11.0,[ffe600]|7.0,7,7.0,[be9200]|11.0,*,11.0,[ffe600]|3.0,3,3.0,[7d3f00]|6.0,6,6.0,[ae7d00]|11.0,*,11.0,[ffe600]|7.0,7,7.0,[be9200]|7.0,7,7.0,[be9200]|9.0,9,9.0,[dfbc00]|5.0,5,5.0,[9e6800]|6.0,6,6.0,[ae7d00]|8.0,8,8.0,[cea700]|11.0,*,11.0,[ffe600]|11.0,*,11.0,[ffe600]|9.0,9,9.0,[dfbc00]|11.0,*,11.0,[ffe600]|11.0,*,11.0,[ffe600]|3.0,3,3.0,[7d3f00]|11.0,*,11.0,[ffe600]|11.0,*,11.0,[ffe600]|11.0,*,11.0,[ffe600]|3.0,3,3.0,[7d3f00]|11.0,*,11.0,[ffe600]|5.0,5,5.0,[9e6800]|9.0,9,9.0,[dfbc00]|11.0,*,11.0,[ffe600]|11.0,*,11.0,[ffe600]|9.0,9,9.0,[dfbc00]|11.0,*,11.0,[ffe600]|11.0,*,11.0,[ffe600]|11.0,*,11.0,[ffe600]|11.0,*,11.0,[ffe600]|11.0,*,11.0,[ffe600]|11.0,*,11.0,[ffe600]|11.0,*,11.0,[ffe600]|11.0,*,11.0,[ffe600]|11.0,*,11.0,[ffe600]|11.0,*,11.0,[ffe600]|11.0,*,11.0,[ffe600]|11.0,*,11.0,[ffe600]|11.0,*,11.0,[ffe600]|9.0,9,9.0,[dfbc00]|3.0,3,3.0,[7d3f00]|7.0,7,7.0,[be9200]|11.0,*,11.0,[ffe600]|3.0,3,3.0,[7d3f00]|9.0,9,9.0,[dfbc00]|8.0,8,8.0,[cea700]|11.0,*,11.0,[ffe600]|6.0,6,6.0,[ae7d00]|11.0,*,11.0,[ffe600]|4.0,4,4.0,[8d5300]|5.0,5,5.0,[9e6800]|9.0,9,9.0,[dfbc00]|11.0,*,11.0,[ffe600]|8.0,8,8.0,[cea700]|9.0,9,9.0,[dfbc00]|0.0,0,0.0,[4d0000]|1.0,1,1.0,[5d1500]|0.0,0,0.0,[4d0000]|0.0,0,0.0,[4d0000]|0.0,0,0.0,[4d0000]|3.0,3,3.0,[7d3f00]|2.0,2,2.0,[6d2a00]|3.0,3,3.0,[7d3f00]|2.0,2,2.0,[6d2a00]|2.0,2,2.0,[6d2a00]|2.0,2,2.0,[6d2a00]|1.0,1,1.0,[5d1500]|3.0,3,3.0,[7d3f00]|2.0,2,2.0,[6d2a00]|2.0,2,2.0,[6d2a00]|0.0,0,0.0,[4d0000]|1.0,1,1.0,[5d1500]|4.0,4,4.0,[8d5300]|3.0,3,3.0,[7d3f00]|1.0,1,1.0,[5d1500]|2.0,2,2.0,[6d2a00]|3.0,3,3.0,[7d3f00]|2.0,2,2.0,[6d2a00]|5.0,5,5.0,[9e6800]|3.0,3,3.0,[7d3f00]|3.0,3,3.0,[7d3f00]|0.0,0,0.0,[4d0000]|0.0,0,0.0,[4d0000]|1.0,1,1.0,[5d1500]|0.0,0,0.0,[4d0000]|0.0,-,0.0,[4d0000]|0.0,-,0.0,[4d0000]|
+BAR_GRAPH Quality Alignment Quality based on Blosum62 scores 29.151815,29.151815,[cba200]|30.574812,30.574812,[d1aa00]|14.400199,14.400199,[8b5000]|16.93248,16.93248,[965e00]|2.1220763,2.1220763,[560c00]|2.2049963,2.2049963,[560c00]|3.647952,3.647952,[5c1400]|4.814642,4.814642,[611b00]|18.351393,18.351393,[9c6600]|17.532412,17.532412,[996200]|7.5054855,7.5054855,[6d2a00]|15.490477,15.490477,[905600]|14.241707,14.241707,[8a4f00]|9.905579,9.905579,[773700]|20.354017,20.354017,[a57100]|26.870352,26.870352,[c19600]|24.969187,24.969187,[b98b00]|27.419409,27.419409,[c39900]|15.350427,15.350427,[8f5600]|21.116522,21.116522,[a87600]|9.34032,9.34032,[753400]|14.1895275,14.1895275,[8a4f00]|10.104505,10.104505,[783800]|8.587312,8.587312,[723000]|18.694708,18.694708,[9e6800]|11.420612,11.420612,[7e4000]|6.8467255,6.8467255,[6a2600]|17.449827,17.449827,[986100]|16.825909,16.825909,[955e00]|2.4334474,2.4334474,[570e00]|15.685622,15.685622,[915700]|9.836516,9.836516,[773700]|3.4712791,3.4712791,[5c1300]|4.531816,4.531816,[601900]|7.8744216,7.8744216,[6f2c00]|0.0,0.0,[4d0000]|9.01113,9.01113,[743200]|3.174218,3.174218,[5a1200]|2.0395048,2.0395048,[550b00]|2.1654668,2.1654668,[560c00]|21.517344,21.517344,[aa7800]|15.738462,15.738462,[915800]|14.844854,14.844854,[8d5300]|22.159096,22.159096,[ad7c00]|13.956608,13.956608,[894e00]|20.147892,20.147892,[a47000]|25.067545,25.067545,[b98c00]|2.0943506,2.0943506,[560c00]|20.30842,20.30842,[a57100]|10.254437,10.254437,[793900]|6.5836596,6.5836596,[692500]|19.446732,19.446732,[a16c00]|6.2202287,6.2202287,[672300]|9.796006,9.796006,[773700]|6.0385494,6.0385494,[672200]|13.963727,13.963727,[894e00]|13.838549,13.838549,[884d00]|18.48424,18.48424,[9d6700]|18.302633,18.302633,[9c6600]|41.172745,41.172745,[ffe600]|32.59908,32.59908,[dab600]|41.172745,41.172745,[ffe600]|34.495945,34.495945,[e2c000]|41.172745,41.172745,[ffe600]|33.501804,33.501804,[debb00]|27.034466,27.034466,[c29700]|40.020737,40.020737,[fadf00]|41.172745,41.172745,[ffe600]|41.172745,41.172745,[ffe600]|29.252739,29.252739,[cba300]|41.172745,41.172745,[ffe600]|14.935498,14.935498,[8d5300]|0.88449144,0.88449144,[500500]|41.172745,41.172745,[ffe600]|20.81991,20.81991,[a77400]|31.73346,31.73346,[d6b100]|29.757969,29.757969,[cea600]|16.279755,16.279755,[935b00]|32.647984,32.647984,[dab600]|38.352337,38.352337,[f3d600]|41.172745,41.172745,[ffe600]|41.172745,41.172745,[ffe600]|39.6125,39.6125,[f8dd00]|41.172745,41.172745,[ffe600]|41.172745,41.172745,[ffe600]|9.671661,9.671661,[763600]|41.172745,41.172745,[ffe600]|41.172745,41.172745,[ffe600]|41.172745,41.172745,[ffe600]|11.17141,11.17141,[7d3e00]|41.172745,41.172745,[ffe600]|3.2054348,3.2054348,[5a1200]|38.569283,38.569283,[f4d700]|41.172745,41.172745,[ffe600]|41.172745,41.172745,[ffe600]|39.707684,39.707684,[f9dd00]|41.172745,41.172745,[ffe600]|41.172745,41.172745,[ffe600]|41.172745,41.172745,[ffe600]|41.172745,41.172745,[ffe600]|41.172745,41.172745,[ffe600]|41.172745,41.172745,[ffe600]|41.172745,41.172745,[ffe600]|41.172745,41.172745,[ffe600]|41.172745,41.172745,[ffe600]|41.172745,41.172745,[ffe600]|41.172745,41.172745,[ffe600]|41.172745,41.172745,[ffe600]|41.172745,41.172745,[ffe600]|39.447525,39.447525,[f8dc00]|21.229778,21.229778,[a97600]|27.779364,27.779364,[c59b00]|41.172745,41.172745,[ffe600]|24.149143,24.149143,[b58700]|39.447525,39.447525,[f8dc00]|33.857655,33.857655,[dfbd00]|41.172745,41.172745,[ffe600]|28.69976,28.69976,[c9a000]|41.172745,41.172745,[ffe600]|14.611241,14.611241,[8c5100]|32.346375,32.346375,[d9b400]|39.24055,39.24055,[f7db00]|41.172745,41.172745,[ffe600]|38.352337,38.352337,[f3d600]|38.569283,38.569283,[f4d700]|22.374107,22.374107,[ae7d00]|36.98438,36.98438,[edce00]|12.34415,12.34415,[824500]|11.811655,11.811655,[804200]|14.798897,14.798897,[8d5200]|36.60138,36.60138,[ebcc00]|14.0762415,14.0762415,[8a4e00]|36.817875,36.817875,[eccd00]|36.53897,36.53897,[ebcc00]|37.583706,37.583706,[efd100]|35.536423,35.536423,[e7c600]|18.004925,18.004925,[9b6400]|37.633095,37.633095,[f0d200]|34.738743,34.738743,[e3c200]|36.451622,36.451622,[ebcb00]|19.948801,19.948801,[a36f00]|28.285,28.285,[c79e00]|35.93151,35.93151,[e8c800]|36.817875,36.817875,[eccd00]|26.762383,26.762383,[c19500]|36.37101,36.37101,[eacb00]|36.413998,36.413998,[eacb00]|37.583706,37.583706,[efd100]|36.282784,36.282784,[eaca00]|34.729824,34.729824,[e3c200]|36.413998,36.413998,[eacb00]|24.348654,24.348654,[b68800]|24.349539,24.349539,[b68800]|34.091675,34.091675,[e0be00]|21.114677,21.114677,[a87600]|13.676696,13.676696,[884c00]|2.1107035,2.1107035,[560c00]|
+BAR_GRAPH Consensus PID 80.0,M,M 80%|80.0,A,A 80%|20.0,+,[AST] 20%|53.333332,T,T 53%|0.0,-,- 0%|0.0,-,- 0%|13.333333,T,T 13%|20.0,P,P 20%|40.0,A,A 40%|40.0,L,L 40%|46.666668,S,S 46%|40.0,G,G 40%|33.333332,T,T 33%|20.0,+,[AIM] 20%|33.333332,V,V 33%|66.666664,S,S 66%|66.666664,T,T 66%|66.666664,S,S 66%|66.666664,F,F 66%|46.666668,L,L 46%|46.666668,R,R 46%|46.666668,R,R 46%|26.666666,Q,Q 26%|46.666668,P,P 46%|40.0,A,A 40%|60.0,P,P 60%|26.666666,T,T 26%|53.333332,S,S 53%|40.0,L,L 40%|20.0,R,R 20%|26.666666,S,S 26%|33.333332,L,L 33%|40.0,P,P 40%|26.666666,S,S 26%|33.333332,+,[AN] 33%|26.666666,V,V 26%|33.333332,G,G 33%|20.0,+,[EQ] 20%|0.0,-,- 0%|0.0,-,- 0%|33.333332,+,[AS] 33%|53.333332,L,L 53%|60.0,F,F 60%|73.333336,G,G 73%|66.666664,L,L 66%|66.666664,K,K 66%|53.333332,S,S 53%|0.0,-,- 0%|40.0,S,S 40%|26.666666,T,T 26%|20.0,A,A 20%|66.666664,R,R 66%|40.0,G,G 40%|53.333332,G,G 53%|46.666668,R,R 46%|33.333332,V,V 33%|46.666668,T,T 46%|53.333332,A,A 53%|66.666664,M,M 66%|100.0,A,A 100%|53.333332,T,T 53%|100.0,Y,Y 100%|86.666664,K,K 86%|100.0,V,V 100%|86.666664,K,K 86%|66.666664,L,L 66%|80.0,I,I 80%|100.0,T,T 100%|100.0,P,P 100%|66.666664,E,E 66%|100.0,G,G 100%|46.666668,E,E 46%|46.666668,Q,Q 46%|100.0,E,E 100%|46.666668,F,F 46%|60.0,E,E 60%|86.666664,C,C 86%|66.666664,P,P 66%|80.0,D,D 80%|93.333336,D,D 93%|100.0,V,V 100%|100.0,Y,Y 100%|66.666664,I,I 66%|100.0,L,L 100%|100.0,D,D 100%|46.666668,A,A 46%|100.0,A,A 100%|100.0,E,E 100%|100.0,E,E 100%|53.333332,A,A 53%|100.0,G,G 100%|60.0,I,I 60%|93.333336,D,D 93%|100.0,L,L 100%|100.0,P,P 100%|93.333336,Y,Y 93%|100.0,S,S 100%|100.0,C,C 100%|100.0,R,R 100%|100.0,A,A 100%|100.0,G,G 100%|100.0,S,S 100%|100.0,C,C 100%|100.0,S,S 100%|100.0,S,S 100%|100.0,C,C 100%|100.0,A,A 100%|100.0,G,G 100%|100.0,K,K 100%|80.0,V,V 80%|60.0,V,V 60%|53.333332,S,S 53%|100.0,G,G 100%|60.0,S,S 60%|80.0,V,V 80%|80.0,D,D 80%|100.0,Q,Q 100%|66.666664,S,S 66%|100.0,D,D 100%|46.666668,+,[GQ] 46%|73.333336,S,S 73%|93.333336,F,F 93%|100.0,L,L 100%|93.333336,D,D 93%|93.333336,D,D 93%|53.333332,D,D 53%|93.333336,Q,Q 93%|53.333332,I,I 53%|40.0,A,A 40%|53.333332,E,E 53%|93.333336,G,G 93%|46.666668,W,W 46%|93.333336,V,V 93%|93.333336,L,L 93%|93.333336,T,T 93%|93.333336,C,C 93%|53.333332,V,V 53%|93.333336,A,A 93%|86.666664,Y,Y 86%|93.333336,P,P 93%|60.0,T,T 60%|73.333336,S,S 73%|93.333336,D,D 93%|93.333336,V,V 93%|66.666664,T,T 66%|93.333336,I,I 93%|93.333336,E,E 93%|93.333336,T,T 93%|93.333336,H,H 93%|86.666664,K,K 86%|93.333336,E,E 93%|73.333336,E,E 73%|60.0,E,E 60%|73.333336,L,L 73%|46.666668,T,T 46%|40.0,A,A 40%|0.0,-,- 0%|
+
+SEQUENCE_REF FER2_ARATH
+LINE_GRAPH IUPredWS (Long) <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html> 0.1671,0.1671,[72144e]|0.2129,0.2129,[72144e]|0.247,0.247,[72144e]|0.1554,0.1554,[72144e]|0.1162,0.1162,[72144e]|0.1449,0.1449,[72144e]|0.1731,0.1731,[72144e]|0.2064,0.2064,[72144e]|0.2436,0.2436,[72144e]|0.2715,0.2715,[72144e]|0.3249,0.3249,[72144e]|0.2783,0.2783,[72144e]|0.3019,0.3019,[72144e]|0.2399,0.2399,[72144e]|0.2364,0.2364,[72144e]|0.2645,0.2645,[72144e]|0.2609,0.2609,[72144e]|0.2988,0.2988,[72144e]|0.2064,0.2064,[72144e]|0.2094,0.2094,[72144e]|0.2849,0.2849,[72144e]|0.3426,0.3426,[72144e]|0.3529,0.3529,[72144e]|0.3426,0.3426,[72144e]|0.2817,0.2817,[72144e]|0.2783,0.2783,[72144e]|0.3426,0.3426,[72144e]|0.2715,0.2715,[72144e]|0.2609,0.2609,[72144e]|0.2503,0.2503,[72144e]|0.2364,0.2364,[72144e]|0.2364,0.2364,[72144e]|0.1791,0.1791,[72144e]|0.247,0.247,[72144e]|0.2503,0.2503,[72144e]|0.3149,0.3149,[72144e]|0.3149,0.3149,[72144e]|0.2645,0.2645,[72144e]|0.3356,0.3356,[72144e]|0.2752,0.2752,[72144e]|0.346,0.346,[72144e]|0.346,0.346,[72144e]|0.3426,0.3426,[72144e]|0.2645,0.2645,[72144e]|0.247,0.247,[72144e]|0.1969,0.1969,[72144e]|0.2503,0.2503,[72144e]|0.2503,0.2503,[72144e]|0.1852,0.1852,[72144e]|0.2541,0.2541,[72144e]|0.2951,0.2951,[72144e]|0.3182,0.3182,[72144e]|0.3215,0.3215,[72144e]|0.3392,0.3392,[72144e]|0.374,0.374,[72144e]|0.3948,0.3948,[72144e]|0.3392,0.3392,[72144e]|0.3599,0.3599,[72144e]|0.268,0.268,[72144e]|0.3426,0.3426,[72144e]|0.3599,0.3599,[72144e]|0.4051,0.4051,[72144e]|0.374,0.374,[72144e]|0.3249,0.3249,[72144e]|0.268,0.268,[72144e]|0.2783,0.2783,[72144e]|0.3019,0.3019,[72144e]|0.3286,0.3286,[72144e]|0.3117,0.3117,[72144e]|0.4292,0.4292,[72144e]|0.5296,0.5296,[72144e]|0.4901,0.4901,[72144e]|0.4582,0.4582,[72144e]|0.3667,0.3667,[72144e]|0.384,0.384,[72144e]|0.2918,0.2918,[72144e]|0.3182,0.3182,[72144e]|0.2193,0.2193,[72144e]|0.2752,0.2752,[72144e]|0.1643,0.1643,[72144e]|0.2541,0.2541,[72144e]|0.2034,0.2034,[72144e]|0.1852,0.1852,[72144e]|0.1702,0.1702,[72144e]|0.1399,0.1399,[72144e]|0.2034,0.2034,[72144e]|0.2541,0.2541,[72144e]|0.2292,0.2292,[72144e]|0.1881,0.1881,[72144e]|0.2129,0.2129,[72144e]|0.2292,0.2292,[72144e]|0.1643,0.1643,[72144e]|0.107,0.107,[72144e]|0.1251,0.1251,[72144e]|0.1251,0.1251,[72144e]|0.1759,0.1759,[72144e]|0.1115,0.1115,[72144e]|0.1731,0.1731,[72144e]|0.1501,0.1501,[72144e]|0.2164,0.2164,[72144e]|0.2328,0.2328,[72144e]|0.3286,0.3286,[72144e]|0.3286,0.3286,[72144e]|0.2645,0.2645,[72144e]|0.2034,0.2034,[72144e]|0.2193,0.2193,[72144e]|0.3286,0.3286,[72144e]|0.3529,0.3529,[72144e]|0.3631,0.3631,[72144e]|0.4292,0.4292,[72144e]|0.4541,0.4541,[72144e]|0.4766,0.4766,[72144e]|0.4864,0.4864,[72144e]|0.4652,0.4652,[72144e]|0.4685,0.4685,[72144e]|0.4051,0.4051,[72144e]|0.4087,0.4087,[72144e]|0.3117,0.3117,[72144e]|0.3321,0.3321,[72144e]|0.2918,0.2918,[72144e]|0.2164,0.2164,[72144e]|0.2503,0.2503,[72144e]|0.2364,0.2364,[72144e]|0.2292,0.2292,[72144e]|0.2503,0.2503,[72144e]|0.2918,0.2918,[72144e]|0.3053,0.3053,[72144e]|0.2258,0.2258,[72144e]|0.2292,0.2292,[72144e]|0.2129,0.2129,[72144e]|0.2064,0.2064,[72144e]|0.2164,0.2164,[72144e]|0.2436,0.2436,[72144e]|0.2436,0.2436,[72144e]|0.2193,0.2193,[72144e]|0.2258,0.2258,[72144e]|0.2503,0.2503,[72144e]|0.3117,0.3117,[72144e]|0.2884,0.2884,[72144e]|0.374,0.374,[72144e]|0.4149,0.4149,[72144e]|0.4292,0.4292,[72144e]|0.5098,0.5098,[72144e]|0.4476,0.4476,[72144e]|0.422,0.422,[72144e]|0.4017,0.4017,[72144e]|0.3494,0.3494,[72144e]|0.4087,0.4087,[72144e]|
+GRAPHLINE IUPredWS (Long) 0.5 Above 0.5 indicates disorder ff0000
+LINE_GRAPH IUPredWS (Short) <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html> 0.82,0.82,[329440]|0.7147,0.7147,[329440]|0.6715,0.6715,[329440]|0.6334,0.6334,[329440]|0.59,0.59,[329440]|0.4513,0.4513,[329440]|0.3263,0.3263,[329440]|0.2963,0.2963,[329440]|0.2657,0.2657,[329440]|0.2292,0.2292,[329440]|0.1998,0.1998,[329440]|0.2209,0.2209,[329440]|0.2865,0.2865,[329440]|0.2122,0.2122,[329440]|0.2041,0.2041,[329440]|0.1667,0.1667,[329440]|0.2602,0.2602,[329440]|0.2558,0.2558,[329440]|0.1844,0.1844,[329440]|0.2483,0.2483,[329440]|0.2292,0.2292,[329440]|0.2657,0.2657,[329440]|0.2748,0.2748,[329440]|0.2748,0.2748,[329440]|0.2865,0.2865,[329440]|0.3762,0.3762,[329440]|0.3847,0.3847,[329440]|0.2786,0.2786,[329440]|0.27,0.27,[329440]|0.1878,0.1878,[329440]|0.1805,0.1805,[329440]|0.1805,0.1805,[329440]|0.1532,0.1532,[329440]|0.2255,0.2255,[329440]|0.1958,0.1958,[329440]|0.2786,0.2786,[329440]|0.2657,0.2657,[329440]|0.2748,0.2748,[329440]|0.3491,0.3491,[329440]|0.2531,0.2531,[329440]|0.3456,0.3456,[329440]|0.3491,0.3491,[329440]|0.3146,0.3146,[329440]|0.282,0.282,[329440]|0.27,0.27,[329440]|0.1998,0.1998,[329440]|0.2558,0.2558,[329440]|0.282,0.282,[329440]|0.2602,0.2602,[329440]|0.2602,0.2602,[329440]|0.1878,0.1878,[329440]|0.1844,0.1844,[329440]|0.2122,0.2122,[329440]|0.2292,0.2292,[329440]|0.2602,0.2602,[329440]|0.2786,0.2786,[329440]|0.282,0.282,[329440]|0.3005,0.3005,[329440]|0.2385,0.2385,[329440]|0.3184,0.3184,[329440]|0.2255,0.2255,[329440]|0.2748,0.2748,[329440]|0.3225,0.3225,[329440]|0.3762,0.3762,[329440]|0.3225,0.3225,[329440]|0.3225,0.3225,[329440]|0.2865,0.2865,[329440]|0.2865,0.2865,[329440]|0.3263,0.3263,[329440]|0.3717,0.3717,[329440]|0.4037,0.4037,[329440]|0.4245,0.4245,[329440]|0.4116,0.4116,[329440]|0.3578,0.3578,[329440]|0.3535,0.3535,[329440]|0.2748,0.2748,[329440]|0.2963,0.2963,[329440]|0.2167,0.2167,[329440]|0.3096,0.3096,[329440]|0.2255,0.2255,[329440]|0.3225,0.3225,[329440]|0.1732,0.1732,[329440]|0.1495,0.1495,[329440]|0.1088,0.1088,[329440]|0.1456,0.1456,[329440]|0.2041,0.2041,[329440]|0.1532,0.1532,[329440]|0.2041,0.2041,[329440]|0.1878,0.1878,[329440]|0.1322,0.1322,[329440]|0.1349,0.1349,[329440]|0.1205,0.1205,[329440]|0.0965,0.0965,[329440]|0.0884,0.0884,[329440]|0.0643,0.0643,[329440]|0.0935,0.0935,[329440]|0.0771,0.0771,[329440]|0.1088,0.1088,[329440]|0.0587,0.0587,[329440]|0.0991,0.0991,[329440]|0.0991,0.0991,[329440]|0.1958,0.1958,[329440]|0.2255,0.2255,[329440]|0.2602,0.2602,[329440]|0.2657,0.2657,[329440]|0.1844,0.1844,[329440]|0.2292,0.2292,[329440]|0.2483,0.2483,[329440]|0.2657,0.2657,[329440]|0.3939,0.3939,[329440]|0.4245,0.4245,[329440]|0.4037,0.4037,[329440]|0.4203,0.4203,[329440]|0.4967,0.4967,[329440]|0.5473,0.5473,[329440]|0.4781,0.4781,[329440]|0.4282,0.4282,[329440]|0.3578,0.3578,[329440]|0.4203,0.4203,[329440]|0.3491,0.3491,[329440]|0.2913,0.2913,[329440]|0.2657,0.2657,[329440]|0.1805,0.1805,[329440]|0.2167,0.2167,[329440]|0.208,0.208,[329440]|0.2963,0.2963,[329440]|0.3806,0.3806,[329440]|0.2963,0.2963,[329440]|0.2255,0.2255,[329440]|0.1456,0.1456,[329440]|0.1635,0.1635,[329440]|0.1766,0.1766,[329440]|0.1698,0.1698,[329440]|0.1349,0.1349,[329440]|0.1532,0.1532,[329440]|0.2292,0.2292,[329440]|0.2483,0.2483,[329440]|0.2432,0.2432,[329440]|0.2041,0.2041,[329440]|0.3005,0.3005,[329440]|0.4037,0.4037,[329440]|0.4749,0.4749,[329440]|0.59,0.59,[329440]|0.5941,0.5941,[329440]|0.6442,0.6442,[329440]|0.6827,0.6827,[329440]|0.7034,0.7034,[329440]|0.8001,0.8001,[329440]|
+GRAPHLINE IUPredWS (Short) 0.5 Above 0.5 indicates disorder ff0000
+
+SEQUENCE_REF Q93Z60_ARATH
+LINE_GRAPH IUPredWS (Long) <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html> 0.1671,0.1671,[72144e]|0.2129,0.2129,[72144e]|0.247,0.247,[72144e]|0.1554,0.1554,[72144e]|0.1162,0.1162,[72144e]|0.1449,0.1449,[72144e]|0.1731,0.1731,[72144e]|0.2064,0.2064,[72144e]|0.2436,0.2436,[72144e]|0.2715,0.2715,[72144e]|0.3215,0.3215,[72144e]|0.2752,0.2752,[72144e]|0.2988,0.2988,[72144e]|0.2364,0.2364,[72144e]|0.2328,0.2328,[72144e]|0.2575,0.2575,[72144e]|0.2575,0.2575,[72144e]|0.2918,0.2918,[72144e]|0.2034,0.2034,[72144e]|0.2034,0.2034,[72144e]|0.2817,0.2817,[72144e]|0.3392,0.3392,[72144e]|0.3494,0.3494,[72144e]|0.3426,0.3426,[72144e]|0.2783,0.2783,[72144e]|0.2752,0.2752,[72144e]|0.3426,0.3426,[72144e]|0.2715,0.2715,[72144e]|0.2609,0.2609,[72144e]|0.247,0.247,[72144e]|0.2364,0.2364,[72144e]|0.2364,0.2364,[72144e]|0.1791,0.1791,[72144e]|0.247,0.247,[72144e]|0.2503,0.2503,[72144e]|0.3215,0.3215,[72144e]|0.3215,0.3215,[72144e]|0.2715,0.2715,[72144e]|0.3426,0.3426,[72144e]|0.2817,0.2817,[72144e]|0.3566,0.3566,[72144e]|0.3566,0.3566,[72144e]|0.3529,0.3529,[72144e]|0.2715,0.2715,[72144e]|0.2575,0.2575,[72144e]|0.2064,0.2064,[72144e]|0.2645,0.2645,[72144e]|0.2645,0.2645,[72144e]|0.1942,0.1942,[72144e]|0.2645,0.2645,[72144e]|0.3053,0.3053,[72144e]|0.3286,0.3286,[72144e]|0.3321,0.3321,[72144e]|0.3494,0.3494,[72144e]|0.384,0.384,[72144e]|0.4051,0.4051,[72144e]|0.3494,0.3494,[72144e]|0.3667,0.3667,[72144e]|0.2752,0.2752,[72144e]|0.346,0.346,[72144e]|0.3631,0.3631,[72144e]|0.4051,0.4051,[72144e]|0.3704,0.3704,[72144e]|0.3215,0.3215,[72144e]|0.268,0.268,[72144e]|0.2783,0.2783,[72144e]|0.2988,0.2988,[72144e]|0.3249,0.3249,[72144e]|0.3053,0.3053,[72144e]|0.422,0.422,[72144e]|0.5139,0.5139,[72144e]|0.4801,0.4801,[72144e]|0.4476,0.4476,[72144e]|0.3566,0.3566,[72144e]|0.374,0.374,[72144e]|0.2849,0.2849,[72144e]|0.3087,0.3087,[72144e]|0.2129,0.2129,[72144e]|0.2645,0.2645,[72144e]|0.1583,0.1583,[72144e]|0.247,0.247,[72144e]|0.2002,0.2002,[72144e]|0.1852,0.1852,[72144e]|0.1702,0.1702,[72144e]|0.1399,0.1399,[72144e]|0.2002,0.2002,[72144e]|0.247,0.247,[72144e]|0.2224,0.2224,[72144e]|0.1852,0.1852,[72144e]|0.2094,0.2094,[72144e]|0.2258,0.2258,[72144e]|0.1611,0.1611,[72144e]|0.1092,0.1092,[72144e]|0.1251,0.1251,[72144e]|0.1251,0.1251,[72144e]|0.1759,0.1759,[72144e]|0.1115,0.1115,[72144e]|0.1731,0.1731,[72144e]|0.1501,0.1501,[72144e]|0.2129,0.2129,[72144e]|0.2292,0.2292,[72144e]|0.3249,0.3249,[72144e]|0.3215,0.3215,[72144e]|0.2645,0.2645,[72144e]|0.2002,0.2002,[72144e]|0.2193,0.2193,[72144e]|0.3286,0.3286,[72144e]|0.3249,0.3249,[72144e]|0.3117,0.3117,[72144e]|0.391,0.391,[72144e]|0.4051,0.4051,[72144e]|0.384,0.384,[72144e]|0.3774,0.3774,[72144e]|0.4292,0.4292,[72144e]|0.4901,0.4901,[72144e]|0.4801,0.4801,[72144e]|0.4582,0.4582,[72144e]|0.4409,0.4409,[72144e]|
+GRAPHLINE IUPredWS (Long) 0.5 Above 0.5 indicates disorder ff0000
+LINE_GRAPH IUPredWS (Short) <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html> 0.82,0.82,[329440]|0.7147,0.7147,[329440]|0.6715,0.6715,[329440]|0.6334,0.6334,[329440]|0.59,0.59,[329440]|0.4513,0.4513,[329440]|0.3263,0.3263,[329440]|0.2963,0.2963,[329440]|0.2657,0.2657,[329440]|0.2292,0.2292,[329440]|0.1998,0.1998,[329440]|0.2209,0.2209,[329440]|0.2865,0.2865,[329440]|0.2122,0.2122,[329440]|0.2041,0.2041,[329440]|0.1667,0.1667,[329440]|0.2602,0.2602,[329440]|0.2558,0.2558,[329440]|0.1844,0.1844,[329440]|0.2483,0.2483,[329440]|0.2292,0.2292,[329440]|0.2657,0.2657,[329440]|0.2748,0.2748,[329440]|0.2748,0.2748,[329440]|0.2865,0.2865,[329440]|0.3762,0.3762,[329440]|0.3847,0.3847,[329440]|0.2786,0.2786,[329440]|0.27,0.27,[329440]|0.1878,0.1878,[329440]|0.1805,0.1805,[329440]|0.1805,0.1805,[329440]|0.1532,0.1532,[329440]|0.2255,0.2255,[329440]|0.1958,0.1958,[329440]|0.2786,0.2786,[329440]|0.2657,0.2657,[329440]|0.2748,0.2748,[329440]|0.3491,0.3491,[329440]|0.2531,0.2531,[329440]|0.3456,0.3456,[329440]|0.3491,0.3491,[329440]|0.3146,0.3146,[329440]|0.282,0.282,[329440]|0.27,0.27,[329440]|0.1998,0.1998,[329440]|0.2558,0.2558,[329440]|0.282,0.282,[329440]|0.2602,0.2602,[329440]|0.2602,0.2602,[329440]|0.1878,0.1878,[329440]|0.1844,0.1844,[329440]|0.2122,0.2122,[329440]|0.2292,0.2292,[329440]|0.2602,0.2602,[329440]|0.2786,0.2786,[329440]|0.282,0.282,[329440]|0.3005,0.3005,[329440]|0.2385,0.2385,[329440]|0.3184,0.3184,[329440]|0.2255,0.2255,[329440]|0.2748,0.2748,[329440]|0.3225,0.3225,[329440]|0.3762,0.3762,[329440]|0.3225,0.3225,[329440]|0.3225,0.3225,[329440]|0.2865,0.2865,[329440]|0.2865,0.2865,[329440]|0.3263,0.3263,[329440]|0.3717,0.3717,[329440]|0.4037,0.4037,[329440]|0.4245,0.4245,[329440]|0.4116,0.4116,[329440]|0.3578,0.3578,[329440]|0.3535,0.3535,[329440]|0.2748,0.2748,[329440]|0.2963,0.2963,[329440]|0.2167,0.2167,[329440]|0.3096,0.3096,[329440]|0.2255,0.2255,[329440]|0.3225,0.3225,[329440]|0.1732,0.1732,[329440]|0.1495,0.1495,[329440]|0.1088,0.1088,[329440]|0.1456,0.1456,[329440]|0.2041,0.2041,[329440]|0.1532,0.1532,[329440]|0.1998,0.1998,[329440]|0.1844,0.1844,[329440]|0.1205,0.1205,[329440]|0.124,0.124,[329440]|0.1088,0.1088,[329440]|0.0858,0.0858,[329440]|0.0789,0.0789,[329440]|0.0607,0.0607,[329440]|0.0858,0.0858,[329440]|0.0701,0.0701,[329440]|0.1018,0.1018,[329440]|0.0567,0.0567,[329440]|0.0935,0.0935,[329440]|0.0965,0.0965,[329440]|0.1921,0.1921,[329440]|0.2167,0.2167,[329440]|0.2558,0.2558,[329440]|0.2602,0.2602,[329440]|0.1921,0.1921,[329440]|0.2602,0.2602,[329440]|0.2786,0.2786,[329440]|0.2913,0.2913,[329440]|0.4556,0.4556,[329440]|0.5331,0.5331,[329440]|0.5802,0.5802,[329440]|0.6412,0.6412,[329440]|0.7232,0.7232,[329440]|0.8074,0.8074,[329440]|0.8457,0.8457,[329440]|0.8823,0.8823,[329440]|0.9141,0.9141,[329440]|
+GRAPHLINE IUPredWS (Short) 0.5 Above 0.5 indicates disorder ff0000
+
+SEQUENCE_REF FER1_ARATH
+LINE_GRAPH IUPredWS (Long) <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html> 0.1583,0.1583,[72144e]|0.2034,0.2034,[72144e]|0.2364,0.2364,[72144e]|0.1476,0.1476,[72144e]|0.1048,0.1048,[72144e]|0.1349,0.1349,[72144e]|0.1643,0.1643,[72144e]|0.1881,0.1881,[72144e]|0.247,0.247,[72144e]|0.2399,0.2399,[72144e]|0.2951,0.2951,[72144e]|0.2503,0.2503,[72144e]|0.2783,0.2783,[72144e]|0.2129,0.2129,[72144e]|0.2094,0.2094,[72144e]|0.2364,0.2364,[72144e]|0.2328,0.2328,[72144e]|0.2715,0.2715,[72144e]|0.2715,0.2715,[72144e]|0.2715,0.2715,[72144e]|0.346,0.346,[72144e]|0.4051,0.4051,[72144e]|0.4149,0.4149,[72144e]|0.4087,0.4087,[72144e]|0.3392,0.3392,[72144e]|0.3392,0.3392,[72144e]|0.4087,0.4087,[72144e]|0.3321,0.3321,[72144e]|0.3215,0.3215,[72144e]|0.3215,0.3215,[72144e]|0.2884,0.2884,[72144e]|0.3215,0.3215,[72144e]|0.2609,0.2609,[72144e]|0.3321,0.3321,[72144e]|0.3356,0.3356,[72144e]|0.4051,0.4051,[72144e]|0.4017,0.4017,[72144e]|0.3494,0.3494,[72144e]|0.4292,0.4292,[72144e]|0.3667,0.3667,[72144e]|0.346,0.346,[72144e]|0.3494,0.3494,[72144e]|0.346,0.346,[72144e]|0.268,0.268,[72144e]|0.247,0.247,[72144e]|0.1969,0.1969,[72144e]|0.2541,0.2541,[72144e]|0.2541,0.2541,[72144e]|0.1881,0.1881,[72144e]|0.2609,0.2609,[72144e]|0.3019,0.3019,[72144e]|0.3249,0.3249,[72144e]|0.3249,0.3249,[72144e]|0.346,0.346,[72144e]|0.3053,0.3053,[72144e]|0.3249,0.3249,[72144e]|0.2715,0.2715,[72144e]|0.2951,0.2951,[72144e]|0.2034,0.2034,[72144e]|0.2715,0.2715,[72144e]|0.2817,0.2817,[72144e]|0.3249,0.3249,[72144e]|0.2951,0.2951,[72144e]|0.247,0.247,[72144e]|0.1942,0.1942,[72144e]|0.2002,0.2002,[72144e]|0.2224,0.2224,[72144e]|0.2503,0.2503,[72144e]|0.2328,0.2328,[72144e]|0.346,0.346,[72144e]|0.4409,0.4409,[72144e]|0.4087,0.4087,[72144e]|0.3774,0.3774,[72144e]|0.2849,0.2849,[72144e]|0.2988,0.2988,[72144e]|0.2064,0.2064,[72144e]|0.3087,0.3087,[72144e]|0.2094,0.2094,[72144e]|0.2645,0.2645,[72144e]|0.1554,0.1554,[72144e]|0.2399,0.2399,[72144e]|0.1969,0.1969,[72144e]|0.1852,0.1852,[72144e]|0.1702,0.1702,[72144e]|0.1399,0.1399,[72144e]|0.2002,0.2002,[72144e]|0.2503,0.2503,[72144e]|0.2258,0.2258,[72144e]|0.1881,0.1881,[72144e]|0.2129,0.2129,[72144e]|0.2292,0.2292,[72144e]|0.1611,0.1611,[72144e]|0.107,0.107,[72144e]|0.1251,0.1251,[72144e]|0.1229,0.1229,[72144e]|0.1759,0.1759,[72144e]|0.1229,0.1229,[72144e]|0.1914,0.1914,[72144e]|0.1702,0.1702,[72144e]|0.2364,0.2364,[72144e]|0.2503,0.2503,[72144e]|0.3529,0.3529,[72144e]|0.3494,0.3494,[72144e]|0.2884,0.2884,[72144e]|0.2258,0.2258,[72144e]|0.2436,0.2436,[72144e]|0.3529,0.3529,[72144e]|0.3774,0.3774,[72144e]|0.3872,0.3872,[72144e]|0.4119,0.4119,[72144e]|0.4369,0.4369,[72144e]|0.4619,0.4619,[72144e]|0.4725,0.4725,[72144e]|0.433,0.433,[72144e]|0.4369,0.4369,[72144e]|0.374,0.374,[72144e]|0.3774,0.3774,[72144e]|0.2817,0.2817,[72144e]|0.3087,0.3087,[72144e]|0.2715,0.2715,[72144e]|0.1942,0.1942,[72144e]|0.2292,0.2292,[72144e]|0.2164,0.2164,[72144e]|0.2064,0.2064,[72144e]|0.2224,0.2224,[72144e]|0.2609,0.2609,[72144e]|0.3249,0.3249,[72144e]|0.2436,0.2436,[72144e]|0.2503,0.2503,[72144e]|0.2328,0.2328,[72144e]|0.2193,0.2193,[72144e]|0.2715,0.2715,[72144e]|0.2951,0.2951,[72144e]|0.2988,0.2988,[72144e]|0.3149,0.3149,[72144e]|0.3392,0.3392,[72144e]|0.3356,0.3356,[72144e]|0.3948,0.3948,[72144e]|0.3774,0.3774,[72144e]|0.4725,0.4725,[72144e]|0.4864,0.4864,[72144e]|0.5055,0.5055,[72144e]|0.6043,0.6043,[72144e]|0.5296,0.5296,[72144e]|0.5098,0.5098,[72144e]|0.4979,0.4979,[72144e]|0.4507,0.4507,[72144e]|0.5296,0.5296,[72144e]|
+GRAPHLINE IUPredWS (Long) 0.5 Above 0.5 indicates disorder ff0000
+LINE_GRAPH IUPredWS (Short) <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html> 0.8242,0.8242,[329440]|0.7275,0.7275,[329440]|0.6906,0.6906,[329440]|0.6516,0.6516,[329440]|0.6124,0.6124,[329440]|0.4781,0.4781,[329440]|0.3535,0.3535,[329440]|0.3225,0.3225,[329440]|0.2913,0.2913,[329440]|0.2432,0.2432,[329440]|0.2292,0.2292,[329440]|0.2209,0.2209,[329440]|0.2913,0.2913,[329440]|0.2167,0.2167,[329440]|0.208,0.208,[329440]|0.1766,0.1766,[329440]|0.2657,0.2657,[329440]|0.2657,0.2657,[329440]|0.1958,0.1958,[329440]|0.2558,0.2558,[329440]|0.3184,0.3184,[329440]|0.3456,0.3456,[329440]|0.3456,0.3456,[329440]|0.3399,0.3399,[329440]|0.3578,0.3578,[329440]|0.4458,0.4458,[329440]|0.46,0.46,[329440]|0.3578,0.3578,[329440]|0.3456,0.3456,[329440]|0.2786,0.2786,[329440]|0.2558,0.2558,[329440]|0.2913,0.2913,[329440]|0.2602,0.2602,[329440]|0.3399,0.3399,[329440]|0.3096,0.3096,[329440]|0.3885,0.3885,[329440]|0.3717,0.3717,[329440]|0.3762,0.3762,[329440]|0.4556,0.4556,[329440]|0.363,0.363,[329440]|0.3668,0.3668,[329440]|0.3668,0.3668,[329440]|0.3359,0.3359,[329440]|0.3005,0.3005,[329440]|0.282,0.282,[329440]|0.208,0.208,[329440]|0.2602,0.2602,[329440]|0.282,0.282,[329440]|0.2602,0.2602,[329440]|0.2483,0.2483,[329440]|0.1732,0.1732,[329440]|0.1698,0.1698,[329440]|0.1998,0.1998,[329440]|0.2122,0.2122,[329440]|0.2432,0.2432,[329440]|0.2602,0.2602,[329440]|0.1878,0.1878,[329440]|0.208,0.208,[329440]|0.1532,0.1532,[329440]|0.2209,0.2209,[329440]|0.1456,0.1456,[329440]|0.1844,0.1844,[329440]|0.2255,0.2255,[329440]|0.2748,0.2748,[329440]|0.2209,0.2209,[329440]|0.2255,0.2255,[329440]|0.1878,0.1878,[329440]|0.1844,0.1844,[329440]|0.2167,0.2167,[329440]|0.2657,0.2657,[329440]|0.3005,0.3005,[329440]|0.3225,0.3225,[329440]|0.3096,0.3096,[329440]|0.2483,0.2483,[329440]|0.2483,0.2483,[329440]|0.1698,0.1698,[329440]|0.2602,0.2602,[329440]|0.1805,0.1805,[329440]|0.27,0.27,[329440]|0.1878,0.1878,[329440]|0.2786,0.2786,[329440]|0.138,0.138,[329440]|0.1205,0.1205,[329440]|0.0884,0.0884,[329440]|0.1178,0.1178,[329440]|0.1732,0.1732,[329440]|0.1292,0.1292,[329440]|0.1805,0.1805,[329440]|0.1698,0.1698,[329440]|0.1178,0.1178,[329440]|0.124,0.124,[329440]|0.1088,0.1088,[329440]|0.0858,0.0858,[329440]|0.0771,0.0771,[329440]|0.0554,0.0554,[329440]|0.0832,0.0832,[329440]|0.0677,0.0677,[329440]|0.1018,0.1018,[329440]|0.0554,0.0554,[329440]|0.0965,0.0965,[329440]|0.0965,0.0965,[329440]|0.1921,0.1921,[329440]|0.2167,0.2167,[329440]|0.2558,0.2558,[329440]|0.2602,0.2602,[329440]|0.1844,0.1844,[329440]|0.2333,0.2333,[329440]|0.2531,0.2531,[329440]|0.2657,0.2657,[329440]|0.3992,0.3992,[329440]|0.4333,0.4333,[329440]|0.3762,0.3762,[329440]|0.3992,0.3992,[329440]|0.4781,0.4781,[329440]|0.5374,0.5374,[329440]|0.4651,0.4651,[329440]|0.4203,0.4203,[329440]|0.3535,0.3535,[329440]|0.4078,0.4078,[329440]|0.3311,0.3311,[329440]|0.3096,0.3096,[329440]|0.2865,0.2865,[329440]|0.208,0.208,[329440]|0.2531,0.2531,[329440]|0.2483,0.2483,[329440]|0.3263,0.3263,[329440]|0.4078,0.4078,[329440]|0.3225,0.3225,[329440]|0.3005,0.3005,[329440]|0.2041,0.2041,[329440]|0.2255,0.2255,[329440]|0.2748,0.2748,[329440]|0.2602,0.2602,[329440]|0.208,0.208,[329440]|0.2292,0.2292,[329440]|0.3263,0.3263,[329440]|0.3885,0.3885,[329440]|0.3939,0.3939,[329440]|0.3456,0.3456,[329440]|0.4458,0.4458,[329440]|0.5173,0.5173,[329440]|0.5802,0.5802,[329440]|0.6789,0.6789,[329440]|0.6789,0.6789,[329440]|0.7275,0.7275,[329440]|0.7644,0.7644,[329440]|0.7912,0.7912,[329440]|0.8823,0.8823,[329440]|
+GRAPHLINE IUPredWS (Short) 0.5 Above 0.5 indicates disorder ff0000
+
+SEQUENCE_REF FER_BRANA
+LINE_GRAPH IUPredWS (Long) <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html> 0.1969,0.1969,[72144e]|0.2783,0.2783,[72144e]|0.3182,0.3182,[72144e]|0.384,0.384,[72144e]|0.3321,0.3321,[72144e]|0.3872,0.3872,[72144e]|0.2752,0.2752,[72144e]|0.3182,0.3182,[72144e]|0.3599,0.3599,[72144e]|0.3948,0.3948,[72144e]|0.3566,0.3566,[72144e]|0.3149,0.3149,[72144e]|0.2609,0.2609,[72144e]|0.268,0.268,[72144e]|0.3053,0.3053,[72144e]|0.3321,0.3321,[72144e]|0.3249,0.3249,[72144e]|0.4476,0.4476,[72144e]|0.5456,0.5456,[72144e]|0.5098,0.5098,[72144e]|0.4766,0.4766,[72144e]|0.384,0.384,[72144e]|0.4017,0.4017,[72144e]|0.3087,0.3087,[72144e]|0.3321,0.3321,[72144e]|0.2399,0.2399,[72144e]|0.2918,0.2918,[72144e]|0.1643,0.1643,[72144e]|0.2541,0.2541,[72144e]|0.2094,0.2094,[72144e]|0.1942,0.1942,[72144e]|0.1759,0.1759,[72144e]|0.1323,0.1323,[72144e]|0.1852,0.1852,[72144e]|0.2292,0.2292,[72144e]|0.1914,0.1914,[72144e]|0.1528,0.1528,[72144e]|0.1759,0.1759,[72144e]|0.1791,0.1791,[72144e]|0.1206,0.1206,[72144e]|0.0765,0.0765,[72144e]|0.0888,0.0888,[72144e]|0.0888,0.0888,[72144e]|0.0749,0.0749,[72144e]|0.0473,0.0473,[72144e]|0.0817,0.0817,[72144e]|0.0704,0.0704,[72144e]|0.1048,0.1048,[72144e]|0.1162,0.1162,[72144e]|0.2258,0.2258,[72144e]|0.2364,0.2364,[72144e]|0.1731,0.1731,[72144e]|0.1251,0.1251,[72144e]|0.1399,0.1399,[72144e]|0.2503,0.2503,[72144e]|0.2715,0.2715,[72144e]|0.2783,0.2783,[72144e]|0.3215,0.3215,[72144e]|0.3215,0.3215,[72144e]|0.346,0.346,[72144e]|0.3667,0.3667,[72144e]|0.3249,0.3249,[72144e]|0.3249,0.3249,[72144e]|0.2645,0.2645,[72144e]|0.268,0.268,[72144e]|0.2541,0.2541,[72144e]|0.2817,0.2817,[72144e]|0.2399,0.2399,[72144e]|0.1702,0.1702,[72144e]|0.2034,0.2034,[72144e]|0.1914,0.1914,[72144e]|0.1643,0.1643,[72144e]|0.1823,0.1823,[72144e]|0.2164,0.2164,[72144e]|0.2849,0.2849,[72144e]|0.2002,0.2002,[72144e]|0.2064,0.2064,[72144e]|0.1942,0.1942,[72144e]|0.1823,0.1823,[72144e]|0.2224,0.2224,[72144e]|0.2752,0.2752,[72144e]|0.2752,0.2752,[72144e]|0.2988,0.2988,[72144e]|0.3249,0.3249,[72144e]|0.3249,0.3249,[72144e]|0.3872,0.3872,[72144e]|0.3667,0.3667,[72144e]|0.4685,0.4685,[72144e]|0.4864,0.4864,[72144e]|0.5017,0.5017,[72144e]|0.5951,0.5951,[72144e]|0.5296,0.5296,[72144e]|0.5055,0.5055,[72144e]|0.494,0.494,[72144e]|0.4441,0.4441,[72144e]|0.5254,0.5254,[72144e]|
+GRAPHLINE IUPredWS (Long) 0.5 Above 0.5 indicates disorder ff0000
+LINE_GRAPH IUPredWS (Short) <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html> 0.7605,0.7605,[329440]|0.7458,0.7458,[329440]|0.7079,0.7079,[329440]|0.6906,0.6906,[329440]|0.6557,0.6557,[329440]|0.6412,0.6412,[329440]|0.5374,0.5374,[329440]|0.5173,0.5173,[329440]|0.3806,0.3806,[329440]|0.3578,0.3578,[329440]|0.3311,0.3311,[329440]|0.3885,0.3885,[329440]|0.3456,0.3456,[329440]|0.3456,0.3456,[329440]|0.3225,0.3225,[329440]|0.3225,0.3225,[329440]|0.3806,0.3806,[329440]|0.4116,0.4116,[329440]|0.4379,0.4379,[329440]|0.4651,0.4651,[329440]|0.4458,0.4458,[329440]|0.3806,0.3806,[329440]|0.3762,0.3762,[329440]|0.2913,0.2913,[329440]|0.3096,0.3096,[329440]|0.2167,0.2167,[329440]|0.3146,0.3146,[329440]|0.2255,0.2255,[329440]|0.3184,0.3184,[329440]|0.1698,0.1698,[329440]|0.138,0.138,[329440]|0.1018,0.1018,[329440]|0.1322,0.1322,[329440]|0.1805,0.1805,[329440]|0.1322,0.1322,[329440]|0.1805,0.1805,[329440]|0.1667,0.1667,[329440]|0.1117,0.1117,[329440]|0.115,0.115,[329440]|0.1018,0.1018,[329440]|0.0771,0.0771,[329440]|0.066,0.066,[329440]|0.0478,0.0478,[329440]|0.0677,0.0677,[329440]|0.0554,0.0554,[329440]|0.0478,0.0478,[329440]|0.0268,0.0268,[329440]|0.0441,0.0441,[329440]|0.0455,0.0455,[329440]|0.1018,0.1018,[329440]|0.124,0.124,[329440]|0.1667,0.1667,[329440]|0.1698,0.1698,[329440]|0.1088,0.1088,[329440]|0.138,0.138,[329440]|0.1532,0.1532,[329440]|0.1667,0.1667,[329440]|0.2786,0.2786,[329440]|0.3184,0.3184,[329440]|0.2602,0.2602,[329440]|0.2558,0.2558,[329440]|0.3399,0.3399,[329440]|0.4078,0.4078,[329440]|0.3263,0.3263,[329440]|0.2786,0.2786,[329440]|0.2913,0.2913,[329440]|0.3491,0.3491,[329440]|0.27,0.27,[329440]|0.2432,0.2432,[329440]|0.2209,0.2209,[329440]|0.1532,0.1532,[329440]|0.1732,0.1732,[329440]|0.1698,0.1698,[329440]|0.2483,0.2483,[329440]|0.3311,0.3311,[329440]|0.2483,0.2483,[329440]|0.2292,0.2292,[329440]|0.1495,0.1495,[329440]|0.1698,0.1698,[329440]|0.2122,0.2122,[329440]|0.2292,0.2292,[329440]|0.1805,0.1805,[329440]|0.1998,0.1998,[329440]|0.3053,0.3053,[329440]|0.3806,0.3806,[329440]|0.3939,0.3939,[329440]|0.3399,0.3399,[329440]|0.4513,0.4513,[329440]|0.5173,0.5173,[329440]|0.5846,0.5846,[329440]|0.6827,0.6827,[329440]|0.6827,0.6827,[329440]|0.7317,0.7317,[329440]|0.7688,0.7688,[329440]|0.7951,0.7951,[329440]|0.8857,0.8857,[329440]|
+GRAPHLINE IUPredWS (Short) 0.5 Above 0.5 indicates disorder ff0000
+
+SEQUENCE_REF FER3_RAPSA
+LINE_GRAPH IUPredWS (Long) <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html> 0.2224,0.2224,[72144e]|0.3053,0.3053,[72144e]|0.346,0.346,[72144e]|0.4087,0.4087,[72144e]|0.3599,0.3599,[72144e]|0.4149,0.4149,[72144e]|0.2988,0.2988,[72144e]|0.3426,0.3426,[72144e]|0.384,0.384,[72144e]|0.4186,0.4186,[72144e]|0.384,0.384,[72144e]|0.3426,0.3426,[72144e]|0.2918,0.2918,[72144e]|0.2988,0.2988,[72144e]|0.3356,0.3356,[72144e]|0.3599,0.3599,[72144e]|0.3529,0.3529,[72144e]|0.4685,0.4685,[72144e]|0.5665,0.5665,[72144e]|0.5342,0.5342,[72144e]|0.4979,0.4979,[72144e]|0.4087,0.4087,[72144e]|0.4256,0.4256,[72144e]|0.3356,0.3356,[72144e]|0.3599,0.3599,[72144e]|0.268,0.268,[72144e]|0.3182,0.3182,[72144e]|0.1881,0.1881,[72144e]|0.2849,0.2849,[72144e]|0.2399,0.2399,[72144e]|0.2224,0.2224,[72144e]|0.2034,0.2034,[72144e]|0.1528,0.1528,[72144e]|0.2094,0.2094,[72144e]|0.2575,0.2575,[72144e]|0.2129,0.2129,[72144e]|0.1759,0.1759,[72144e]|0.1969,0.1969,[72144e]|0.2034,0.2034,[72144e]|0.1424,0.1424,[72144e]|0.0929,0.0929,[72144e]|0.107,0.107,[72144e]|0.107,0.107,[72144e]|0.1501,0.1501,[72144e]|0.1028,0.1028,[72144e]|0.1611,0.1611,[72144e]|0.1399,0.1399,[72144e]|0.1942,0.1942,[72144e]|0.2129,0.2129,[72144e]|0.3249,0.3249,[72144e]|0.3321,0.3321,[72144e]|0.2715,0.2715,[72144e]|0.2094,0.2094,[72144e]|0.2258,0.2258,[72144e]|0.3529,0.3529,[72144e]|0.374,0.374,[72144e]|0.3807,0.3807,[72144e]|0.4256,0.4256,[72144e]|0.4256,0.4256,[72144e]|0.4507,0.4507,[72144e]|0.4685,0.4685,[72144e]|0.4256,0.4256,[72144e]|0.4292,0.4292,[72144e]|0.3667,0.3667,[72144e]|0.3704,0.3704,[72144e]|0.2645,0.2645,[72144e]|0.2918,0.2918,[72144e]|0.2503,0.2503,[72144e]|0.1823,0.1823,[72144e]|0.2129,0.2129,[72144e]|0.2002,0.2002,[72144e]|0.1914,0.1914,[72144e]|0.2094,0.2094,[72144e]|0.247,0.247,[72144e]|0.3117,0.3117,[72144e]|0.2292,0.2292,[72144e]|0.2328,0.2328,[72144e]|0.2193,0.2193,[72144e]|0.2064,0.2064,[72144e]|0.2609,0.2609,[72144e]|0.3087,0.3087,[72144e]|0.3087,0.3087,[72144e]|0.3286,0.3286,[72144e]|0.3983,0.3983,[72144e]|0.3948,0.3948,[72144e]|0.4541,0.4541,[72144e]|0.4369,0.4369,[72144e]|0.5533,0.5533,[72144e]|0.5758,0.5758,[72144e]|0.5992,0.5992,[72144e]|0.708,0.708,[72144e]|0.6375,0.6375,[72144e]|0.6227,0.6227,[72144e]|0.6136,0.6136,[72144e]|0.5577,0.5577,[72144e]|0.6661,0.6661,[72144e]|
+GRAPHLINE IUPredWS (Long) 0.5 Above 0.5 indicates disorder ff0000
+LINE_GRAPH IUPredWS (Short) <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html> 0.7605,0.7605,[329440]|0.7458,0.7458,[329440]|0.7079,0.7079,[329440]|0.6906,0.6906,[329440]|0.6557,0.6557,[329440]|0.6412,0.6412,[329440]|0.5374,0.5374,[329440]|0.5173,0.5173,[329440]|0.3806,0.3806,[329440]|0.3578,0.3578,[329440]|0.3311,0.3311,[329440]|0.3885,0.3885,[329440]|0.3456,0.3456,[329440]|0.3456,0.3456,[329440]|0.3225,0.3225,[329440]|0.3225,0.3225,[329440]|0.3806,0.3806,[329440]|0.4116,0.4116,[329440]|0.4379,0.4379,[329440]|0.4651,0.4651,[329440]|0.4458,0.4458,[329440]|0.3806,0.3806,[329440]|0.3806,0.3806,[329440]|0.2963,0.2963,[329440]|0.3184,0.3184,[329440]|0.2292,0.2292,[329440]|0.3225,0.3225,[329440]|0.2385,0.2385,[329440]|0.3359,0.3359,[329440]|0.1844,0.1844,[329440]|0.1566,0.1566,[329440]|0.115,0.115,[329440]|0.1495,0.1495,[329440]|0.2041,0.2041,[329440]|0.1532,0.1532,[329440]|0.2041,0.2041,[329440]|0.1878,0.1878,[329440]|0.1322,0.1322,[329440]|0.1349,0.1349,[329440]|0.1205,0.1205,[329440]|0.0965,0.0965,[329440]|0.0832,0.0832,[329440]|0.0607,0.0607,[329440]|0.0858,0.0858,[329440]|0.0701,0.0701,[329440]|0.1018,0.1018,[329440]|0.0554,0.0554,[329440]|0.0909,0.0909,[329440]|0.0909,0.0909,[329440]|0.1844,0.1844,[329440]|0.208,0.208,[329440]|0.2483,0.2483,[329440]|0.2531,0.2531,[329440]|0.1732,0.1732,[329440]|0.2167,0.2167,[329440]|0.2333,0.2333,[329440]|0.2483,0.2483,[329440]|0.3717,0.3717,[329440]|0.4078,0.4078,[329440]|0.3535,0.3535,[329440]|0.3456,0.3456,[329440]|0.4282,0.4282,[329440]|0.4879,0.4879,[329440]|0.4116,0.4116,[329440]|0.3668,0.3668,[329440]|0.3005,0.3005,[329440]|0.3578,0.3578,[329440]|0.282,0.282,[329440]|0.2558,0.2558,[329440]|0.2385,0.2385,[329440]|0.1667,0.1667,[329440]|0.2041,0.2041,[329440]|0.1998,0.1998,[329440]|0.282,0.282,[329440]|0.363,0.363,[329440]|0.282,0.282,[329440]|0.2602,0.2602,[329440]|0.1766,0.1766,[329440]|0.1998,0.1998,[329440]|0.2483,0.2483,[329440]|0.2657,0.2657,[329440]|0.2255,0.2255,[329440]|0.2531,0.2531,[329440]|0.3491,0.3491,[329440]|0.4116,0.4116,[329440]|0.4458,0.4458,[329440]|0.3992,0.3992,[329440]|0.5008,0.5008,[329440]|0.5623,0.5623,[329440]|0.6293,0.6293,[329440]|0.7275,0.7275,[329440]|0.7275,0.7275,[329440]|0.7724,0.7724,[329440]|0.8118,0.8118,[329440]|0.8391,0.8391,[329440]|0.9141,0.9141,[329440]|
+GRAPHLINE IUPredWS (Short) 0.5 Above 0.5 indicates disorder ff0000
+
+SEQUENCE_REF FER1_MAIZE
+LINE_GRAPH IUPredWS (Long) <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html> 0.422,0.422,[72144e]|0.2918,0.2918,[72144e]|0.1852,0.1852,[72144e]|0.1115,0.1115,[72144e]|0.1373,0.1373,[72144e]|0.1643,0.1643,[72144e]|0.1914,0.1914,[72144e]|0.2193,0.2193,[72144e]|0.1731,0.1731,[72144e]|0.2002,0.2002,[72144e]|0.1969,0.1969,[72144e]|0.1969,0.1969,[72144e]|0.2575,0.2575,[72144e]|0.2193,0.2193,[72144e]|0.3087,0.3087,[72144e]|0.384,0.384,[72144e]|0.3566,0.3566,[72144e]|0.3019,0.3019,[72144e]|0.2436,0.2436,[72144e]|0.1731,0.1731,[72144e]|0.2292,0.2292,[72144e]|0.1759,0.1759,[72144e]|0.1759,0.1759,[72144e]|0.2575,0.2575,[72144e]|0.2918,0.2918,[72144e]|0.384,0.384,[72144e]|0.3117,0.3117,[72144e]|0.2817,0.2817,[72144e]|0.2849,0.2849,[72144e]|0.2849,0.2849,[72144e]|0.3529,0.3529,[72144e]|0.3215,0.3215,[72144e]|0.3494,0.3494,[72144e]|0.374,0.374,[72144e]|0.3426,0.3426,[72144e]|0.374,0.374,[72144e]|0.3426,0.3426,[72144e]|0.268,0.268,[72144e]|0.2951,0.2951,[72144e]|0.3249,0.3249,[72144e]|0.3631,0.3631,[72144e]|0.4087,0.4087,[72144e]|0.384,0.384,[72144e]|0.3321,0.3321,[72144e]|0.3704,0.3704,[72144e]|0.3215,0.3215,[72144e]|0.3704,0.3704,[72144e]|0.3019,0.3019,[72144e]|0.3053,0.3053,[72144e]|0.3392,0.3392,[72144e]|0.3704,0.3704,[72144e]|0.3872,0.3872,[72144e]|0.391,0.391,[72144e]|0.4409,0.4409,[72144e]|0.3872,0.3872,[72144e]|0.4087,0.4087,[72144e]|0.3392,0.3392,[72144e]|0.3494,0.3494,[72144e]|0.2951,0.2951,[72144e]|0.3948,0.3948,[72144e]|0.4119,0.4119,[72144e]|0.4582,0.4582,[72144e]|0.391,0.391,[72144e]|0.3426,0.3426,[72144e]|0.2645,0.2645,[72144e]|0.2783,0.2783,[72144e]|0.2849,0.2849,[72144e]|0.3494,0.3494,[72144e]|0.3286,0.3286,[72144e]|0.4149,0.4149,[72144e]|0.5139,0.5139,[72144e]|0.5296,0.5296,[72144e]|0.494,0.494,[72144e]|0.3983,0.3983,[72144e]|0.4119,0.4119,[72144e]|0.3215,0.3215,[72144e]|0.4087,0.4087,[72144e]|0.3087,0.3087,[72144e]|0.3774,0.3774,[72144e]|0.2817,0.2817,[72144e]|0.3356,0.3356,[72144e]|0.2817,0.2817,[72144e]|0.2645,0.2645,[72144e]|0.247,0.247,[72144e]|0.2164,0.2164,[72144e]|0.2918,0.2918,[72144e]|0.3631,0.3631,[72144e]|0.346,0.346,[72144e]|0.3019,0.3019,[72144e]|0.2951,0.2951,[72144e]|0.3117,0.3117,[72144e]|0.2399,0.2399,[72144e]|0.1702,0.1702,[72144e]|0.1554,0.1554,[72144e]|0.1554,0.1554,[72144e]|0.2193,0.2193,[72144e]|0.1554,0.1554,[72144e]|0.2364,0.2364,[72144e]|0.2129,0.2129,[72144e]|0.2918,0.2918,[72144e]|0.3087,0.3087,[72144e]|0.4017,0.4017,[72144e]|0.4017,0.4017,[72144e]|0.3566,0.3566,[72144e]|0.2884,0.2884,[72144e]|0.3087,0.3087,[72144e]|0.4119,0.4119,[72144e]|0.4119,0.4119,[72144e]|0.422,0.422,[72144e]|0.4369,0.4369,[72144e]|0.4409,0.4409,[72144e]|0.4541,0.4541,[72144e]|0.4619,0.4619,[72144e]|0.4409,0.4409,[72144e]|0.4441,0.4441,[72144e]|0.374,0.374,[72144e]|0.3774,0.3774,[72144e]|0.2918,0.2918,[72144e]|0.3494,0.3494,[72144e]|0.3087,0.3087,[72144e]|0.2328,0.2328,[72144e]|0.268,0.268,[72144e]|0.2541,0.2541,[72144e]|0.247,0.247,[72144e]|0.2645,0.2645,[72144e]|0.2849,0.2849,[72144e]|0.3053,0.3053,[72144e]|0.2193,0.2193,[72144e]|0.2224,0.2224,[72144e]|0.2224,0.2224,[72144e]|0.2164,0.2164,[72144e]|0.2752,0.2752,[72144e]|0.3149,0.3149,[72144e]|0.3149,0.3149,[72144e]|0.3356,0.3356,[72144e]|0.346,0.346,[72144e]|0.4017,0.4017,[72144e]|0.4685,0.4685,[72144e]|0.4409,0.4409,[72144e]|0.5296,0.5296,[72144e]|0.5139,0.5139,[72144e]|0.5296,0.5296,[72144e]|0.6136,0.6136,[72144e]|0.5493,0.5493,[72144e]|0.5296,0.5296,[72144e]|0.5139,0.5139,[72144e]|0.4685,0.4685,[72144e]|0.5342,0.5342,[72144e]|0.6136,0.6136,[72144e]|0.7547,0.7547,[72144e]|
+GRAPHLINE IUPredWS (Long) 0.5 Above 0.5 indicates disorder ff0000
+LINE_GRAPH IUPredWS (Short) <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html> 0.865,0.865,[329440]|0.8488,0.8488,[329440]|0.7724,0.7724,[329440]|0.6557,0.6557,[329440]|0.5253,0.5253,[329440]|0.3847,0.3847,[329440]|0.3399,0.3399,[329440]|0.2913,0.2913,[329440]|0.2432,0.2432,[329440]|0.1958,0.1958,[329440]|0.106,0.106,[329440]|0.1456,0.1456,[329440]|0.1456,0.1456,[329440]|0.115,0.115,[329440]|0.1844,0.1844,[329440]|0.2122,0.2122,[329440]|0.2333,0.2333,[329440]|0.2531,0.2531,[329440]|0.1998,0.1998,[329440]|0.1322,0.1322,[329440]|0.1456,0.1456,[329440]|0.0858,0.0858,[329440]|0.1266,0.1266,[329440]|0.1667,0.1667,[329440]|0.2122,0.2122,[329440]|0.3225,0.3225,[329440]|0.2483,0.2483,[329440]|0.2483,0.2483,[329440]|0.1766,0.1766,[329440]|0.1602,0.1602,[329440]|0.2255,0.2255,[329440]|0.2209,0.2209,[329440]|0.2558,0.2558,[329440]|0.2657,0.2657,[329440]|0.2432,0.2432,[329440]|0.2865,0.2865,[329440]|0.27,0.27,[329440]|0.2748,0.2748,[329440]|0.3146,0.3146,[329440]|0.3184,0.3184,[329440]|0.3491,0.3491,[329440]|0.3847,0.3847,[329440]|0.3668,0.3668,[329440]|0.363,0.363,[329440]|0.4037,0.4037,[329440]|0.3184,0.3184,[329440]|0.4037,0.4037,[329440]|0.3359,0.3359,[329440]|0.4116,0.4116,[329440]|0.3717,0.3717,[329440]|0.3005,0.3005,[329440]|0.2865,0.2865,[329440]|0.3263,0.3263,[329440]|0.3668,0.3668,[329440]|0.3717,0.3717,[329440]|0.3806,0.3806,[329440]|0.3053,0.3053,[329440]|0.3146,0.3146,[329440]|0.2292,0.2292,[329440]|0.3096,0.3096,[329440]|0.2432,0.2432,[329440]|0.3146,0.3146,[329440]|0.3225,0.3225,[329440]|0.3806,0.3806,[329440]|0.3184,0.3184,[329440]|0.3311,0.3311,[329440]|0.2657,0.2657,[329440]|0.2657,0.2657,[329440]|0.2913,0.2913,[329440]|0.3578,0.3578,[329440]|0.3939,0.3939,[329440]|0.4116,0.4116,[329440]|0.3885,0.3885,[329440]|0.4037,0.4037,[329440]|0.3939,0.3939,[329440]|0.3184,0.3184,[329440]|0.4116,0.4116,[329440]|0.3263,0.3263,[329440]|0.4379,0.4379,[329440]|0.363,0.363,[329440]|0.4282,0.4282,[329440]|0.2865,0.2865,[329440]|0.2602,0.2602,[329440]|0.2041,0.2041,[329440]|0.2558,0.2558,[329440]|0.3225,0.3225,[329440]|0.2748,0.2748,[329440]|0.3399,0.3399,[329440]|0.3225,0.3225,[329440]|0.2122,0.2122,[329440]|0.2209,0.2209,[329440]|0.1998,0.1998,[329440]|0.1698,0.1698,[329440]|0.1178,0.1178,[329440]|0.0909,0.0909,[329440]|0.1292,0.1292,[329440]|0.106,0.106,[329440]|0.1532,0.1532,[329440]|0.0935,0.0935,[329440]|0.138,0.138,[329440]|0.138,0.138,[329440]|0.2292,0.2292,[329440]|0.2531,0.2531,[329440]|0.2865,0.2865,[329440]|0.2865,0.2865,[329440]|0.2122,0.2122,[329440]|0.2558,0.2558,[329440]|0.27,0.27,[329440]|0.2786,0.2786,[329440]|0.3847,0.3847,[329440]|0.4203,0.4203,[329440]|0.363,0.363,[329440]|0.3535,0.3535,[329440]|0.4149,0.4149,[329440]|0.4703,0.4703,[329440]|0.3939,0.3939,[329440]|0.3535,0.3535,[329440]|0.2865,0.2865,[329440]|0.3359,0.3359,[329440]|0.2602,0.2602,[329440]|0.2558,0.2558,[329440]|0.2333,0.2333,[329440]|0.1635,0.1635,[329440]|0.1958,0.1958,[329440]|0.1878,0.1878,[329440]|0.2657,0.2657,[329440]|0.3456,0.3456,[329440]|0.2748,0.2748,[329440]|0.2167,0.2167,[329440]|0.1602,0.1602,[329440]|0.1766,0.1766,[329440]|0.2255,0.2255,[329440]|0.2333,0.2333,[329440]|0.1998,0.1998,[329440]|0.2209,0.2209,[329440]|0.3184,0.3184,[329440]|0.3847,0.3847,[329440]|0.3847,0.3847,[329440]|0.3847,0.3847,[329440]|0.4513,0.4513,[329440]|0.4282,0.4282,[329440]|0.4967,0.4967,[329440]|0.6079,0.6079,[329440]|0.6124,0.6124,[329440]|0.6604,0.6604,[329440]|0.6944,0.6944,[329440]|0.7232,0.7232,[329440]|0.8118,0.8118,[329440]|0.8857,0.8857,[329440]|0.9491,0.9491,[329440]|
+GRAPHLINE IUPredWS (Short) 0.5 Above 0.5 indicates disorder ff0000
+
+SEQUENCE_REF O80429_MAIZE
+LINE_GRAPH IUPredWS (Long) <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html> 0.1007,0.1007,[72144e]|0.1028,0.1028,[72144e]|0.1731,0.1731,[72144e]|0.2503,0.2503,[72144e]|0.3249,0.3249,[72144e]|0.2292,0.2292,[72144e]|0.1476,0.1476,[72144e]|0.1731,0.1731,[72144e]|0.1942,0.1942,[72144e]|0.2503,0.2503,[72144e]|0.1969,0.1969,[72144e]|0.2258,0.2258,[72144e]|0.1823,0.1823,[72144e]|0.2094,0.2094,[72144e]|0.1501,0.1501,[72144e]|0.1501,0.1501,[72144e]|0.1611,0.1611,[72144e]|0.1399,0.1399,[72144e]|0.1554,0.1554,[72144e]|0.1823,0.1823,[72144e]|0.1881,0.1881,[72144e]|0.2258,0.2258,[72144e]|0.1969,0.1969,[72144e]|0.2541,0.2541,[72144e]|0.1942,0.1942,[72144e]|0.1671,0.1671,[72144e]|0.1399,0.1399,[72144e]|0.2292,0.2292,[72144e]|0.2575,0.2575,[72144e]|0.1881,0.1881,[72144e]|0.1881,0.1881,[72144e]|0.1399,0.1399,[72144e]|0.2129,0.2129,[72144e]|0.1852,0.1852,[72144e]|0.2645,0.2645,[72144e]|0.1852,0.1852,[72144e]|0.2503,0.2503,[72144e]|0.2193,0.2193,[72144e]|0.2752,0.2752,[72144e]|0.2292,0.2292,[72144e]|0.1611,0.1611,[72144e]|0.1424,0.1424,[72144e]|0.2364,0.2364,[72144e]|0.2884,0.2884,[72144e]|0.3182,0.3182,[72144e]|0.3087,0.3087,[72144e]|0.2783,0.2783,[72144e]|0.2988,0.2988,[72144e]|0.2224,0.2224,[72144e]|0.2224,0.2224,[72144e]|0.2364,0.2364,[72144e]|0.3392,0.3392,[72144e]|0.3566,0.3566,[72144e]|0.4051,0.4051,[72144e]|0.3356,0.3356,[72144e]|0.2817,0.2817,[72144e]|0.1969,0.1969,[72144e]|0.2094,0.2094,[72144e]|0.2164,0.2164,[72144e]|0.1791,0.1791,[72144e]|0.1583,0.1583,[72144e]|0.2436,0.2436,[72144e]|0.3426,0.3426,[72144e]|0.3566,0.3566,[72144e]|0.3286,0.3286,[72144e]|0.2258,0.2258,[72144e]|0.2436,0.2436,[72144e]|0.1554,0.1554,[72144e]|0.2364,0.2364,[72144e]|0.1298,0.1298,[72144e]|0.1914,0.1914,[72144e]|0.1115,0.1115,[72144e]|0.1528,0.1528,[72144e]|0.1115,0.1115,[72144e]|0.1007,0.1007,[72144e]|0.0909,0.0909,[72144e]|0.0734,0.0734,[72144e]|0.1206,0.1206,[72144e]|0.1823,0.1823,[72144e]|0.1643,0.1643,[72144e]|0.1298,0.1298,[72144e]|0.2164,0.2164,[72144e]|0.2399,0.2399,[72144e]|0.1671,0.1671,[72144e]|0.1092,0.1092,[72144e]|0.0948,0.0948,[72144e]|0.0948,0.0948,[72144e]|0.1501,0.1501,[72144e]|0.0967,0.0967,[72144e]|0.1611,0.1611,[72144e]|0.1424,0.1424,[72144e]|0.2328,0.2328,[72144e]|0.2503,0.2503,[72144e]|0.3529,0.3529,[72144e]|0.3494,0.3494,[72144e]|0.2817,0.2817,[72144e]|0.2064,0.2064,[72144e]|0.2193,0.2193,[72144e]|0.3286,0.3286,[72144e]|0.3392,0.3392,[72144e]|0.3494,0.3494,[72144e]|0.384,0.384,[72144e]|0.3872,0.3872,[72144e]|0.4017,0.4017,[72144e]|0.4087,0.4087,[72144e]|0.3807,0.3807,[72144e]|0.384,0.384,[72144e]|0.3117,0.3117,[72144e]|0.3182,0.3182,[72144e]|0.2328,0.2328,[72144e]|0.268,0.268,[72144e]|0.2258,0.2258,[72144e]|0.1501,0.1501,[72144e]|0.1791,0.1791,[72144e]|0.1702,0.1702,[72144e]|0.1611,0.1611,[72144e]|0.1791,0.1791,[72144e]|0.2164,0.2164,[72144e]|0.2328,0.2328,[72144e]|0.1554,0.1554,[72144e]|0.1583,0.1583,[72144e]|0.1528,0.1528,[72144e]|0.1424,0.1424,[72144e]|0.1823,0.1823,[72144e]|0.2224,0.2224,[72144e]|0.2224,0.2224,[72144e]|0.2436,0.2436,[72144e]|0.2541,0.2541,[72144e]|0.2399,0.2399,[72144e]|0.3087,0.3087,[72144e]|0.2817,0.2817,[72144e]|0.3566,0.3566,[72144e]|0.3667,0.3667,[72144e]|0.3774,0.3774,[72144e]|0.4541,0.4541,[72144e]|0.391,0.391,[72144e]|0.3599,0.3599,[72144e]|0.3356,0.3356,[72144e]|0.2783,0.2783,[72144e]|0.3426,0.3426,[72144e]|
+GRAPHLINE IUPredWS (Long) 0.5 Above 0.5 indicates disorder ff0000
+LINE_GRAPH IUPredWS (Short) <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html> 0.7573,0.7573,[329440]|0.6516,0.6516,[329440]|0.6293,0.6293,[329440]|0.5412,0.5412,[329440]|0.5229,0.5229,[329440]|0.5008,0.5008,[329440]|0.4825,0.4825,[329440]|0.3806,0.3806,[329440]|0.2292,0.2292,[329440]|0.1921,0.1921,[329440]|0.1602,0.1602,[329440]|0.208,0.208,[329440]|0.1667,0.1667,[329440]|0.2167,0.2167,[329440]|0.1416,0.1416,[329440]|0.1878,0.1878,[329440]|0.1921,0.1921,[329440]|0.1635,0.1635,[329440]|0.1322,0.1322,[329440]|0.1088,0.1088,[329440]|0.1805,0.1805,[329440]|0.2748,0.2748,[329440]|0.1805,0.1805,[329440]|0.1921,0.1921,[329440]|0.1495,0.1495,[329440]|0.1495,0.1495,[329440]|0.1088,0.1088,[329440]|0.1532,0.1532,[329440]|0.2531,0.2531,[329440]|0.2531,0.2531,[329440]|0.1805,0.1805,[329440]|0.106,0.106,[329440]|0.1667,0.1667,[329440]|0.1292,0.1292,[329440]|0.1998,0.1998,[329440]|0.1566,0.1566,[329440]|0.2292,0.2292,[329440]|0.1844,0.1844,[329440]|0.27,0.27,[329440]|0.2255,0.2255,[329440]|0.2041,0.2041,[329440]|0.124,0.124,[329440]|0.1205,0.1205,[329440]|0.1416,0.1416,[329440]|0.1998,0.1998,[329440]|0.1958,0.1958,[329440]|0.2292,0.2292,[329440]|0.2483,0.2483,[329440]|0.1732,0.1732,[329440]|0.1805,0.1805,[329440]|0.1667,0.1667,[329440]|0.2432,0.2432,[329440]|0.1732,0.1732,[329440]|0.2385,0.2385,[329440]|0.2531,0.2531,[329440]|0.3096,0.3096,[329440]|0.2385,0.2385,[329440]|0.2531,0.2531,[329440]|0.1844,0.1844,[329440]|0.1921,0.1921,[329440]|0.2167,0.2167,[329440]|0.208,0.208,[329440]|0.2558,0.2558,[329440]|0.27,0.27,[329440]|0.2558,0.2558,[329440]|0.2558,0.2558,[329440]|0.2531,0.2531,[329440]|0.1732,0.1732,[329440]|0.27,0.27,[329440]|0.1844,0.1844,[329440]|0.3005,0.3005,[329440]|0.208,0.208,[329440]|0.282,0.282,[329440]|0.1456,0.1456,[329440]|0.124,0.124,[329440]|0.0884,0.0884,[329440]|0.1292,0.1292,[329440]|0.1805,0.1805,[329440]|0.1416,0.1416,[329440]|0.1998,0.1998,[329440]|0.1844,0.1844,[329440]|0.1635,0.1635,[329440]|0.1667,0.1667,[329440]|0.1532,0.1532,[329440]|0.124,0.124,[329440]|0.0789,0.0789,[329440]|0.0554,0.0554,[329440]|0.0858,0.0858,[329440]|0.0701,0.0701,[329440]|0.106,0.106,[329440]|0.0587,0.0587,[329440]|0.1088,0.1088,[329440]|0.1088,0.1088,[329440]|0.1878,0.1878,[329440]|0.2122,0.2122,[329440]|0.2483,0.2483,[329440]|0.2432,0.2432,[329440]|0.1667,0.1667,[329440]|0.208,0.208,[329440]|0.2041,0.2041,[329440]|0.2209,0.2209,[329440]|0.3311,0.3311,[329440]|0.3668,0.3668,[329440]|0.3184,0.3184,[329440]|0.3096,0.3096,[329440]|0.3762,0.3762,[329440]|0.4282,0.4282,[329440]|0.3578,0.3578,[329440]|0.3096,0.3096,[329440]|0.2385,0.2385,[329440]|0.2865,0.2865,[329440]|0.2167,0.2167,[329440]|0.1878,0.1878,[329440]|0.1732,0.1732,[329440]|0.115,0.115,[329440]|0.1416,0.1416,[329440]|0.1349,0.1349,[329440]|0.208,0.208,[329440]|0.2865,0.2865,[329440]|0.2255,0.2255,[329440]|0.1667,0.1667,[329440]|0.106,0.106,[329440]|0.1205,0.1205,[329440]|0.1456,0.1456,[329440]|0.1495,0.1495,[329440]|0.1266,0.1266,[329440]|0.1416,0.1416,[329440]|0.208,0.208,[329440]|0.27,0.27,[329440]|0.27,0.27,[329440]|0.208,0.208,[329440]|0.3146,0.3146,[329440]|0.3806,0.3806,[329440]|0.4513,0.4513,[329440]|0.5623,0.5623,[329440]|0.5623,0.5623,[329440]|0.6219,0.6219,[329440]|0.6604,0.6604,[329440]|0.6906,0.6906,[329440]|0.7817,0.7817,[329440]|
+GRAPHLINE IUPredWS (Short) 0.5 Above 0.5 indicates disorder ff0000
+
+SEQUENCE_REF Q7XA98_TRIPR
+LINE_GRAPH IUPredWS (Long) <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html> 0.2292,0.2292,[72144e]|0.2645,0.2645,[72144e]|0.3019,0.3019,[72144e]|0.3286,0.3286,[72144e]|0.2328,0.2328,[72144e]|0.2258,0.2258,[72144e]|0.2645,0.2645,[72144e]|0.2988,0.2988,[72144e]|0.3286,0.3286,[72144e]|0.3774,0.3774,[72144e]|0.346,0.346,[72144e]|0.4051,0.4051,[72144e]|0.4051,0.4051,[72144e]|0.4017,0.4017,[72144e]|0.3494,0.3494,[72144e]|0.2988,0.2988,[72144e]|0.3286,0.3286,[72144e]|0.3948,0.3948,[72144e]|0.4864,0.4864,[72144e]|0.494,0.494,[72144e]|0.494,0.494,[72144e]|0.5139,0.5139,[72144e]|0.5419,0.5419,[72144e]|0.4441,0.4441,[72144e]|0.4685,0.4685,[72144e]|0.4685,0.4685,[72144e]|0.5707,0.5707,[72144e]|0.4901,0.4901,[72144e]|0.4831,0.4831,[72144e]|0.4087,0.4087,[72144e]|0.3872,0.3872,[72144e]|0.3566,0.3566,[72144e]|0.3566,0.3566,[72144e]|0.3215,0.3215,[72144e]|0.3566,0.3566,[72144e]|0.346,0.346,[72144e]|0.3983,0.3983,[72144e]|0.4256,0.4256,[72144e]|0.4369,0.4369,[72144e]|0.3667,0.3667,[72144e]|0.3392,0.3392,[72144e]|0.2884,0.2884,[72144e]|0.2609,0.2609,[72144e]|0.2436,0.2436,[72144e]|0.2436,0.2436,[72144e]|0.3392,0.3392,[72144e]|0.2328,0.2328,[72144e]|0.2258,0.2258,[72144e]|0.1791,0.1791,[72144e]|0.2575,0.2575,[72144e]|0.1969,0.1969,[72144e]|0.1969,0.1969,[72144e]|0.2094,0.2094,[72144e]|0.2399,0.2399,[72144e]|0.3149,0.3149,[72144e]|0.3182,0.3182,[72144e]|0.3426,0.3426,[72144e]|0.3599,0.3599,[72144e]|0.3807,0.3807,[72144e]|0.2884,0.2884,[72144e]|0.2884,0.2884,[72144e]|0.2609,0.2609,[72144e]|0.3149,0.3149,[72144e]|0.3774,0.3774,[72144e]|0.4119,0.4119,[72144e]|0.391,0.391,[72144e]|0.3356,0.3356,[72144e]|0.268,0.268,[72144e]|0.2849,0.2849,[72144e]|0.3117,0.3117,[72144e]|0.3599,0.3599,[72144e]|0.346,0.346,[72144e]|0.4292,0.4292,[72144e]|0.5254,0.5254,[72144e]|0.4652,0.4652,[72144e]|0.4369,0.4369,[72144e]|0.346,0.346,[72144e]|0.3704,0.3704,[72144e]|0.2783,0.2783,[72144e]|0.2988,0.2988,[72144e]|0.1969,0.1969,[72144e]|0.2849,0.2849,[72144e]|0.1852,0.1852,[72144e]|0.2752,0.2752,[72144e]|0.2193,0.2193,[72144e]|0.2064,0.2064,[72144e]|0.1942,0.1942,[72144e]|0.1583,0.1583,[72144e]|0.2258,0.2258,[72144e]|0.2918,0.2918,[72144e]|0.2609,0.2609,[72144e]|0.2224,0.2224,[72144e]|0.2258,0.2258,[72144e]|0.2399,0.2399,[72144e]|0.1731,0.1731,[72144e]|0.1184,0.1184,[72144e]|0.1611,0.1611,[72144e]|0.1611,0.1611,[72144e]|0.2292,0.2292,[72144e]|0.1643,0.1643,[72144e]|0.2292,0.2292,[72144e]|0.2064,0.2064,[72144e]|0.3053,0.3053,[72144e]|0.3215,0.3215,[72144e]|0.4149,0.4149,[72144e]|0.4119,0.4119,[72144e]|0.3494,0.3494,[72144e]|0.2884,0.2884,[72144e]|0.3053,0.3053,[72144e]|0.4087,0.4087,[72144e]|0.433,0.433,[72144e]|0.4409,0.4409,[72144e]|0.4685,0.4685,[72144e]|0.5176,0.5176,[72144e]|0.5139,0.5139,[72144e]|0.5296,0.5296,[72144e]|0.5098,0.5098,[72144e]|0.5098,0.5098,[72144e]|0.433,0.433,[72144e]|0.4369,0.4369,[72144e]|0.3249,0.3249,[72144e]|0.3249,0.3249,[72144e]|0.2951,0.2951,[72144e]|0.1969,0.1969,[72144e]|0.2064,0.2064,[72144e]|0.2002,0.2002,[72144e]|0.1942,0.1942,[72144e]|0.2094,0.2094,[72144e]|0.2436,0.2436,[72144e]|0.3087,0.3087,[72144e]|0.2258,0.2258,[72144e]|0.2328,0.2328,[72144e]|0.2164,0.2164,[72144e]|0.2034,0.2034,[72144e]|0.2541,0.2541,[72144e]|0.2575,0.2575,[72144e]|0.2783,0.2783,[72144e]|0.3019,0.3019,[72144e]|0.3019,0.3019,[72144e]|0.3529,0.3529,[72144e]|0.3948,0.3948,[72144e]|0.384,0.384,[72144e]|0.4766,0.4766,[72144e]|0.5254,0.5254,[72144e]|0.5419,0.5419,[72144e]|0.6755,0.6755,[72144e]|0.6136,0.6136,[72144e]|0.5901,0.5901,[72144e]|0.5807,0.5807,[72144e]|0.5382,0.5382,[72144e]|0.6322,0.6322,[72144e]|0.6089,0.6089,[72144e]|
+GRAPHLINE IUPredWS (Long) 0.5 Above 0.5 indicates disorder ff0000
+LINE_GRAPH IUPredWS (Short) <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html> 0.892,0.892,[329440]|0.835,0.835,[329440]|0.7388,0.7388,[329440]|0.6944,0.6944,[329440]|0.6557,0.6557,[329440]|0.6124,0.6124,[329440]|0.4967,0.4967,[329440]|0.4149,0.4149,[329440]|0.3939,0.3939,[329440]|0.3717,0.3717,[329440]|0.3359,0.3359,[329440]|0.3939,0.3939,[329440]|0.363,0.363,[329440]|0.3847,0.3847,[329440]|0.3535,0.3535,[329440]|0.3311,0.3311,[329440]|0.3053,0.3053,[329440]|0.3225,0.3225,[329440]|0.3992,0.3992,[329440]|0.3939,0.3939,[329440]|0.3939,0.3939,[329440]|0.4203,0.4203,[329440]|0.4781,0.4781,[329440]|0.4825,0.4825,[329440]|0.4513,0.4513,[329440]|0.363,0.363,[329440]|0.4651,0.4651,[329440]|0.4967,0.4967,[329440]|0.4749,0.4749,[329440]|0.3535,0.3535,[329440]|0.3456,0.3456,[329440]|0.2558,0.2558,[329440]|0.3225,0.3225,[329440]|0.2963,0.2963,[329440]|0.2602,0.2602,[329440]|0.2657,0.2657,[329440]|0.3184,0.3184,[329440]|0.3359,0.3359,[329440]|0.3491,0.3491,[329440]|0.3491,0.3491,[329440]|0.3578,0.3578,[329440]|0.3096,0.3096,[329440]|0.2865,0.2865,[329440]|0.2292,0.2292,[329440]|0.2292,0.2292,[329440]|0.2865,0.2865,[329440]|0.2292,0.2292,[329440]|0.2255,0.2255,[329440]|0.1566,0.1566,[329440]|0.2333,0.2333,[329440]|0.1766,0.1766,[329440]|0.2209,0.2209,[329440]|0.1602,0.1602,[329440]|0.1088,0.1088,[329440]|0.1495,0.1495,[329440]|0.1766,0.1766,[329440]|0.1921,0.1921,[329440]|0.1998,0.1998,[329440]|0.2122,0.2122,[329440]|0.2255,0.2255,[329440]|0.2385,0.2385,[329440]|0.2041,0.2041,[329440]|0.2483,0.2483,[329440]|0.2122,0.2122,[329440]|0.27,0.27,[329440]|0.3225,0.3225,[329440]|0.3762,0.3762,[329440]|0.3225,0.3225,[329440]|0.3311,0.3311,[329440]|0.2865,0.2865,[329440]|0.282,0.282,[329440]|0.3184,0.3184,[329440]|0.3668,0.3668,[329440]|0.4037,0.4037,[329440]|0.4245,0.4245,[329440]|0.4116,0.4116,[329440]|0.3359,0.3359,[329440]|0.3311,0.3311,[329440]|0.2483,0.2483,[329440]|0.2558,0.2558,[329440]|0.1766,0.1766,[329440]|0.2913,0.2913,[329440]|0.2041,0.2041,[329440]|0.3005,0.3005,[329440]|0.1416,0.1416,[329440]|0.1205,0.1205,[329440]|0.0884,0.0884,[329440]|0.1205,0.1205,[329440]|0.1766,0.1766,[329440]|0.1266,0.1266,[329440]|0.1766,0.1766,[329440]|0.1667,0.1667,[329440]|0.0991,0.0991,[329440]|0.1041,0.1041,[329440]|0.0935,0.0935,[329440]|0.0723,0.0723,[329440]|0.0771,0.0771,[329440]|0.0554,0.0554,[329440]|0.0771,0.0771,[329440]|0.066,0.066,[329440]|0.0935,0.0935,[329440]|0.0526,0.0526,[329440]|0.0771,0.0771,[329440]|0.0744,0.0744,[329440]|0.1805,0.1805,[329440]|0.2041,0.2041,[329440]|0.2333,0.2333,[329440]|0.2385,0.2385,[329440]|0.1667,0.1667,[329440]|0.2167,0.2167,[329440]|0.2255,0.2255,[329440]|0.2333,0.2333,[329440]|0.3717,0.3717,[329440]|0.4037,0.4037,[329440]|0.3399,0.3399,[329440]|0.3806,0.3806,[329440]|0.4333,0.4333,[329440]|0.4918,0.4918,[329440]|0.442,0.442,[329440]|0.3992,0.3992,[329440]|0.3399,0.3399,[329440]|0.4037,0.4037,[329440]|0.3456,0.3456,[329440]|0.2963,0.2963,[329440]|0.2602,0.2602,[329440]|0.1805,0.1805,[329440]|0.2209,0.2209,[329440]|0.2167,0.2167,[329440]|0.2963,0.2963,[329440]|0.3717,0.3717,[329440]|0.2913,0.2913,[329440]|0.2786,0.2786,[329440]|0.1921,0.1921,[329440]|0.2122,0.2122,[329440]|0.27,0.27,[329440]|0.2292,0.2292,[329440]|0.1998,0.1998,[329440]|0.2209,0.2209,[329440]|0.2963,0.2963,[329440]|0.3717,0.3717,[329440]|0.363,0.363,[329440]|0.3578,0.3578,[329440]|0.3992,0.3992,[329440]|0.4967,0.4967,[329440]|0.5549,0.5549,[329440]|0.665,0.665,[329440]|0.6681,0.6681,[329440]|0.7111,0.7111,[329440]|0.7501,0.7501,[329440]|0.7772,0.7772,[329440]|0.8677,0.8677,[329440]|0.904,0.904,[329440]|
+GRAPHLINE IUPredWS (Short) 0.5 Above 0.5 indicates disorder ff0000
+
+SEQUENCE_REF FER1_PEA
+LINE_GRAPH IUPredWS (Long) <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html> 0.1914,0.1914,[72144e]|0.2258,0.2258,[72144e]|0.268,0.268,[72144e]|0.2951,0.2951,[72144e]|0.1914,0.1914,[72144e]|0.1476,0.1476,[72144e]|0.1823,0.1823,[72144e]|0.2094,0.2094,[72144e]|0.247,0.247,[72144e]|0.3019,0.3019,[72144e]|0.2918,0.2918,[72144e]|0.3566,0.3566,[72144e]|0.3566,0.3566,[72144e]|0.3529,0.3529,[72144e]|0.2988,0.2988,[72144e]|0.2752,0.2752,[72144e]|0.3087,0.3087,[72144e]|0.3774,0.3774,[72144e]|0.4541,0.4541,[72144e]|0.4256,0.4256,[72144e]|0.3215,0.3215,[72144e]|0.346,0.346,[72144e]|0.4087,0.4087,[72144e]|0.4087,0.4087,[72144e]|0.3087,0.3087,[72144e]|0.2436,0.2436,[72144e]|0.3392,0.3392,[72144e]|0.3321,0.3321,[72144e]|0.3182,0.3182,[72144e]|0.3182,0.3182,[72144e]|0.3053,0.3053,[72144e]|0.2064,0.2064,[72144e]|0.2258,0.2258,[72144e]|0.1969,0.1969,[72144e]|0.2258,0.2258,[72144e]|0.2399,0.2399,[72144e]|0.2292,0.2292,[72144e]|0.2002,0.2002,[72144e]|0.1501,0.1501,[72144e]|0.1275,0.1275,[72144e]|0.1162,0.1162,[72144e]|0.1162,0.1162,[72144e]|0.1942,0.1942,[72144e]|0.1298,0.1298,[72144e]|0.1162,0.1162,[72144e]|0.0851,0.0851,[72144e]|0.1424,0.1424,[72144e]|0.1424,0.1424,[72144e]|0.1048,0.1048,[72144e]|0.1554,0.1554,[72144e]|0.1914,0.1914,[72144e]|0.2002,0.2002,[72144e]|0.2034,0.2034,[72144e]|0.2752,0.2752,[72144e]|0.2918,0.2918,[72144e]|0.3117,0.3117,[72144e]|0.2164,0.2164,[72144e]|0.2258,0.2258,[72144e]|0.2002,0.2002,[72144e]|0.2575,0.2575,[72144e]|0.3087,0.3087,[72144e]|0.3494,0.3494,[72144e]|0.3249,0.3249,[72144e]|0.2752,0.2752,[72144e]|0.2064,0.2064,[72144e]|0.2193,0.2193,[72144e]|0.247,0.247,[72144e]|0.2988,0.2988,[72144e]|0.2817,0.2817,[72144e]|0.3704,0.3704,[72144e]|0.4476,0.4476,[72144e]|0.391,0.391,[72144e]|0.3599,0.3599,[72144e]|0.2752,0.2752,[72144e]|0.2884,0.2884,[72144e]|0.2164,0.2164,[72144e]|0.2399,0.2399,[72144e]|0.1476,0.1476,[72144e]|0.2328,0.2328,[72144e]|0.1323,0.1323,[72144e]|0.2129,0.2129,[72144e]|0.1583,0.1583,[72144e]|0.1611,0.1611,[72144e]|0.1476,0.1476,[72144e]|0.1206,0.1206,[72144e]|0.1791,0.1791,[72144e]|0.2436,0.2436,[72144e]|0.2164,0.2164,[72144e]|0.1791,0.1791,[72144e]|0.1823,0.1823,[72144e]|0.1969,0.1969,[72144e]|0.1349,0.1349,[72144e]|0.0851,0.0851,[72144e]|0.1184,0.1184,[72144e]|0.1162,0.1162,[72144e]|0.1914,0.1914,[72144e]|0.1373,0.1373,[72144e]|0.2034,0.2034,[72144e]|0.1823,0.1823,[72144e]|0.2575,0.2575,[72144e]|0.2715,0.2715,[72144e]|0.3631,0.3631,[72144e]|0.3599,0.3599,[72144e]|0.2918,0.2918,[72144e]|0.2258,0.2258,[72144e]|0.2436,0.2436,[72144e]|0.3494,0.3494,[72144e]|0.374,0.374,[72144e]|0.384,0.384,[72144e]|0.4051,0.4051,[72144e]|0.4541,0.4541,[72144e]|0.4256,0.4256,[72144e]|0.4369,0.4369,[72144e]|0.391,0.391,[72144e]|0.3948,0.3948,[72144e]|0.3249,0.3249,[72144e]|0.3286,0.3286,[72144e]|0.2064,0.2064,[72144e]|0.2034,0.2034,[72144e]|0.1702,0.1702,[72144e]|0.1092,0.1092,[72144e]|0.1323,0.1323,[72144e]|0.1251,0.1251,[72144e]|0.1251,0.1251,[72144e]|0.1373,0.1373,[72144e]|0.1702,0.1702,[72144e]|0.1852,0.1852,[72144e]|0.1184,0.1184,[72144e]|0.1251,0.1251,[72144e]|0.1115,0.1115,[72144e]|0.1028,0.1028,[72144e]|0.1424,0.1424,[72144e]|0.1449,0.1449,[72144e]|0.1881,0.1881,[72144e]|0.2064,0.2064,[72144e]|0.2328,0.2328,[72144e]|0.2849,0.2849,[72144e]|0.3249,0.3249,[72144e]|0.3182,0.3182,[72144e]|0.4051,0.4051,[72144e]|0.4541,0.4541,[72144e]|0.4725,0.4725,[72144e]|0.5577,0.5577,[72144e]|0.494,0.494,[72144e]|0.4766,0.4766,[72144e]|0.4619,0.4619,[72144e]|0.4149,0.4149,[72144e]|0.4831,0.4831,[72144e]|0.5665,0.5665,[72144e]|
+GRAPHLINE IUPredWS (Long) 0.5 Above 0.5 indicates disorder ff0000
+LINE_GRAPH IUPredWS (Short) <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html> 0.8781,0.8781,[329440]|0.82,0.82,[329440]|0.7192,0.7192,[329440]|0.6756,0.6756,[329440]|0.6374,0.6374,[329440]|0.59,0.59,[329440]|0.4651,0.4651,[329440]|0.3578,0.3578,[329440]|0.3359,0.3359,[329440]|0.2913,0.2913,[329440]|0.2531,0.2531,[329440]|0.3184,0.3184,[329440]|0.3184,0.3184,[329440]|0.3491,0.3491,[329440]|0.3184,0.3184,[329440]|0.2913,0.2913,[329440]|0.2531,0.2531,[329440]|0.2963,0.2963,[329440]|0.3806,0.3806,[329440]|0.3762,0.3762,[329440]|0.3806,0.3806,[329440]|0.3717,0.3717,[329440]|0.3399,0.3399,[329440]|0.3456,0.3456,[329440]|0.3535,0.3535,[329440]|0.3535,0.3535,[329440]|0.3359,0.3359,[329440]|0.3263,0.3263,[329440]|0.3053,0.3053,[329440]|0.2333,0.2333,[329440]|0.2255,0.2255,[329440]|0.1958,0.1958,[329440]|0.2292,0.2292,[329440]|0.1456,0.1456,[329440]|0.1698,0.1698,[329440]|0.1805,0.1805,[329440]|0.2385,0.2385,[329440]|0.2483,0.2483,[329440]|0.1878,0.1878,[329440]|0.1635,0.1635,[329440]|0.1178,0.1178,[329440]|0.1205,0.1205,[329440]|0.1667,0.1667,[329440]|0.138,0.138,[329440]|0.1322,0.1322,[329440]|0.0813,0.0813,[329440]|0.1416,0.1416,[329440]|0.1456,0.1456,[329440]|0.1349,0.1349,[329440]|0.1322,0.1322,[329440]|0.0909,0.0909,[329440]|0.0884,0.0884,[329440]|0.1088,0.1088,[329440]|0.1602,0.1602,[329440]|0.1635,0.1635,[329440]|0.1495,0.1495,[329440]|0.1635,0.1635,[329440]|0.1698,0.1698,[329440]|0.1456,0.1456,[329440]|0.1844,0.1844,[329440]|0.1602,0.1602,[329440]|0.2167,0.2167,[329440]|0.2483,0.2483,[329440]|0.3053,0.3053,[329440]|0.2483,0.2483,[329440]|0.2602,0.2602,[329440]|0.2122,0.2122,[329440]|0.2167,0.2167,[329440]|0.2432,0.2432,[329440]|0.3053,0.3053,[329440]|0.3263,0.3263,[329440]|0.3491,0.3491,[329440]|0.3359,0.3359,[329440]|0.2748,0.2748,[329440]|0.27,0.27,[329440]|0.2209,0.2209,[329440]|0.2292,0.2292,[329440]|0.1602,0.1602,[329440]|0.2748,0.2748,[329440]|0.1921,0.1921,[329440]|0.282,0.282,[329440]|0.1322,0.1322,[329440]|0.124,0.124,[329440]|0.0909,0.0909,[329440]|0.124,0.124,[329440]|0.1805,0.1805,[329440]|0.1322,0.1322,[329440]|0.1844,0.1844,[329440]|0.1732,0.1732,[329440]|0.1041,0.1041,[329440]|0.1088,0.1088,[329440]|0.0991,0.0991,[329440]|0.0771,0.0771,[329440]|0.0771,0.0771,[329440]|0.0554,0.0554,[329440]|0.0771,0.0771,[329440]|0.0643,0.0643,[329440]|0.1088,0.1088,[329440]|0.0607,0.0607,[329440]|0.1041,0.1041,[329440]|0.1041,0.1041,[329440]|0.208,0.208,[329440]|0.2385,0.2385,[329440]|0.2657,0.2657,[329440]|0.2748,0.2748,[329440]|0.1878,0.1878,[329440]|0.2292,0.2292,[329440]|0.2483,0.2483,[329440]|0.2602,0.2602,[329440]|0.3992,0.3992,[329440]|0.4282,0.4282,[329440]|0.363,0.363,[329440]|0.4116,0.4116,[329440]|0.4333,0.4333,[329440]|0.4967,0.4967,[329440]|0.4203,0.4203,[329440]|0.3762,0.3762,[329440]|0.282,0.282,[329440]|0.3399,0.3399,[329440]|0.2558,0.2558,[329440]|0.1998,0.1998,[329440]|0.1844,0.1844,[329440]|0.1178,0.1178,[329440]|0.1566,0.1566,[329440]|0.1495,0.1495,[329440]|0.2209,0.2209,[329440]|0.3053,0.3053,[329440]|0.2209,0.2209,[329440]|0.1566,0.1566,[329440]|0.0884,0.0884,[329440]|0.1041,0.1041,[329440]|0.1416,0.1416,[329440]|0.1178,0.1178,[329440]|0.1205,0.1205,[329440]|0.1349,0.1349,[329440]|0.2209,0.2209,[329440]|0.282,0.282,[329440]|0.2748,0.2748,[329440]|0.27,0.27,[329440]|0.3005,0.3005,[329440]|0.3992,0.3992,[329440]|0.4703,0.4703,[329440]|0.5762,0.5762,[329440]|0.5762,0.5762,[329440]|0.6293,0.6293,[329440]|0.6715,0.6715,[329440]|0.6944,0.6944,[329440]|0.7951,0.7951,[329440]|0.8781,0.8781,[329440]|
+GRAPHLINE IUPredWS (Short) 0.5 Above 0.5 indicates disorder ff0000
+
+SEQUENCE_REF FER1_SPIOL
+LINE_GRAPH IUPredWS (Long) <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html> 0.3704,0.3704,[72144e]|0.4017,0.4017,[72144e]|0.4292,0.4292,[72144e]|0.3215,0.3215,[72144e]|0.2884,0.2884,[72144e]|0.3566,0.3566,[72144e]|0.3704,0.3704,[72144e]|0.4292,0.4292,[72144e]|0.4619,0.4619,[72144e]|0.4476,0.4476,[72144e]|0.4979,0.4979,[72144e]|0.5807,0.5807,[72144e]|0.5758,0.5758,[72144e]|0.5758,0.5758,[72144e]|0.5382,0.5382,[72144e]|0.5055,0.5055,[72144e]|0.4409,0.4409,[72144e]|0.4685,0.4685,[72144e]|0.5055,0.5055,[72144e]|0.5493,0.5493,[72144e]|0.5533,0.5533,[72144e]|0.5951,0.5951,[72144e]|0.6375,0.6375,[72144e]|0.6322,0.6322,[72144e]|0.5493,0.5493,[72144e]|0.5456,0.5456,[72144e]|0.6043,0.6043,[72144e]|0.4864,0.4864,[72144e]|0.4864,0.4864,[72144e]|0.4507,0.4507,[72144e]|0.4369,0.4369,[72144e]|0.4652,0.4652,[72144e]|0.433,0.433,[72144e]|0.3983,0.3983,[72144e]|0.4292,0.4292,[72144e]|0.4619,0.4619,[72144e]|0.4541,0.4541,[72144e]|0.4831,0.4831,[72144e]|0.5176,0.5176,[72144e]|0.4541,0.4541,[72144e]|0.433,0.433,[72144e]|0.3392,0.3392,[72144e]|0.3286,0.3286,[72144e]|0.2849,0.2849,[72144e]|0.2817,0.2817,[72144e]|0.2224,0.2224,[72144e]|0.2364,0.2364,[72144e]|0.3249,0.3249,[72144e]|0.3599,0.3599,[72144e]|0.422,0.422,[72144e]|0.433,0.433,[72144e]|0.4409,0.4409,[72144e]|0.391,0.391,[72144e]|0.4186,0.4186,[72144e]|0.3249,0.3249,[72144e]|0.3392,0.3392,[72144e]|0.247,0.247,[72144e]|0.2783,0.2783,[72144e]|0.3215,0.3215,[72144e]|0.3321,0.3321,[72144e]|0.3182,0.3182,[72144e]|0.2609,0.2609,[72144e]|0.2193,0.2193,[72144e]|0.247,0.247,[72144e]|0.268,0.268,[72144e]|0.2918,0.2918,[72144e]|0.2645,0.2645,[72144e]|0.3494,0.3494,[72144e]|0.422,0.422,[72144e]|0.4476,0.4476,[72144e]|0.4119,0.4119,[72144e]|0.346,0.346,[72144e]|0.3599,0.3599,[72144e]|0.2918,0.2918,[72144e]|0.3704,0.3704,[72144e]|0.2609,0.2609,[72144e]|0.3494,0.3494,[72144e]|0.2436,0.2436,[72144e]|0.3392,0.3392,[72144e]|0.2817,0.2817,[72144e]|0.268,0.268,[72144e]|0.2541,0.2541,[72144e]|0.2094,0.2094,[72144e]|0.2951,0.2951,[72144e]|0.3566,0.3566,[72144e]|0.3215,0.3215,[72144e]|0.2849,0.2849,[72144e]|0.3117,0.3117,[72144e]|0.3249,0.3249,[72144e]|0.2399,0.2399,[72144e]|0.2064,0.2064,[72144e]|0.1852,0.1852,[72144e]|0.1852,0.1852,[72144e]|0.247,0.247,[72144e]|0.1759,0.1759,[72144e]|0.2399,0.2399,[72144e]|0.2193,0.2193,[72144e]|0.3182,0.3182,[72144e]|0.3321,0.3321,[72144e]|0.4369,0.4369,[72144e]|0.433,0.433,[72144e]|0.3704,0.3704,[72144e]|0.3087,0.3087,[72144e]|0.3249,0.3249,[72144e]|0.433,0.433,[72144e]|0.4476,0.4476,[72144e]|0.4582,0.4582,[72144e]|0.4864,0.4864,[72144e]|0.5296,0.5296,[72144e]|0.5533,0.5533,[72144e]|0.5665,0.5665,[72144e]|0.5456,0.5456,[72144e]|0.5017,0.5017,[72144e]|0.4369,0.4369,[72144e]|0.4369,0.4369,[72144e]|0.3356,0.3356,[72144e]|0.374,0.374,[72144e]|0.3426,0.3426,[72144e]|0.2609,0.2609,[72144e]|0.2817,0.2817,[72144e]|0.2164,0.2164,[72144e]|0.2034,0.2034,[72144e]|0.2164,0.2164,[72144e]|0.2541,0.2541,[72144e]|0.3117,0.3117,[72144e]|0.2328,0.2328,[72144e]|0.2399,0.2399,[72144e]|0.2224,0.2224,[72144e]|0.2064,0.2064,[72144e]|0.2575,0.2575,[72144e]|0.268,0.268,[72144e]|0.268,0.268,[72144e]|0.2918,0.2918,[72144e]|0.3019,0.3019,[72144e]|0.3494,0.3494,[72144e]|0.3872,0.3872,[72144e]|0.3807,0.3807,[72144e]|0.4685,0.4685,[72144e]|0.4831,0.4831,[72144e]|0.494,0.494,[72144e]|0.5854,0.5854,[72144e]|0.5176,0.5176,[72144e]|0.5807,0.5807,[72144e]|0.5707,0.5707,[72144e]|0.5296,0.5296,[72144e]|0.6183,0.6183,[72144e]|0.5992,0.5992,[72144e]|
+GRAPHLINE IUPredWS (Long) 0.5 Above 0.5 indicates disorder ff0000
+LINE_GRAPH IUPredWS (Short) <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html> 0.928,0.928,[329440]|0.8823,0.8823,[329440]|0.8283,0.8283,[329440]|0.7912,0.7912,[329440]|0.754,0.754,[329440]|0.6474,0.6474,[329440]|0.5473,0.5473,[329440]|0.5296,0.5296,[329440]|0.4918,0.4918,[329440]|0.4703,0.4703,[329440]|0.4379,0.4379,[329440]|0.442,0.442,[329440]|0.4967,0.4967,[329440]|0.5514,0.5514,[329440]|0.5229,0.5229,[329440]|0.4879,0.4879,[329440]|0.4556,0.4556,[329440]|0.4245,0.4245,[329440]|0.4116,0.4116,[329440]|0.4651,0.4651,[329440]|0.4703,0.4703,[329440]|0.5008,0.5008,[329440]|0.5296,0.5296,[329440]|0.5229,0.5229,[329440]|0.5374,0.5374,[329440]|0.6174,0.6174,[329440]|0.6255,0.6255,[329440]|0.5253,0.5253,[329440]|0.5229,0.5229,[329440]|0.4458,0.4458,[329440]|0.442,0.442,[329440]|0.4781,0.4781,[329440]|0.4513,0.4513,[329440]|0.4282,0.4282,[329440]|0.4749,0.4749,[329440]|0.4967,0.4967,[329440]|0.5173,0.5173,[329440]|0.5549,0.5549,[329440]|0.5667,0.5667,[329440]|0.5412,0.5412,[329440]|0.5043,0.5043,[329440]|0.4703,0.4703,[329440]|0.4333,0.4333,[329440]|0.3578,0.3578,[329440]|0.3311,0.3311,[329440]|0.2657,0.2657,[329440]|0.3146,0.3146,[329440]|0.3263,0.3263,[329440]|0.27,0.27,[329440]|0.3184,0.3184,[329440]|0.3456,0.3456,[329440]|0.3311,0.3311,[329440]|0.3311,0.3311,[329440]|0.3311,0.3311,[329440]|0.2531,0.2531,[329440]|0.2748,0.2748,[329440]|0.1921,0.1921,[329440]|0.1921,0.1921,[329440]|0.1456,0.1456,[329440]|0.1698,0.1698,[329440]|0.2122,0.2122,[329440]|0.2657,0.2657,[329440]|0.2333,0.2333,[329440]|0.2385,0.2385,[329440]|0.1844,0.1844,[329440]|0.1844,0.1844,[329440]|0.1998,0.1998,[329440]|0.2209,0.2209,[329440]|0.2432,0.2432,[329440]|0.2657,0.2657,[329440]|0.2483,0.2483,[329440]|0.27,0.27,[329440]|0.2657,0.2657,[329440]|0.208,0.208,[329440]|0.282,0.282,[329440]|0.1998,0.1998,[329440]|0.3184,0.3184,[329440]|0.2432,0.2432,[329440]|0.3359,0.3359,[329440]|0.1732,0.1732,[329440]|0.1566,0.1566,[329440]|0.1205,0.1205,[329440]|0.1602,0.1602,[329440]|0.2255,0.2255,[329440]|0.1766,0.1766,[329440]|0.2385,0.2385,[329440]|0.2255,0.2255,[329440]|0.1635,0.1635,[329440]|0.1732,0.1732,[329440]|0.1602,0.1602,[329440]|0.1292,0.1292,[329440]|0.0771,0.0771,[329440]|0.0701,0.0701,[329440]|0.0965,0.0965,[329440]|0.0858,0.0858,[329440]|0.124,0.124,[329440]|0.0643,0.0643,[329440]|0.0935,0.0935,[329440]|0.0935,0.0935,[329440]|0.2041,0.2041,[329440]|0.2209,0.2209,[329440]|0.2602,0.2602,[329440]|0.2657,0.2657,[329440]|0.1878,0.1878,[329440]|0.2333,0.2333,[329440]|0.2432,0.2432,[329440]|0.2531,0.2531,[329440]|0.3668,0.3668,[329440]|0.3992,0.3992,[329440]|0.3359,0.3359,[329440]|0.3717,0.3717,[329440]|0.4556,0.4556,[329440]|0.4825,0.4825,[329440]|0.4245,0.4245,[329440]|0.3806,0.3806,[329440]|0.3146,0.3146,[329440]|0.3762,0.3762,[329440]|0.3263,0.3263,[329440]|0.3005,0.3005,[329440]|0.2748,0.2748,[329440]|0.1998,0.1998,[329440]|0.2432,0.2432,[329440]|0.1878,0.1878,[329440]|0.2657,0.2657,[329440]|0.3456,0.3456,[329440]|0.2748,0.2748,[329440]|0.2558,0.2558,[329440]|0.1766,0.1766,[329440]|0.1998,0.1998,[329440]|0.2483,0.2483,[329440]|0.2209,0.2209,[329440]|0.1732,0.1732,[329440]|0.1921,0.1921,[329440]|0.282,0.282,[329440]|0.3535,0.3535,[329440]|0.3456,0.3456,[329440]|0.3491,0.3491,[329440]|0.3806,0.3806,[329440]|0.4458,0.4458,[329440]|0.5084,0.5084,[329440]|0.6174,0.6174,[329440]|0.6174,0.6174,[329440]|0.7034,0.7034,[329440]|0.7418,0.7418,[329440]|0.7644,0.7644,[329440]|0.8595,0.8595,[329440]|0.8945,0.8945,[329440]|
+GRAPHLINE IUPredWS (Short) 0.5 Above 0.5 indicates disorder ff0000
+
+SEQUENCE_REF FER1_MESCR
+LINE_GRAPH IUPredWS (Long) <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html> 0.3117,0.3117,[72144e]|0.2951,0.2951,[72144e]|0.3249,0.3249,[72144e]|0.3566,0.3566,[72144e]|0.3426,0.3426,[72144e]|0.2503,0.2503,[72144e]|0.2436,0.2436,[72144e]|0.3053,0.3053,[72144e]|0.3182,0.3182,[72144e]|0.3426,0.3426,[72144e]|0.3948,0.3948,[72144e]|0.4619,0.4619,[72144e]|0.4619,0.4619,[72144e]|0.4979,0.4979,[72144e]|0.4652,0.4652,[72144e]|0.433,0.433,[72144e]|0.3983,0.3983,[72144e]|0.4619,0.4619,[72144e]|0.5296,0.5296,[72144e]|0.5419,0.5419,[72144e]|0.4864,0.4864,[72144e]|0.5176,0.5176,[72144e]|0.5176,0.5176,[72144e]|0.5176,0.5176,[72144e]|0.4541,0.4541,[72144e]|0.3599,0.3599,[72144e]|0.3872,0.3872,[72144e]|0.4119,0.4119,[72144e]|0.4292,0.4292,[72144e]|0.3948,0.3948,[72144e]|0.4017,0.4017,[72144e]|0.3704,0.3704,[72144e]|0.3356,0.3356,[72144e]|0.3053,0.3053,[72144e]|0.3286,0.3286,[72144e]|0.3286,0.3286,[72144e]|0.3087,0.3087,[72144e]|0.3392,0.3392,[72144e]|0.3774,0.3774,[72144e]|0.3182,0.3182,[72144e]|0.2918,0.2918,[72144e]|0.2609,0.2609,[72144e]|0.2292,0.2292,[72144e]|0.2224,0.2224,[72144e]|0.1731,0.1731,[72144e]|0.2002,0.2002,[72144e]|0.2002,0.2002,[72144e]|0.2436,0.2436,[72144e]|0.247,0.247,[72144e]|0.3426,0.3426,[72144e]|0.3774,0.3774,[72144e]|0.3774,0.3774,[72144e]|0.3704,0.3704,[72144e]|0.4087,0.4087,[72144e]|0.4369,0.4369,[72144e]|0.3704,0.3704,[72144e]|0.3948,0.3948,[72144e]|0.2988,0.2988,[72144e]|0.3807,0.3807,[72144e]|0.391,0.391,[72144e]|0.4292,0.4292,[72144e]|0.4087,0.4087,[72144e]|0.3529,0.3529,[72144e]|0.3149,0.3149,[72144e]|0.3356,0.3356,[72144e]|0.3566,0.3566,[72144e]|0.3807,0.3807,[72144e]|0.3529,0.3529,[72144e]|0.4369,0.4369,[72144e]|0.5139,0.5139,[72144e]|0.4831,0.4831,[72144e]|0.4507,0.4507,[72144e]|0.3566,0.3566,[72144e]|0.3704,0.3704,[72144e]|0.3182,0.3182,[72144e]|0.3392,0.3392,[72144e]|0.2328,0.2328,[72144e]|0.2951,0.2951,[72144e]|0.1791,0.1791,[72144e]|0.2715,0.2715,[72144e]|0.2164,0.2164,[72144e]|0.2002,0.2002,[72144e]|0.1881,0.1881,[72144e]|0.1501,0.1501,[72144e]|0.2164,0.2164,[72144e]|0.2817,0.2817,[72144e]|0.247,0.247,[72144e]|0.2094,0.2094,[72144e]|0.2328,0.2328,[72144e]|0.2503,0.2503,[72144e]|0.1823,0.1823,[72144e]|0.1643,0.1643,[72144e]|0.1852,0.1852,[72144e]|0.1852,0.1852,[72144e]|0.247,0.247,[72144e]|0.1881,0.1881,[72144e]|0.2541,0.2541,[72144e]|0.2328,0.2328,[72144e]|0.3249,0.3249,[72144e]|0.3426,0.3426,[72144e]|0.4369,0.4369,[72144e]|0.4292,0.4292,[72144e]|0.3704,0.3704,[72144e]|0.3117,0.3117,[72144e]|0.3249,0.3249,[72144e]|0.4369,0.4369,[72144e]|0.4507,0.4507,[72144e]|0.4619,0.4619,[72144e]|0.4901,0.4901,[72144e]|0.5055,0.5055,[72144e]|0.5342,0.5342,[72144e]|0.5419,0.5419,[72144e]|0.5176,0.5176,[72144e]|0.4619,0.4619,[72144e]|0.4017,0.4017,[72144e]|0.4051,0.4051,[72144e]|0.3053,0.3053,[72144e]|0.3053,0.3053,[72144e]|0.2783,0.2783,[72144e]|0.1942,0.1942,[72144e]|0.2129,0.2129,[72144e]|0.2002,0.2002,[72144e]|0.2002,0.2002,[72144e]|0.2129,0.2129,[72144e]|0.2503,0.2503,[72144e]|0.3117,0.3117,[72144e]|0.2328,0.2328,[72144e]|0.2399,0.2399,[72144e]|0.2258,0.2258,[72144e]|0.2129,0.2129,[72144e]|0.268,0.268,[72144e]|0.2988,0.2988,[72144e]|0.2988,0.2988,[72144e]|0.3215,0.3215,[72144e]|0.3249,0.3249,[72144e]|0.3774,0.3774,[72144e]|0.4149,0.4149,[72144e]|0.4051,0.4051,[72144e]|0.4979,0.4979,[72144e]|0.5456,0.5456,[72144e]|0.5665,0.5665,[72144e]|0.6755,0.6755,[72144e]|0.6089,0.6089,[72144e]|0.5901,0.5901,[72144e]|0.5807,0.5807,[72144e]|0.5382,0.5382,[72144e]|0.6227,0.6227,[72144e]|0.6043,0.6043,[72144e]|
+GRAPHLINE IUPredWS (Long) 0.5 Above 0.5 indicates disorder ff0000
+LINE_GRAPH IUPredWS (Short) <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html> 0.8857,0.8857,[329440]|0.8283,0.8283,[329440]|0.7912,0.7912,[329440]|0.7111,0.7111,[329440]|0.6681,0.6681,[329440]|0.6334,0.6334,[329440]|0.5549,0.5549,[329440]|0.4282,0.4282,[329440]|0.3491,0.3491,[329440]|0.3311,0.3311,[329440]|0.2913,0.2913,[329440]|0.3225,0.3225,[329440]|0.3806,0.3806,[329440]|0.442,0.442,[329440]|0.4078,0.4078,[329440]|0.4078,0.4078,[329440]|0.4078,0.4078,[329440]|0.4037,0.4037,[329440]|0.3939,0.3939,[329440]|0.4203,0.4203,[329440]|0.4245,0.4245,[329440]|0.46,0.46,[329440]|0.3885,0.3885,[329440]|0.4282,0.4282,[329440]|0.4556,0.4556,[329440]|0.4149,0.4149,[329440]|0.3885,0.3885,[329440]|0.3847,0.3847,[329440]|0.4203,0.4203,[329440]|0.3263,0.3263,[329440]|0.3311,0.3311,[329440]|0.3263,0.3263,[329440]|0.3005,0.3005,[329440]|0.2432,0.2432,[329440]|0.2786,0.2786,[329440]|0.2865,0.2865,[329440]|0.3146,0.3146,[329440]|0.3578,0.3578,[329440]|0.3535,0.3535,[329440]|0.3263,0.3263,[329440]|0.2913,0.2913,[329440]|0.2558,0.2558,[329440]|0.2913,0.2913,[329440]|0.2657,0.2657,[329440]|0.1698,0.1698,[329440]|0.1958,0.1958,[329440]|0.1878,0.1878,[329440]|0.2748,0.2748,[329440]|0.2041,0.2041,[329440]|0.208,0.208,[329440]|0.1998,0.1998,[329440]|0.2333,0.2333,[329440]|0.2483,0.2483,[329440]|0.2748,0.2748,[329440]|0.2602,0.2602,[329440]|0.2602,0.2602,[329440]|0.2786,0.2786,[329440]|0.1998,0.1998,[329440]|0.2748,0.2748,[329440]|0.1844,0.1844,[329440]|0.2483,0.2483,[329440]|0.2913,0.2913,[329440]|0.3456,0.3456,[329440]|0.3184,0.3184,[329440]|0.3225,0.3225,[329440]|0.27,0.27,[329440]|0.2748,0.2748,[329440]|0.2913,0.2913,[329440]|0.3225,0.3225,[329440]|0.3491,0.3491,[329440]|0.3717,0.3717,[329440]|0.3578,0.3578,[329440]|0.3053,0.3053,[329440]|0.3005,0.3005,[329440]|0.2602,0.2602,[329440]|0.2748,0.2748,[329440]|0.1958,0.1958,[329440]|0.3005,0.3005,[329440]|0.2209,0.2209,[329440]|0.3146,0.3146,[329440]|0.1602,0.1602,[329440]|0.138,0.138,[329440]|0.1041,0.1041,[329440]|0.1349,0.1349,[329440]|0.1958,0.1958,[329440]|0.1532,0.1532,[329440]|0.2041,0.2041,[329440]|0.1878,0.1878,[329440]|0.1322,0.1322,[329440]|0.1349,0.1349,[329440]|0.124,0.124,[329440]|0.0991,0.0991,[329440]|0.0884,0.0884,[329440]|0.0858,0.0858,[329440]|0.1205,0.1205,[329440]|0.1018,0.1018,[329440]|0.138,0.138,[329440]|0.0832,0.0832,[329440]|0.1178,0.1178,[329440]|0.1178,0.1178,[329440]|0.2385,0.2385,[329440]|0.2602,0.2602,[329440]|0.2865,0.2865,[329440]|0.2963,0.2963,[329440]|0.2209,0.2209,[329440]|0.2748,0.2748,[329440]|0.2865,0.2865,[329440]|0.2963,0.2963,[329440]|0.4116,0.4116,[329440]|0.442,0.442,[329440]|0.3885,0.3885,[329440]|0.3885,0.3885,[329440]|0.4651,0.4651,[329440]|0.4749,0.4749,[329440]|0.4149,0.4149,[329440]|0.3762,0.3762,[329440]|0.3184,0.3184,[329440]|0.3668,0.3668,[329440]|0.3146,0.3146,[329440]|0.2657,0.2657,[329440]|0.2333,0.2333,[329440]|0.1667,0.1667,[329440]|0.208,0.208,[329440]|0.1998,0.1998,[329440]|0.2786,0.2786,[329440]|0.3456,0.3456,[329440]|0.2786,0.2786,[329440]|0.2602,0.2602,[329440]|0.1844,0.1844,[329440]|0.1998,0.1998,[329440]|0.2483,0.2483,[329440]|0.2531,0.2531,[329440]|0.2041,0.2041,[329440]|0.2209,0.2209,[329440]|0.2963,0.2963,[329440]|0.3578,0.3578,[329440]|0.3491,0.3491,[329440]|0.3491,0.3491,[329440]|0.3847,0.3847,[329440]|0.4781,0.4781,[329440]|0.5374,0.5374,[329440]|0.6442,0.6442,[329440]|0.6474,0.6474,[329440]|0.6944,0.6944,[329440]|0.7317,0.7317,[329440]|0.7605,0.7605,[329440]|0.8521,0.8521,[329440]|0.892,0.892,[329440]|
+GRAPHLINE IUPredWS (Short) 0.5 Above 0.5 indicates disorder ff0000
+
+SEQUENCE_REF FER_CAPAN
+LINE_GRAPH IUPredWS (Long) <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html> 0.2817,0.2817,[72144e]|0.1671,0.1671,[72144e]|0.1611,0.1611,[72144e]|0.2364,0.2364,[72144e]|0.2783,0.2783,[72144e]|0.2951,0.2951,[72144e]|0.3566,0.3566,[72144e]|0.3426,0.3426,[72144e]|0.3053,0.3053,[72144e]|0.3286,0.3286,[72144e]|0.346,0.346,[72144e]|0.3087,0.3087,[72144e]|0.3321,0.3321,[72144e]|0.3631,0.3631,[72144e]|0.346,0.346,[72144e]|0.3774,0.3774,[72144e]|0.4119,0.4119,[72144e]|0.3566,0.3566,[72144e]|0.384,0.384,[72144e]|0.4766,0.4766,[72144e]|0.4507,0.4507,[72144e]|0.3807,0.3807,[72144e]|0.2884,0.2884,[72144e]|0.3774,0.3774,[72144e]|0.3392,0.3392,[72144e]|0.3019,0.3019,[72144e]|0.2918,0.2918,[72144e]|0.2752,0.2752,[72144e]|0.2503,0.2503,[72144e]|0.2752,0.2752,[72144e]|0.3249,0.3249,[72144e]|0.3149,0.3149,[72144e]|0.2645,0.2645,[72144e]|0.3356,0.3356,[72144e]|0.2399,0.2399,[72144e]|0.1852,0.1852,[72144e]|0.2258,0.2258,[72144e]|0.1969,0.1969,[72144e]|0.1251,0.1251,[72144e]|0.1583,0.1583,[72144e]|0.1229,0.1229,[72144e]|0.1028,0.1028,[72144e]|0.0817,0.0817,[72144e]|0.0799,0.0799,[72144e]|0.1399,0.1399,[72144e]|0.1611,0.1611,[72144e]|0.2399,0.2399,[72144e]|0.247,0.247,[72144e]|0.2783,0.2783,[72144e]|0.2328,0.2328,[72144e]|0.2503,0.2503,[72144e]|0.1643,0.1643,[72144e]|0.1791,0.1791,[72144e]|0.1092,0.1092,[72144e]|0.1702,0.1702,[72144e]|0.1791,0.1791,[72144e]|0.2849,0.2849,[72144e]|0.2645,0.2645,[72144e]|0.2094,0.2094,[72144e]|0.1501,0.1501,[72144e]|0.1643,0.1643,[72144e]|0.1852,0.1852,[72144e]|0.247,0.247,[72144e]|0.2258,0.2258,[72144e]|0.3149,0.3149,[72144e]|0.4087,0.4087,[72144e]|0.3774,0.3774,[72144e]|0.346,0.346,[72144e]|0.3286,0.3286,[72144e]|0.3494,0.3494,[72144e]|0.2541,0.2541,[72144e]|0.3529,0.3529,[72144e]|0.247,0.247,[72144e]|0.3392,0.3392,[72144e]|0.2224,0.2224,[72144e]|0.3249,0.3249,[72144e]|0.268,0.268,[72144e]|0.2541,0.2541,[72144e]|0.2436,0.2436,[72144e]|0.1969,0.1969,[72144e]|0.2752,0.2752,[72144e]|0.3426,0.3426,[72144e]|0.3053,0.3053,[72144e]|0.2645,0.2645,[72144e]|0.2503,0.2503,[72144e]|0.2715,0.2715,[72144e]|0.1823,0.1823,[72144e]|0.1424,0.1424,[72144e]|0.1611,0.1611,[72144e]|0.1611,0.1611,[72144e]|0.1424,0.1424,[72144e]|0.0967,0.0967,[72144e]|0.1528,0.1528,[72144e]|0.1399,0.1399,[72144e]|0.2129,0.2129,[72144e]|0.2292,0.2292,[72144e]|0.3286,0.3286,[72144e]|0.3356,0.3356,[72144e]|0.2752,0.2752,[72144e]|0.2094,0.2094,[72144e]|0.2292,0.2292,[72144e]|0.346,0.346,[72144e]|0.3631,0.3631,[72144e]|0.374,0.374,[72144e]|0.4119,0.4119,[72144e]|0.4619,0.4619,[72144e]|0.4864,0.4864,[72144e]|0.4901,0.4901,[72144e]|0.4979,0.4979,[72144e]|0.4725,0.4725,[72144e]|0.4051,0.4051,[72144e]|0.4087,0.4087,[72144e]|0.3182,0.3182,[72144e]|0.3215,0.3215,[72144e]|0.2817,0.2817,[72144e]|0.1969,0.1969,[72144e]|0.2224,0.2224,[72144e]|0.2164,0.2164,[72144e]|0.2129,0.2129,[72144e]|0.2193,0.2193,[72144e]|0.2575,0.2575,[72144e]|0.3215,0.3215,[72144e]|0.2399,0.2399,[72144e]|0.2436,0.2436,[72144e]|0.2292,0.2292,[72144e]|0.2164,0.2164,[72144e]|0.268,0.268,[72144e]|0.268,0.268,[72144e]|0.2193,0.2193,[72144e]|0.2436,0.2436,[72144e]|0.2436,0.2436,[72144e]|0.247,0.247,[72144e]|0.3087,0.3087,[72144e]|0.3019,0.3019,[72144e]|0.4017,0.4017,[72144e]|0.4441,0.4441,[72144e]|0.4541,0.4541,[72144e]|0.5419,0.5419,[72144e]|0.4831,0.4831,[72144e]|0.4507,0.4507,[72144e]|0.4369,0.4369,[72144e]|0.391,0.391,[72144e]|0.4541,0.4541,[72144e]|0.4292,0.4292,[72144e]|
+GRAPHLINE IUPredWS (Long) 0.5 Above 0.5 indicates disorder ff0000
+LINE_GRAPH IUPredWS (Short) <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html> 0.8424,0.8424,[329440]|0.8074,0.8074,[329440]|0.7644,0.7644,[329440]|0.6442,0.6442,[329440]|0.5762,0.5762,[329440]|0.5549,0.5549,[329440]|0.5253,0.5253,[329440]|0.4879,0.4879,[329440]|0.4651,0.4651,[329440]|0.3847,0.3847,[329440]|0.2748,0.2748,[329440]|0.2963,0.2963,[329440]|0.3311,0.3311,[329440]|0.2657,0.2657,[329440]|0.3311,0.3311,[329440]|0.3535,0.3535,[329440]|0.3146,0.3146,[329440]|0.3311,0.3311,[329440]|0.3578,0.3578,[329440]|0.363,0.363,[329440]|0.3578,0.3578,[329440]|0.363,0.363,[329440]|0.3225,0.3225,[329440]|0.3491,0.3491,[329440]|0.2913,0.2913,[329440]|0.2657,0.2657,[329440]|0.1878,0.1878,[329440]|0.1878,0.1878,[329440]|0.1732,0.1732,[329440]|0.1732,0.1732,[329440]|0.2292,0.2292,[329440]|0.2255,0.2255,[329440]|0.2255,0.2255,[329440]|0.282,0.282,[329440]|0.2209,0.2209,[329440]|0.1958,0.1958,[329440]|0.1844,0.1844,[329440]|0.138,0.138,[329440]|0.1088,0.1088,[329440]|0.1602,0.1602,[329440]|0.1041,0.1041,[329440]|0.0965,0.0965,[329440]|0.0813,0.0813,[329440]|0.1088,0.1088,[329440]|0.1205,0.1205,[329440]|0.0789,0.0789,[329440]|0.1117,0.1117,[329440]|0.1322,0.1322,[329440]|0.1349,0.1349,[329440]|0.1602,0.1602,[329440]|0.1805,0.1805,[329440]|0.1322,0.1322,[329440]|0.1495,0.1495,[329440]|0.0965,0.0965,[329440]|0.1495,0.1495,[329440]|0.0771,0.0771,[329440]|0.1495,0.1495,[329440]|0.1921,0.1921,[329440]|0.2209,0.2209,[329440]|0.1698,0.1698,[329440]|0.1805,0.1805,[329440]|0.1456,0.1456,[329440]|0.1495,0.1495,[329440]|0.1732,0.1732,[329440]|0.2432,0.2432,[329440]|0.2786,0.2786,[329440]|0.3053,0.3053,[329440]|0.2913,0.2913,[329440]|0.2432,0.2432,[329440]|0.2432,0.2432,[329440]|0.1958,0.1958,[329440]|0.2865,0.2865,[329440]|0.2041,0.2041,[329440]|0.3225,0.3225,[329440]|0.2385,0.2385,[329440]|0.3578,0.3578,[329440]|0.1844,0.1844,[329440]|0.1698,0.1698,[329440]|0.1495,0.1495,[329440]|0.1844,0.1844,[329440]|0.2558,0.2558,[329440]|0.1844,0.1844,[329440]|0.2483,0.2483,[329440]|0.2385,0.2385,[329440]|0.1266,0.1266,[329440]|0.1322,0.1322,[329440]|0.1205,0.1205,[329440]|0.0965,0.0965,[329440]|0.0832,0.0832,[329440]|0.0744,0.0744,[329440]|0.0813,0.0813,[329440]|0.0677,0.0677,[329440]|0.0832,0.0832,[329440]|0.0478,0.0478,[329440]|0.0813,0.0813,[329440]|0.0813,0.0813,[329440]|0.1766,0.1766,[329440]|0.1958,0.1958,[329440]|0.2209,0.2209,[329440]|0.2255,0.2255,[329440]|0.1566,0.1566,[329440]|0.208,0.208,[329440]|0.2209,0.2209,[329440]|0.2292,0.2292,[329440]|0.3668,0.3668,[329440]|0.3939,0.3939,[329440]|0.3263,0.3263,[329440]|0.3717,0.3717,[329440]|0.4513,0.4513,[329440]|0.4825,0.4825,[329440]|0.4245,0.4245,[329440]|0.3762,0.3762,[329440]|0.3399,0.3399,[329440]|0.3885,0.3885,[329440]|0.3053,0.3053,[329440]|0.2531,0.2531,[329440]|0.2385,0.2385,[329440]|0.1635,0.1635,[329440]|0.2041,0.2041,[329440]|0.208,0.208,[329440]|0.2865,0.2865,[329440]|0.3668,0.3668,[329440]|0.2865,0.2865,[329440]|0.27,0.27,[329440]|0.1805,0.1805,[329440]|0.1998,0.1998,[329440]|0.2602,0.2602,[329440]|0.2209,0.2209,[329440]|0.1766,0.1766,[329440]|0.1958,0.1958,[329440]|0.2209,0.2209,[329440]|0.2913,0.2913,[329440]|0.2913,0.2913,[329440]|0.2385,0.2385,[329440]|0.3096,0.3096,[329440]|0.4078,0.4078,[329440]|0.4749,0.4749,[329440]|0.5846,0.5846,[329440]|0.59,0.59,[329440]|0.6334,0.6334,[329440]|0.6681,0.6681,[329440]|0.6906,0.6906,[329440]|0.7869,0.7869,[329440]|0.835,0.835,[329440]|
+GRAPHLINE IUPredWS (Short) 0.5 Above 0.5 indicates disorder ff0000
+
+SEQUENCE_REF FER_CAPAA
+LINE_GRAPH IUPredWS (Long) <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html> 0.247,0.247,[72144e]|0.3392,0.3392,[72144e]|0.2609,0.2609,[72144e]|0.3249,0.3249,[72144e]|0.2258,0.2258,[72144e]|0.2817,0.2817,[72144e]|0.1759,0.1759,[72144e]|0.2364,0.2364,[72144e]|0.2817,0.2817,[72144e]|0.3215,0.3215,[72144e]|0.2918,0.2918,[72144e]|0.2436,0.2436,[72144e]|0.1852,0.1852,[72144e]|0.1942,0.1942,[72144e]|0.2258,0.2258,[72144e]|0.2884,0.2884,[72144e]|0.2783,0.2783,[72144e]|0.3667,0.3667,[72144e]|0.4541,0.4541,[72144e]|0.4292,0.4292,[72144e]|0.3948,0.3948,[72144e]|0.3704,0.3704,[72144e]|0.391,0.391,[72144e]|0.2918,0.2918,[72144e]|0.3948,0.3948,[72144e]|0.2951,0.2951,[72144e]|0.3872,0.3872,[72144e]|0.2575,0.2575,[72144e]|0.3599,0.3599,[72144e]|0.3019,0.3019,[72144e]|0.2849,0.2849,[72144e]|0.2645,0.2645,[72144e]|0.2034,0.2034,[72144e]|0.2752,0.2752,[72144e]|0.3356,0.3356,[72144e]|0.2918,0.2918,[72144e]|0.247,0.247,[72144e]|0.2364,0.2364,[72144e]|0.247,0.247,[72144e]|0.1643,0.1643,[72144e]|0.1275,0.1275,[72144e]|0.1449,0.1449,[72144e]|0.1449,0.1449,[72144e]|0.1323,0.1323,[72144e]|0.0888,0.0888,[72144e]|0.1449,0.1449,[72144e]|0.1275,0.1275,[72144e]|0.1881,0.1881,[72144e]|0.2064,0.2064,[72144e]|0.3149,0.3149,[72144e]|0.3286,0.3286,[72144e]|0.268,0.268,[72144e]|0.2034,0.2034,[72144e]|0.2224,0.2224,[72144e]|0.3494,0.3494,[72144e]|0.3704,0.3704,[72144e]|0.3807,0.3807,[72144e]|0.422,0.422,[72144e]|0.4725,0.4725,[72144e]|0.5017,0.5017,[72144e]|0.5176,0.5176,[72144e]|0.5176,0.5176,[72144e]|0.4901,0.4901,[72144e]|0.422,0.422,[72144e]|0.422,0.422,[72144e]|0.3356,0.3356,[72144e]|0.3356,0.3356,[72144e]|0.2951,0.2951,[72144e]|0.2129,0.2129,[72144e]|0.2436,0.2436,[72144e]|0.2328,0.2328,[72144e]|0.2328,0.2328,[72144e]|0.247,0.247,[72144e]|0.2849,0.2849,[72144e]|0.3494,0.3494,[72144e]|0.2609,0.2609,[72144e]|0.268,0.268,[72144e]|0.2541,0.2541,[72144e]|0.2328,0.2328,[72144e]|0.2849,0.2849,[72144e]|0.2884,0.2884,[72144e]|0.2364,0.2364,[72144e]|0.2609,0.2609,[72144e]|0.2645,0.2645,[72144e]|0.2645,0.2645,[72144e]|0.3286,0.3286,[72144e]|0.3215,0.3215,[72144e]|0.4186,0.4186,[72144e]|0.4582,0.4582,[72144e]|0.4725,0.4725,[72144e]|0.5533,0.5533,[72144e]|0.494,0.494,[72144e]|0.4652,0.4652,[72144e]|0.4476,0.4476,[72144e]|0.3983,0.3983,[72144e]|0.4619,0.4619,[72144e]|0.433,0.433,[72144e]|
+GRAPHLINE IUPredWS (Long) 0.5 Above 0.5 indicates disorder ff0000
+LINE_GRAPH IUPredWS (Short) <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html> 0.7724,0.7724,[329440]|0.7501,0.7501,[329440]|0.7111,0.7111,[329440]|0.6984,0.6984,[329440]|0.59,0.59,[329440]|0.5711,0.5711,[329440]|0.442,0.442,[329440]|0.4203,0.4203,[329440]|0.2786,0.2786,[329440]|0.27,0.27,[329440]|0.2385,0.2385,[329440]|0.3005,0.3005,[329440]|0.2385,0.2385,[329440]|0.2483,0.2483,[329440]|0.2167,0.2167,[329440]|0.2255,0.2255,[329440]|0.2657,0.2657,[329440]|0.3456,0.3456,[329440]|0.3717,0.3717,[329440]|0.3992,0.3992,[329440]|0.3847,0.3847,[329440]|0.3311,0.3311,[329440]|0.3225,0.3225,[329440]|0.27,0.27,[329440]|0.3668,0.3668,[329440]|0.2786,0.2786,[329440]|0.4037,0.4037,[329440]|0.3096,0.3096,[329440]|0.4116,0.4116,[329440]|0.2255,0.2255,[329440]|0.2041,0.2041,[329440]|0.1602,0.1602,[329440]|0.1998,0.1998,[329440]|0.2657,0.2657,[329440]|0.1921,0.1921,[329440]|0.2558,0.2558,[329440]|0.2483,0.2483,[329440]|0.1322,0.1322,[329440]|0.138,0.138,[329440]|0.124,0.124,[329440]|0.0991,0.0991,[329440]|0.0884,0.0884,[329440]|0.0771,0.0771,[329440]|0.0858,0.0858,[329440]|0.0701,0.0701,[329440]|0.0858,0.0858,[329440]|0.049,0.049,[329440]|0.0813,0.0813,[329440]|0.0813,0.0813,[329440]|0.1766,0.1766,[329440]|0.1998,0.1998,[329440]|0.2255,0.2255,[329440]|0.2255,0.2255,[329440]|0.1566,0.1566,[329440]|0.208,0.208,[329440]|0.2209,0.2209,[329440]|0.2292,0.2292,[329440]|0.3668,0.3668,[329440]|0.3939,0.3939,[329440]|0.3263,0.3263,[329440]|0.3717,0.3717,[329440]|0.4513,0.4513,[329440]|0.4825,0.4825,[329440]|0.4245,0.4245,[329440]|0.3762,0.3762,[329440]|0.3399,0.3399,[329440]|0.3885,0.3885,[329440]|0.3053,0.3053,[329440]|0.2531,0.2531,[329440]|0.2385,0.2385,[329440]|0.1635,0.1635,[329440]|0.2041,0.2041,[329440]|0.208,0.208,[329440]|0.2865,0.2865,[329440]|0.3668,0.3668,[329440]|0.2865,0.2865,[329440]|0.27,0.27,[329440]|0.1805,0.1805,[329440]|0.1998,0.1998,[329440]|0.2602,0.2602,[329440]|0.2209,0.2209,[329440]|0.1766,0.1766,[329440]|0.1958,0.1958,[329440]|0.2209,0.2209,[329440]|0.2913,0.2913,[329440]|0.2913,0.2913,[329440]|0.2385,0.2385,[329440]|0.3096,0.3096,[329440]|0.4078,0.4078,[329440]|0.4749,0.4749,[329440]|0.5846,0.5846,[329440]|0.59,0.59,[329440]|0.6334,0.6334,[329440]|0.6681,0.6681,[329440]|0.6906,0.6906,[329440]|0.7869,0.7869,[329440]|0.835,0.835,[329440]|
+GRAPHLINE IUPredWS (Short) 0.5 Above 0.5 indicates disorder ff0000
+
+SEQUENCE_REF Q93XJ9_SOLTU
+LINE_GRAPH IUPredWS (Long) <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html> 0.3182,0.3182,[72144e]|0.2002,0.2002,[72144e]|0.1449,0.1449,[72144e]|0.2164,0.2164,[72144e]|0.2503,0.2503,[72144e]|0.268,0.268,[72144e]|0.3286,0.3286,[72144e]|0.2951,0.2951,[72144e]|0.2609,0.2609,[72144e]|0.2849,0.2849,[72144e]|0.3053,0.3053,[72144e]|0.2609,0.2609,[72144e]|0.2817,0.2817,[72144e]|0.2541,0.2541,[72144e]|0.2575,0.2575,[72144e]|0.2575,0.2575,[72144e]|0.2645,0.2645,[72144e]|0.2064,0.2064,[72144e]|0.2292,0.2292,[72144e]|0.3149,0.3149,[72144e]|0.2884,0.2884,[72144e]|0.2164,0.2164,[72144e]|0.1399,0.1399,[72144e]|0.2129,0.2129,[72144e]|0.2094,0.2094,[72144e]|0.1731,0.1731,[72144e]|0.1702,0.1702,[72144e]|0.1759,0.1759,[72144e]|0.1501,0.1501,[72144e]|0.2002,0.2002,[72144e]|0.247,0.247,[72144e]|0.2436,0.2436,[72144e]|0.1823,0.1823,[72144e]|0.2503,0.2503,[72144e]|0.1583,0.1583,[72144e]|0.1611,0.1611,[72144e]|0.2002,0.2002,[72144e]|0.2002,0.2002,[72144e]|0.1298,0.1298,[72144e]|0.1643,0.1643,[72144e]|0.1275,0.1275,[72144e]|0.107,0.107,[72144e]|0.087,0.087,[72144e]|0.087,0.087,[72144e]|0.1501,0.1501,[72144e]|0.1759,0.1759,[72144e]|0.2503,0.2503,[72144e]|0.2609,0.2609,[72144e]|0.2918,0.2918,[72144e]|0.2258,0.2258,[72144e]|0.2436,0.2436,[72144e]|0.1554,0.1554,[72144e]|0.1731,0.1731,[72144e]|0.0948,0.0948,[72144e]|0.1611,0.1611,[72144e]|0.1702,0.1702,[72144e]|0.2849,0.2849,[72144e]|0.2609,0.2609,[72144e]|0.2094,0.2094,[72144e]|0.1554,0.1554,[72144e]|0.1671,0.1671,[72144e]|0.1852,0.1852,[72144e]|0.2436,0.2436,[72144e]|0.2258,0.2258,[72144e]|0.3117,0.3117,[72144e]|0.3983,0.3983,[72144e]|0.4186,0.4186,[72144e]|0.3872,0.3872,[72144e]|0.374,0.374,[72144e]|0.3872,0.3872,[72144e]|0.2918,0.2918,[72144e]|0.391,0.391,[72144e]|0.2918,0.2918,[72144e]|0.384,0.384,[72144e]|0.2541,0.2541,[72144e]|0.3631,0.3631,[72144e]|0.3053,0.3053,[72144e]|0.2918,0.2918,[72144e]|0.2783,0.2783,[72144e]|0.2193,0.2193,[72144e]|0.2951,0.2951,[72144e]|0.3599,0.3599,[72144e]|0.3149,0.3149,[72144e]|0.2752,0.2752,[72144e]|0.2645,0.2645,[72144e]|0.2817,0.2817,[72144e]|0.2094,0.2094,[72144e]|0.1942,0.1942,[72144e]|0.1528,0.1528,[72144e]|0.1528,0.1528,[72144e]|0.1554,0.1554,[72144e]|0.1092,0.1092,[72144e]|0.1671,0.1671,[72144e]|0.1501,0.1501,[72144e]|0.2164,0.2164,[72144e]|0.2292,0.2292,[72144e]|0.3392,0.3392,[72144e]|0.3249,0.3249,[72144e]|0.2645,0.2645,[72144e]|0.2034,0.2034,[72144e]|0.2164,0.2164,[72144e]|0.3356,0.3356,[72144e]|0.3494,0.3494,[72144e]|0.3599,0.3599,[72144e]|0.494,0.494,[72144e]|0.494,0.494,[72144e]|0.4652,0.4652,[72144e]|0.4766,0.4766,[72144e]|0.4369,0.4369,[72144e]|0.3872,0.3872,[72144e]|0.3494,0.3494,[72144e]|0.3529,0.3529,[72144e]|0.2292,0.2292,[72144e]|0.2328,0.2328,[72144e]|0.2002,0.2002,[72144e]|0.1349,0.1349,[72144e]|0.1611,0.1611,[72144e]|0.1399,0.1399,[72144e]|0.0676,0.0676,[72144e]|0.078,0.078,[72144e]|0.1007,0.1007,[72144e]|0.1424,0.1424,[72144e]|0.0948,0.0948,[72144e]|0.0985,0.0985,[72144e]|0.0929,0.0929,[72144e]|0.0851,0.0851,[72144e]|0.0676,0.0676,[72144e]|0.0909,0.0909,[72144e]|0.1229,0.1229,[72144e]|0.1399,0.1399,[72144e]|0.1583,0.1583,[72144e]|0.1969,0.1969,[72144e]|0.2364,0.2364,[72144e]|0.2292,0.2292,[72144e]|0.3321,0.3321,[72144e]|0.3667,0.3667,[72144e]|0.3774,0.3774,[72144e]|0.4441,0.4441,[72144e]|0.3872,0.3872,[72144e]|0.384,0.384,[72144e]|0.5577,0.5577,[72144e]|0.5176,0.5176,[72144e]|0.6043,0.6043,[72144e]|0.5854,0.5854,[72144e]|
+GRAPHLINE IUPredWS (Long) 0.5 Above 0.5 indicates disorder ff0000
+LINE_GRAPH IUPredWS (Short) <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html> 0.8311,0.8311,[329440]|0.7912,0.7912,[329440]|0.7501,0.7501,[329440]|0.6255,0.6255,[329440]|0.5008,0.5008,[329440]|0.4825,0.4825,[329440]|0.4513,0.4513,[329440]|0.4078,0.4078,[329440]|0.3885,0.3885,[329440]|0.2786,0.2786,[329440]|0.1732,0.1732,[329440]|0.1921,0.1921,[329440]|0.2292,0.2292,[329440]|0.1635,0.1635,[329440]|0.2385,0.2385,[329440]|0.2041,0.2041,[329440]|0.138,0.138,[329440]|0.138,0.138,[329440]|0.1566,0.1566,[329440]|0.1698,0.1698,[329440]|0.1698,0.1698,[329440]|0.1698,0.1698,[329440]|0.138,0.138,[329440]|0.1566,0.1566,[329440]|0.1456,0.1456,[329440]|0.1266,0.1266,[329440]|0.0744,0.0744,[329440]|0.0744,0.0744,[329440]|0.0621,0.0621,[329440]|0.0965,0.0965,[329440]|0.1416,0.1416,[329440]|0.138,0.138,[329440]|0.1349,0.1349,[329440]|0.2041,0.2041,[329440]|0.138,0.138,[329440]|0.1667,0.1667,[329440]|0.1635,0.1635,[329440]|0.138,0.138,[329440]|0.1117,0.1117,[329440]|0.1635,0.1635,[329440]|0.1088,0.1088,[329440]|0.1041,0.1041,[329440]|0.0884,0.0884,[329440]|0.1266,0.1266,[329440]|0.1416,0.1416,[329440]|0.1018,0.1018,[329440]|0.1495,0.1495,[329440]|0.1732,0.1732,[329440]|0.1805,0.1805,[329440]|0.1805,0.1805,[329440]|0.2041,0.2041,[329440]|0.1566,0.1566,[329440]|0.1732,0.1732,[329440]|0.1117,0.1117,[329440]|0.1766,0.1766,[329440]|0.0991,0.0991,[329440]|0.1805,0.1805,[329440]|0.2292,0.2292,[329440]|0.2865,0.2865,[329440]|0.2292,0.2292,[329440]|0.2432,0.2432,[329440]|0.2041,0.2041,[329440]|0.2122,0.2122,[329440]|0.2432,0.2432,[329440]|0.3184,0.3184,[329440]|0.3535,0.3535,[329440]|0.3762,0.3762,[329440]|0.363,0.363,[329440]|0.3762,0.3762,[329440]|0.3717,0.3717,[329440]|0.3225,0.3225,[329440]|0.4078,0.4078,[329440]|0.3359,0.3359,[329440]|0.4458,0.4458,[329440]|0.3668,0.3668,[329440]|0.4879,0.4879,[329440]|0.3096,0.3096,[329440]|0.2865,0.2865,[329440]|0.2385,0.2385,[329440]|0.2865,0.2865,[329440]|0.3578,0.3578,[329440]|0.2865,0.2865,[329440]|0.3491,0.3491,[329440]|0.3359,0.3359,[329440]|0.208,0.208,[329440]|0.2167,0.2167,[329440]|0.1958,0.1958,[329440]|0.1635,0.1635,[329440]|0.1117,0.1117,[329440]|0.1088,0.1088,[329440]|0.1041,0.1041,[329440]|0.0858,0.0858,[329440]|0.1117,0.1117,[329440]|0.0643,0.0643,[329440]|0.1041,0.1041,[329440]|0.1041,0.1041,[329440]|0.2122,0.2122,[329440]|0.2292,0.2292,[329440]|0.2483,0.2483,[329440]|0.2333,0.2333,[329440]|0.1602,0.1602,[329440]|0.208,0.208,[329440]|0.2167,0.2167,[329440]|0.2209,0.2209,[329440]|0.3491,0.3491,[329440]|0.3717,0.3717,[329440]|0.3885,0.3885,[329440]|0.3806,0.3806,[329440]|0.3992,0.3992,[329440]|0.4116,0.4116,[329440]|0.3668,0.3668,[329440]|0.3263,0.3263,[329440]|0.2748,0.2748,[329440]|0.3225,0.3225,[329440]|0.2122,0.2122,[329440]|0.1635,0.1635,[329440]|0.1495,0.1495,[329440]|0.0991,0.0991,[329440]|0.1322,0.1322,[329440]|0.1292,0.1292,[329440]|0.1117,0.1117,[329440]|0.1667,0.1667,[329440]|0.1117,0.1117,[329440]|0.1018,0.1018,[329440]|0.0607,0.0607,[329440]|0.0723,0.0723,[329440]|0.0587,0.0587,[329440]|0.0643,0.0643,[329440]|0.0643,0.0643,[329440]|0.0771,0.0771,[329440]|0.1292,0.1292,[329440]|0.1766,0.1766,[329440]|0.1667,0.1667,[329440]|0.1667,0.1667,[329440]|0.2255,0.2255,[329440]|0.3225,0.3225,[329440]|0.3885,0.3885,[329440]|0.5008,0.5008,[329440]|0.5008,0.5008,[329440]|0.5667,0.5667,[329440]|0.7079,0.7079,[329440]|0.7342,0.7342,[329440]|0.835,0.835,[329440]|0.8746,0.8746,[329440]|
+GRAPHLINE IUPredWS (Short) 0.5 Above 0.5 indicates disorder ff0000
+
+SEQUENCE_REF FER1_SOLLC
+LINE_GRAPH IUPredWS (Long) <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html> 0.3286,0.3286,[72144e]|0.2094,0.2094,[72144e]|0.1528,0.1528,[72144e]|0.2258,0.2258,[72144e]|0.2609,0.2609,[72144e]|0.2752,0.2752,[72144e]|0.3356,0.3356,[72144e]|0.3249,0.3249,[72144e]|0.2918,0.2918,[72144e]|0.3149,0.3149,[72144e]|0.3321,0.3321,[72144e]|0.2884,0.2884,[72144e]|0.3087,0.3087,[72144e]|0.2849,0.2849,[72144e]|0.2849,0.2849,[72144e]|0.2849,0.2849,[72144e]|0.2951,0.2951,[72144e]|0.2364,0.2364,[72144e]|0.2575,0.2575,[72144e]|0.3426,0.3426,[72144e]|0.3149,0.3149,[72144e]|0.247,0.247,[72144e]|0.1643,0.1643,[72144e]|0.2436,0.2436,[72144e]|0.2399,0.2399,[72144e]|0.2034,0.2034,[72144e]|0.2002,0.2002,[72144e]|0.2064,0.2064,[72144e]|0.1823,0.1823,[72144e]|0.2094,0.2094,[72144e]|0.2609,0.2609,[72144e]|0.2575,0.2575,[72144e]|0.1942,0.1942,[72144e]|0.2645,0.2645,[72144e]|0.1759,0.1759,[72144e]|0.1791,0.1791,[72144e]|0.2193,0.2193,[72144e]|0.2193,0.2193,[72144e]|0.1476,0.1476,[72144e]|0.1852,0.1852,[72144e]|0.1424,0.1424,[72144e]|0.1206,0.1206,[72144e]|0.0985,0.0985,[72144e]|0.0985,0.0985,[72144e]|0.1671,0.1671,[72144e]|0.1942,0.1942,[72144e]|0.2817,0.2817,[72144e]|0.2918,0.2918,[72144e]|0.3215,0.3215,[72144e]|0.2575,0.2575,[72144e]|0.2752,0.2752,[72144e]|0.1823,0.1823,[72144e]|0.2034,0.2034,[72144e]|0.1206,0.1206,[72144e]|0.1969,0.1969,[72144e]|0.2034,0.2034,[72144e]|0.3182,0.3182,[72144e]|0.2951,0.2951,[72144e]|0.2436,0.2436,[72144e]|0.1852,0.1852,[72144e]|0.1969,0.1969,[72144e]|0.2193,0.2193,[72144e]|0.2817,0.2817,[72144e]|0.2645,0.2645,[72144e]|0.3494,0.3494,[72144e]|0.4369,0.4369,[72144e]|0.4541,0.4541,[72144e]|0.422,0.422,[72144e]|0.4017,0.4017,[72144e]|0.4186,0.4186,[72144e]|0.3215,0.3215,[72144e]|0.422,0.422,[72144e]|0.3215,0.3215,[72144e]|0.4119,0.4119,[72144e]|0.2884,0.2884,[72144e]|0.391,0.391,[72144e]|0.3321,0.3321,[72144e]|0.3182,0.3182,[72144e]|0.3053,0.3053,[72144e]|0.2541,0.2541,[72144e]|0.3286,0.3286,[72144e]|0.391,0.391,[72144e]|0.3529,0.3529,[72144e]|0.3117,0.3117,[72144e]|0.3019,0.3019,[72144e]|0.3182,0.3182,[72144e]|0.247,0.247,[72144e]|0.2292,0.2292,[72144e]|0.1852,0.1852,[72144e]|0.1852,0.1852,[72144e]|0.1823,0.1823,[72144e]|0.1298,0.1298,[72144e]|0.1942,0.1942,[72144e]|0.1759,0.1759,[72144e]|0.2436,0.2436,[72144e]|0.2609,0.2609,[72144e]|0.3631,0.3631,[72144e]|0.3667,0.3667,[72144e]|0.3087,0.3087,[72144e]|0.247,0.247,[72144e]|0.2609,0.2609,[72144e]|0.384,0.384,[72144e]|0.3983,0.3983,[72144e]|0.4087,0.4087,[72144e]|0.5419,0.5419,[72144e]|0.5419,0.5419,[72144e]|0.5139,0.5139,[72144e]|0.5211,0.5211,[72144e]|0.4831,0.4831,[72144e]|0.4292,0.4292,[72144e]|0.3948,0.3948,[72144e]|0.3983,0.3983,[72144e]|0.2884,0.2884,[72144e]|0.2884,0.2884,[72144e]|0.2541,0.2541,[72144e]|0.1791,0.1791,[72144e]|0.2094,0.2094,[72144e]|0.1823,0.1823,[72144e]|0.1823,0.1823,[72144e]|0.1881,0.1881,[72144e]|0.2224,0.2224,[72144e]|0.2884,0.2884,[72144e]|0.2164,0.2164,[72144e]|0.2164,0.2164,[72144e]|0.2064,0.2064,[72144e]|0.1942,0.1942,[72144e]|0.1643,0.1643,[72144e]|0.2064,0.2064,[72144e]|0.2541,0.2541,[72144e]|0.2783,0.2783,[72144e]|0.3019,0.3019,[72144e]|0.3494,0.3494,[72144e]|0.391,0.391,[72144e]|0.3807,0.3807,[72144e]|0.4864,0.4864,[72144e]|0.5342,0.5342,[72144e]|0.5533,0.5533,[72144e]|0.6576,0.6576,[72144e]|0.5901,0.5901,[72144e]|0.6043,0.6043,[72144e]|0.5951,0.5951,[72144e]|0.5493,0.5493,[72144e]|0.6427,0.6427,[72144e]|0.6227,0.6227,[72144e]|
+GRAPHLINE IUPredWS (Long) 0.5 Above 0.5 indicates disorder ff0000
+LINE_GRAPH IUPredWS (Short) <html>Protein Disorder with IUPredWS - raw scores<br/>Above 0.5 indicates disorder</html> 0.8391,0.8391,[329440]|0.8001,0.8001,[329440]|0.7573,0.7573,[329440]|0.6334,0.6334,[329440]|0.5173,0.5173,[329440]|0.5008,0.5008,[329440]|0.4703,0.4703,[329440]|0.4245,0.4245,[329440]|0.4116,0.4116,[329440]|0.3263,0.3263,[329440]|0.2167,0.2167,[329440]|0.2385,0.2385,[329440]|0.2786,0.2786,[329440]|0.2041,0.2041,[329440]|0.2865,0.2865,[329440]|0.2531,0.2531,[329440]|0.1805,0.1805,[329440]|0.1766,0.1766,[329440]|0.1958,0.1958,[329440]|0.2122,0.2122,[329440]|0.208,0.208,[329440]|0.2122,0.2122,[329440]|0.1766,0.1766,[329440]|0.1921,0.1921,[329440]|0.1844,0.1844,[329440]|0.1602,0.1602,[329440]|0.0991,0.0991,[329440]|0.1018,0.1018,[329440]|0.0858,0.0858,[329440]|0.1041,0.1041,[329440]|0.1566,0.1566,[329440]|0.1495,0.1495,[329440]|0.1495,0.1495,[329440]|0.2167,0.2167,[329440]|0.1495,0.1495,[329440]|0.1766,0.1766,[329440]|0.1732,0.1732,[329440]|0.1456,0.1456,[329440]|0.1205,0.1205,[329440]|0.1732,0.1732,[329440]|0.115,0.115,[329440]|0.1088,0.1088,[329440]|0.0935,0.0935,[329440]|0.1292,0.1292,[329440]|0.1456,0.1456,[329440]|0.1018,0.1018,[329440]|0.1532,0.1532,[329440]|0.1732,0.1732,[329440]|0.1878,0.1878,[329440]|0.1878,0.1878,[329440]|0.2122,0.2122,[329440]|0.1602,0.1602,[329440]|0.1766,0.1766,[329440]|0.1178,0.1178,[329440]|0.1844,0.1844,[329440]|0.1018,0.1018,[329440]|0.1844,0.1844,[329440]|0.2333,0.2333,[329440]|0.2913,0.2913,[329440]|0.2333,0.2333,[329440]|0.2483,0.2483,[329440]|0.208,0.208,[329440]|0.2167,0.2167,[329440]|0.2531,0.2531,[329440]|0.3263,0.3263,[329440]|0.3578,0.3578,[329440]|0.3806,0.3806,[329440]|0.3668,0.3668,[329440]|0.3762,0.3762,[329440]|0.3717,0.3717,[329440]|0.3225,0.3225,[329440]|0.4116,0.4116,[329440]|0.3399,0.3399,[329440]|0.4513,0.4513,[329440]|0.3717,0.3717,[329440]|0.4879,0.4879,[329440]|0.3146,0.3146,[329440]|0.2865,0.2865,[329440]|0.2385,0.2385,[329440]|0.2865,0.2865,[329440]|0.363,0.363,[329440]|0.2913,0.2913,[329440]|0.3535,0.3535,[329440]|0.3359,0.3359,[329440]|0.2122,0.2122,[329440]|0.2209,0.2209,[329440]|0.1998,0.1998,[329440]|0.1667,0.1667,[329440]|0.115,0.115,[329440]|0.115,0.115,[329440]|0.106,0.106,[329440]|0.0884,0.0884,[329440]|0.1205,0.1205,[329440]|0.0723,0.0723,[329440]|0.115,0.115,[329440]|0.115,0.115,[329440]|0.2292,0.2292,[329440]|0.2558,0.2558,[329440]|0.2786,0.2786,[329440]|0.2786,0.2786,[329440]|0.1958,0.1958,[329440]|0.2558,0.2558,[329440]|0.27,0.27,[329440]|0.2865,0.2865,[329440]|0.4149,0.4149,[329440]|0.442,0.442,[329440]|0.4651,0.4651,[329440]|0.46,0.46,[329440]|0.4781,0.4781,[329440]|0.4879,0.4879,[329440]|0.4513,0.4513,[329440]|0.4078,0.4078,[329440]|0.3491,0.3491,[329440]|0.3992,0.3992,[329440]|0.3146,0.3146,[329440]|0.2602,0.2602,[329440]|0.2385,0.2385,[329440]|0.1698,0.1698,[329440]|0.2167,0.2167,[329440]|0.1921,0.1921,[329440]|0.2748,0.2748,[329440]|0.3456,0.3456,[329440]|0.27,0.27,[329440]|0.2432,0.2432,[329440]|0.1667,0.1667,[329440]|0.1844,0.1844,[329440]|0.1635,0.1635,[329440]|0.1805,0.1805,[329440]|0.1844,0.1844,[329440]|0.2041,0.2041,[329440]|0.2913,0.2913,[329440]|0.3535,0.3535,[329440]|0.3399,0.3399,[329440]|0.3399,0.3399,[329440]|0.3806,0.3806,[329440]|0.4781,0.4781,[329440]|0.5374,0.5374,[329440]|0.6442,0.6442,[329440]|0.6442,0.6442,[329440]|0.7111,0.7111,[329440]|0.7458,0.7458,[329440]|0.7724,0.7724,[329440]|0.865,0.865,[329440]|0.9009,0.9009,[329440]|
+GRAPHLINE IUPredWS (Short) 0.5 Above 0.5 indicates disorder ff0000
+
+COLOUR IUPredWS (Long) 72144e
+COLOUR IUPredWS (Short) 329440
+COLOUR IUPredWS (Long) 72144e
+COLOUR IUPredWS (Short) 329440
+COLOUR IUPredWS (Long) 72144e
+COLOUR IUPredWS (Short) 329440
+COLOUR IUPredWS (Long) 72144e
+COLOUR IUPredWS (Short) 329440
+COLOUR IUPredWS (Long) 72144e
+COLOUR IUPredWS (Short) 329440
+COLOUR IUPredWS (Long) 72144e
+COLOUR IUPredWS (Short) 329440
+COLOUR IUPredWS (Long) 72144e
+COLOUR IUPredWS (Short) 329440
+COLOUR IUPredWS (Long) 72144e
+COLOUR IUPredWS (Short) 329440
+COLOUR IUPredWS (Long) 72144e
+COLOUR IUPredWS (Short) 329440
+COLOUR IUPredWS (Long) 72144e
+COLOUR IUPredWS (Short) 329440
+COLOUR IUPredWS (Long) 72144e
+COLOUR IUPredWS (Short) 329440
+COLOUR IUPredWS (Long) 72144e
+COLOUR IUPredWS (Short) 329440
+COLOUR IUPredWS (Long) 72144e
+COLOUR IUPredWS (Short) 329440
+COLOUR IUPredWS (Long) 72144e
+COLOUR IUPredWS (Short) 329440
+COLOUR IUPredWS (Long) 72144e
+COLOUR IUPredWS (Short) 329440
+COMBINE IUPredWS (Long) IUPredWS (Short)
+
+SEQUENCE_REF Q93XJ9_SOLTU
+COMBINE IUPredWS (Long) IUPredWS (Short)
+
+SEQUENCE_REF FER_CAPAA
+COMBINE IUPredWS (Long) IUPredWS (Short)
+
+SEQUENCE_REF FER_CAPAN
+COMBINE IUPredWS (Long) IUPredWS (Short)
+
+SEQUENCE_REF FER1_MESCR
+COMBINE IUPredWS (Long) IUPredWS (Short)
+
+SEQUENCE_REF FER1_SPIOL
+COMBINE IUPredWS (Long) IUPredWS (Short)
+
+SEQUENCE_REF FER1_PEA
+COMBINE IUPredWS (Long) IUPredWS (Short)
+
+SEQUENCE_REF Q7XA98_TRIPR
+COMBINE IUPredWS (Long) IUPredWS (Short)
+
+SEQUENCE_REF O80429_MAIZE
+COMBINE IUPredWS (Long) IUPredWS (Short)
+
+SEQUENCE_REF FER1_MAIZE
+COMBINE IUPredWS (Long) IUPredWS (Short)
+
+SEQUENCE_REF FER3_RAPSA
+COMBINE IUPredWS (Long) IUPredWS (Short)
+
+SEQUENCE_REF FER_BRANA
+COMBINE IUPredWS (Long) IUPredWS (Short)
+
+SEQUENCE_REF FER1_ARATH
+COMBINE IUPredWS (Long) IUPredWS (Short)
+
+SEQUENCE_REF Q93Z60_ARATH
+COMBINE IUPredWS (Long) IUPredWS (Short)
+
+SEQUENCE_REF FER2_ARATH
+COMBINE IUPredWS (Long) IUPredWS (Short)
+
+SEQUENCE_REF FER1_SOLLC
--- /dev/null
+CLUSTAL
+
+B.taurus.1/1-64 C-UUGCGUU--AAUGAGAACAGAAACG-UAAA--CUAUAA-CCUAG-G---------GGU
+D.melanogaster.3/1-68 G-UGGCGCU--UAUGACGCAGUUGUCU-UAAA-CUCGAAC--UCGA-GC--------GGG
+D.melanogaster.2/1-63 C-AUUCAACU-UAUGAGGAUUAUUUCU-UAAA-GGCCUCU---GGC--U-------CGGA
+D.melanogaster.1/1-65 G-AGCC-CU---AUGAUCGAUGAUUGG-CAAA-UCCUCUC--GAGG--A-------ACCG
+R.norvegicus.7/1-66 C-CGGCACU--CAUGACGGUCUGCCUG-AAAA-CCAGCCC--GCUG-GU--------GGG
+R.norvegicus.6/1-67 G-CCGCUUC---AUGACAGGAAGGACU-GAAA-UGUCUCA-AAGAC--C-----UGUGGU
+R.norvegicus.5/1-62 G-UUUUUCC---AUGACGGUGUUUCCUCUAAA--UUUAC----AUG-----------GAG
+R.norvegicus.4/1-61 G-UCAGAUG---AUGACGGCCUGUGCA-GAAA-CCCCCAC-GUGGG--C--------UGC
+R.norvegicus.3/1-67 U-UUGCAUU--AAUGAGGAUUACACAG-AAAA-CCUUUGU--UAAGGGU--------UUG
+R.norvegicus.2/1-64 G-UUACAUU--GAUGAGAACAGAAACA-UAAA--CUAUGA-CCUAG-G---------GGU
+R.norvegicus.1/1-61 A-UAUUUGUU-UAUGAUGGUCACAGUG-UAAA--GUUCA----CAC-----------AGC
+O.aries.1/1-68 G-ACGCUUC---AUGACAGGAAGGACU-GAAA-UGUCUCU-UGGAC-GC------CUGGU
+M.musculus.9/1-66 C-CGGCACU--CAUGAAGGUCUGCUUG-AAAA-CCAGCCU--GCUG-GU--------GGG
+M.musculus.8/1-67 U-UUGCAUU--AAUGAGGAUUACACAG-AAAA-CCUUUGU--UAAG-GA-------CUUG
+O.niloticus.3/1-65 G-UGUCUCU---GUGAAGUUCGGUUUU-UAAA-AGGGUCA---UCC--A-------GAAA
+M.musculus.7/1-64 G-UGUCUCU---AUGAAGGAGGGGCCC-GAAG-CCCUUGU---GGG--C--------GGG
+O.niloticus.2/1-61 U-GUUUAUU--AAUGACGGCUACAGAU-UAAA--CCUUU----AGC-----------CUC
+M.musculus.6/1-61 G-UCAGAUG---AUGAUGGCCUGGGCA-GAAA-CCCCAUG--UGGG--C--------CGC
+O.niloticus.1/1-59 G-UUUCUCA---GUGAAGGCUACAGAU-UAAA--CCUCU----GGC-----------CUC
+M.musculus.5/1-66 G-CCGCUUC---AUGACAGGAAGGACU-GAAA-UGUCUUA---GAC--C-----UGUGGU
+M.musculus.4/1-65 G-UGUGCGA---AUGAUAACUACUGAC-GAAA-GAGCUGU-CUGCU--C-------AGUC
+M.musculus.3/1-64 G-GUUCUUC--CAUGAUGGUGUUUCCUCUAAA--UUUGC----ACG-----------GAG
+M.musculus.2/1-64 G-UUACAUU--AAUGAGAACAGAAACA-UAAA--CUAUGA-CCUAG-G---------GGU
+M.musculus.1/1-64 G-UCACCGA---AUGAUCUGCUCUGGU-CAAA-UCCUUCU---AUG--C------CAGCC
+C.elegans.1/1-64 G-AGGCAGCUUUGUGACGACCUUUGGC-UAAA-CUCCAUC--GUGA-GC--------GCC
+H.sapiens.15/1-63 U-UUUCAUC--UAUGAGGGUGUUUCCUCUAAA--CCUACG---AGG-----------GAG
+H.sapiens.14/1-62 C-ACUGCUG---AUGACGAACUAUCUC-UAAC-UGGUCUU--GACC--A-------CGAG
+H.sapiens.13/1-64 G-UCACUGC---AUGAUCCGCUCUGGU-CAAA-CCCUUCC---AGG--C------CAGCC
+H.sapiens.12/1-67 C-UCUGUUA---AUGACGUCUCUCCCUCUAAA-CCCCAUU-AAGGA--C--------UGG
+D.rerio.1/1-66 A-UGUGGUCUUUAUGAAGGCAGGUGCA-GAAA-CUAUGCA---CUA-GU--------GGU
+H.sapiens.11/1-63 G-CCGGAUG---AUGACGACCUGGGUG-GAAA-CCUACCC-UGUGG--G--------CAC
+H.sapiens.10/1-62 C-CGGCACU--CAUGACGGCCUGCCUG-CAAA--CCUGC----UGG--U--------GGG
+S.mansoni.1/1-67 C-UCGCUAU---AUGACGAUGGCAAUC-UCAA--AUGUU----CAU--U--------GGU
+S.scrofa.4/1-64 C-UGGCACC--CAUGACAGUCUGCCUA-AAAA-CCAGCC----CUG-GU--------GGG
+S.scrofa.3/1-63 A-UUUUAUC--CAUGAAAGUGUUUCCUCUAAA--CCUAU----GUG-----------GAG
+S.scrofa.2/1-65 C-UGGCACC--CAUGACAGUCUGCCUA-AAAA-CCAGCCC---CUG-GU--------GGG
+S.scrofa.1/1-68 G-ACGCUUC---AUGACAGGAAGGACU-GAAA-UGUCUUG-UGGAC-GC------CUGGU
+H.sapiens.9/1-58 U-AUUUGUU--UAUGAUGGCCACAGCC-UAAA--GUACA----CAC-----------GGC
+H.sapiens.8/1-67 U-UUGCUUU--AAUGAGAAUAGAAACG-UAAA--CUAUGA-CCUAG-G---------GGU
+X.laevis.1/1-67 G-UGUUUGCA-AAUGACGACCGAUUUU-GAAA-UGGUCUCACGGCC--A-------AAAA
+H.sapiens.7/1-70 U-GGCGUCUU-CAUGAGGGAGGGGCCC--AAA-GCCCUUG--UGGG--C--------GGA
+H.sapiens.6/1-66 G-UGUGCGG---AUGAUAACUACUGAC-GAAAGAGUCAUC---GAC--C-----UCAGUU
+H.sapiens.5/1-57 U-UCACAGA---AUGAUGGCACCUUCC-UAA---ACCCU----CAU-----------GGG
+H.sapiens.4/1-71 G-ACUGACAU-UAUGAAGGCCUGUACU-GAAG-ACAGCAA--GCUG--U-------UAGU
+H.sapiens.3/1-68 G-ACGCUUC---AUGAUAGGAAGGACU-GAAA-AGUCUUG-UGGAC--A-----CCUGGU
+H.sapiens.2/1-65 G-UGUGCGG---AUGAUAACUACUGAC-GAAA-GAGUCAU-CGACU--C-------AGUU
+H.sapiens.1/1-63 G-CCAGAUG---AUGACGACCUGGGUG-GAAA-CCUACCC-UGUGG--G--------CAC
+M.musculus.14/1-67 C-UCUGAUA---AUGAUGUCUCUCCCU-CUAA-CUCCCAGUAAGGA--C--------UGG
+M.musculus.13/1-60 C-AUGCGUC--CAUGAAGUCACUGGCC-UCAA-GCCCAA----GUG-GU--------GGG
+M.musculus.12/1-65 C-UCAGCAG--GAUGAUGAGAAGGGCU-GAAA-UGCUGCC--AAAC--C-------AGGU
+M.musculus.11/1-63 U-AUUUGUG--UAUGAUGGUCACAGUG-UAAA--GUUCC----CAC-----------AGC
+M.musculus.10/1-66 C-CGGCACU--CAUGAAGGUCUGCCUG-AAAA-CCAGCCU--GCUG-GU--------GGG
+B.taurus.7/1-61 U-UUUGCCC---AUGAAGGUGUUCCCUCUAAA--CCUAC----GUG-----------GAG
+B.taurus.6/1-67 G-AUGCGUC--CAUGAAGUCACCAGCC-CCAA-GCCCCUC---GUG-GU--------GGG
+B.taurus.5/1-61 G-CCAGAUG---AUGAGGACCUGUGCG-GAAA-CCCCCCG--CGGG--C--------UGC
+B.taurus.4/1-64 ACUUGCGUU--AAUGAGAACAGAAACG-UAAA--CUAUAA-CCUAG-G---------GGU
+G.gallus.3/1-73 U-AUUUCUU--UGUGAUGACCGAUUUU-GAAA-UGGGUUU---CUC--UAAUGCCAGGAA
+B.taurus.3/1-66 C-CCGGUGCC-UAUGACGGUCUGUCUG-AAAA-CCAGCCC---CUG-GU--------GGG
+G.gallus.2/1-60 U-AUUUGUC---AUGACAGUCACAGCA-UAAA--GCGCA----GAC-----------GGC
+B.taurus.2/1-64 C-UUGCGUU--AAUGAGAACAGAAACG-AAAA--CUAUAA-CCUAG-G---------GGU
+G.gallus.1/1-63 G-UGUGUUU---AUGAAGAGCACUAAC-AAAA-GAGUAAU-UGACU--C-------AGUU
+
+B.taurus.1/1-64 UUC-U-G-UUGGAU--GGUUG-------GCAAC
+D.melanogaster.3/1-68 CAA-U-U-GCUGAU---UACG---AUUAACCAC
+D.melanogaster.2/1-63 AAU-A-G-UCUGAA---CCU--------UAUUG
+D.melanogaster.1/1-65 AUC-G-U-UGAGAA--CCCCU-----UUGCCUU
+R.norvegicus.7/1-66 GCA-G-U-CCCGAG-GACCUG-------GCGUG
+R.norvegicus.6/1-67 CUU-U-C-UUCGAU--GUUCU-------GCGGC
+R.norvegicus.5/1-62 AAA-C-A-CCUGAU-UUCCAG------AAAAAU
+R.norvegicus.4/1-61 -CA-G-G-UUUGAA---CCC--------CUGGC
+R.norvegicus.3/1-67 UGUCG-A-UCUGCU--AAUUG-------GCAAA
+R.norvegicus.2/1-64 UUC-U-G-UUGGAU--AGCUC-------GUAAU
+R.norvegicus.1/1-61 UGU-G-A-CUUGAU--UUUUA-------AAAAU
+O.aries.1/1-68 CCU-U-C-CUUGAU--GUUCU------CACGGC
+M.musculus.9/1-66 GCA-G-U-CCUGAG-GACCUG-------GCGUG
+M.musculus.8/1-67 UGU-AGA-UCUGAU--AAUUG-------GCAAA
+O.niloticus.3/1-65 ACC-G-ACACUGAU--GUUUC------CGACAC
+M.musculus.7/1-64 CCU-C-C-CCUGAG---CCCG----UCUGUGGU
+O.niloticus.2/1-61 UGG-A-G-CCAGAU--GCAUU------CAAACA
+M.musculus.6/1-61 CCA-G-G-UUUGAA---CCC--------CUGGC
+O.niloticus.1/1-59 UGG-A-G-CCAGAU--GCAUU-------GAAAC
+M.musculus.5/1-66 CUU-U-C-CUCGAU--GUUCC------UGCGGC
+M.musculus.4/1-65 UGU-G-G-UUGGAU---GUAG------UCACAC
+M.musculus.3/1-64 AAA-C-A-CCUGAU-UUCCAG-----GAAAAUC
+M.musculus.2/1-64 UUC-U-G-UUGGAU--AGCUU-------GUAAU
+M.musculus.1/1-64 AGG-G-U-GGUGAU--GACCC-------GUGAC
+C.elegans.1/1-64 UCU-G-G-UCUGAU---GC---------GCCUC
+H.sapiens.15/1-63 GAA-C-A-CCUGAU---CUUA-----CAGAAAA
+H.sapiens.14/1-62 CUA-G-U-UCUGAA---UU-G-------CAGGG
+H.sapiens.13/1-64 AGA-G-U-GGGGAU--GGUCU-------GUGAC
+H.sapiens.12/1-67 GAG-A-G-GCAGAGCAAGCCU-------CAGAG
+D.rerio.1/1-66 GUC-U-G-UCUGAU--GUUUG-------GCCAU
+H.sapiens.11/1-63 CCA-U-G-UCCGAG---CCCC-------CUGGC
+H.sapiens.10/1-62 GCA-G-A-CCCGAA-AAUCCA-------GCGUG
+S.mansoni.1/1-67 UGC-C-A-UUUGAU--GAAAUCAGUUUUGUGUG
+S.scrofa.4/1-64 GCA-G-A-CUCGAG-AACCUG-------GCGUG
+S.scrofa.3/1-63 GAA-C-A-CCUGAU-GUCCAG------GAAAAU
+S.scrofa.2/1-65 GCA-G-A-CUCGAG-AACCUG-------GCGUG
+S.scrofa.1/1-68 CCU-U-C-CCUGAU--GUUCU------CAUGGC
+H.sapiens.9/1-58 UGU-G-A-CUUGAU---UCA--------AAAGA
+H.sapiens.8/1-67 UUC-U-G-UUGGAU-AAUUAG-----CAGUUUA
+X.laevis.1/1-67 CUC-GUG-UCCGAC---AUC--------AACCC
+H.sapiens.7/1-70 CCU-C-C-CCUGAG---CCUGUCUGAGGGGCCA
+H.sapiens.6/1-66 AGU-G-G-UUGGAU---GUAG------UCACAU
+H.sapiens.5/1-57 UGG-U-G-UCUGAG--AGGC--------GUGAA
+H.sapiens.4/1-71 ACA-G-A-CCAGAU--GCUUU--CUUGGCAGGC
+H.sapiens.3/1-68 CUU-U-C-CCUGAU--GUUCU------CGUGGC
+H.sapiens.2/1-65 AGU-G-G-UUGGAU---GUAG------UCACAU
+H.sapiens.1/1-63 CCA-U-G-UCCGAG---CCCC-------CUGGC
+M.musculus.14/1-67 GAG-A-G-GCUGAACAAACCU-------CAGAG
+M.musculus.13/1-60 CAG-U-G-ACAGAA---GA---------GCUGC
+M.musculus.12/1-65 CCU-U-U-UCUGAU--GGUGG-------CUGGG
+M.musculus.11/1-63 UGU-G-A-CUUGAU--UUUUA----AAAAUGUC
+M.musculus.10/1-66 GCA-G-U-CCUGAG-GACCUG-------GCGUG
+B.taurus.7/1-61 GAA-U-G-CCUGAU-GUCCAG-------GAAAA
+B.taurus.6/1-67 UGG-U-G-AUGGAA-CCGUCA-----AAGCAGU
+B.taurus.5/1-61 CCA-U-G-UCUGAG---CCC--------CUGGC
+B.taurus.4/1-64 UUC-U-G-UUGGAU--GGUUG-------GCAA-
+G.gallus.3/1-73 AUC-GUG-UCUGAU---GUUG-----UCAAGUA
+B.taurus.3/1-66 GCA-G-A-CCUGAG-AACCUG-------GCGUG
+G.gallus.2/1-60 UGU-G-A-CCUGAU--UUUAG------AAAAUA
+B.taurus.2/1-64 UUC-U-G-UUGGAU--GGUUG-------GCAAC
+G.gallus.1/1-63 GGU-G-U-UCAGAU--GCU---------CUCAC
+
<mapID target="newsreader" url="html/webServices/newsreader.html"/>
<mapID target="disorder" url="html/webServices/proteinDisorder.html"/>
<mapID target="aacon" url="html/webServices/AACon.html"/>
+ <mapID target="rnaalifold" url="html/webServices/RNAalifold.html"/>
<mapID target="seqfetch" url="html/features/seqfetch.html"/>
<mapID target="dbreffetcher" url="html/webServices/dbreffetcher.html"/>
<mapID target="seqmappings" url="html/features/seqmappings.html"/>
<tocitem text="What's new" target="new" expand="true">
<tocitem text="Protein Disorder Prediction" target="disorder"/>
<tocitem text="Alignment Conservation Analysis" target="aacon"/>
+ <tocitem text="RNAalifold RNA Secondary Structure Prediction" target="rnaalifold"/>
<tocitem text="Viewing RNA structure" target="varna" />
<tocitem text="RNA Structure Consensus" target="calcs.alstrconsensus"/>
<tocitem text="RNA Helices coloring" target="colours.rnahelices"/>
<tocitem text="Multiple Alignment Subjobs" target="msaservice"/>
</tocitem>
<tocitem text="Secondary Structure Prediction" target="jnet"/>
+ <tocitem text="RNAalifold RNA Secondary Structure Prediction" target="rnaalifold"/>
<tocitem text="Protein Disorder Prediction" target="disorder"/>
<tocitem text="Alignment Conservation Analysis" target="aacon"/>
<tocitem text="Multi-Harmony Alignment Analysis" target="shmrws"/>
</ul></p>
<h3><font face="Arial, Helvetica, sans-serif">(Since Jalview 2.2.1) SEQUENCE_GROUP</font></h3>
<p>Groups of sequences can be defined using the tab delimited line</p>
-<pre>SEQUENCE_GROUP Group_Name Group_Start Group_End Sequences</pre>
+<pre>SEQUENCE_GROUP Group_Name Group_Start Group_End <em>Sequences</em></pre>
<p>The sequences can be defined by alignment index and a range of sequences can
be defined in a comma delimited field such as</p>
<p>2-5,8-15,20,22</p>
<p>Enter * to select all groups. </p>
-<p>If the alignment indices are not known, enter -1 then a tab delimited list
- of sequence ids. </p>
+<p><strong>Note:</strong> If the alignment indices are not known, enter -1, followed by a tab and then a tab delimited list
+specifying the sequence ids. </p>
<p>If the SEQUENCE_REF has been defined, the group_start and group_end will be
relative to the sequence residue numbering, otherwise the group_start and group_end
will be the alignment column indices. </p>
<em>SEQUENCE_REF</em> sequence reference statement, the sequence representative
for the group will be set to the referenced sequence.<!-- <br><strong>Note:</strong> if the <em>hide</em>
property is set then only the representative sequence for the group will be shown in the alignment.--></li>
+ <li>The interpretation of the COMBINE statement in <em>Version 2.8.1</em> was refined
+ so that only annotation line graphs with the given names ands the same
+ <strong>SEQUENCE_REF</strong> and <strong>GROUP_REF</strong> scope are grouped.</li>
</ul>
<p> </p>
<p>An example Annotation file is given below:
COMBINE	Green Values	Red Values
GRAPHLINE	Red Values	2.6	threshold	black
-SEQUENCE_GROUP Group_A 30 50 *
-SEQUENCE_GROUP Group_B 1 351 2-5
-SEQUENCE_GROUP Group_C 12 14 -1 seq1 seq2 seq3
-PROPERTIES Group_A description=This is the description colour=Helix Propensity pidThreshold=0 outlineColour=red displayBoxes=true displayText=false colourText=false textCol1=black textCol2=black textColThreshold=0
-PROPERTIES Group_B outlineColour=red
-PROPERTIES Group_C colour=Clustal
+SEQUENCE_GROUP	Group_A	30	50	*
+SEQUENCE_GROUP	Group_B	1	351	2-5
+SEQUENCE_GROUP	Group_C	12	14	-1	seq1	seq2	seq3
+PROPERTIES	Group_A	description=This is the description	colour=Helix Propensity	pidThreshold=0	outlineColour=red	displayBoxes=true	displayText=false	colourText=false	textCol1=black	textCol2=black	textColThreshold=0
+PROPERTIES	Group_B	outlineColour=red
+PROPERTIES	Group_C	colour=Clustal
</pre>
</p>
+<p><em>Last updated for version 2.8.1</em></p>
</body>
</html>
<body>
<p><strong>Preferences</strong></p>
+<p>The preferences panel is opened from the Jalview Desktop’s <strong><em>Tools</em></strong> menu.</p>
<p>There are six tabs in the Preferences dialog box:
<ul>
<li>The <a href="#visual"><strong>"Visual"</strong>
<p><em>Open file</em> - If this is selected then the default
alignment file will be opened when Jalview is started. You can change
the default file by clicking on file name and either typing in the file
-path or selecting it from the file chooser window.</p>
+path or selecting it from the file chooser window.<br/><em>Note: The default example alignment is updated periodically to demonstrate new features in Jalview.</em></p>
<p><a name="colours"><strong>"Colours" Preferences tab</strong></p>
<p><em>Alignment Colour</em> - The default colour scheme for a new alignment
window. If the chosen option is "User Defined" then the last
</strong><em>Any columns currently not selected will replace the current
column selection. </em>
</li>
- <li><strong>Undefine Groups (Control U)<br> </strong><em>The
- alignment will be reset with no defined groups.<br> <strong>WARNING</strong>:
- This cannot be undone.</em>
- </li>
- <li><strong>Make Groups<br /> </strong> <em>The currently
+ <li><strong>Create Group (Control G)<br></strong>
+ <em>Create a group containing the currently selected sequences.</em></li>
+ <li><strong>Remove Group (Shift Control G)<br></strong>
+ <em>Ungroup the currently selected sequence group. (Create/Remove group new in Jalview 2.8.1)</em></li>
+ <li><strong>Make Groups for selection<br /> </strong> <em>The currently
selected groups of the alignment will be subdivided according to
the contents of the currently selected region. <br />Use this to
subdivide an alignment based on the different combinations of
residues observed at specific positions. (new in jalview 2.5)</em>
</li>
- </ul></li>
+ <li><strong>Undefine Groups (Control U)<br> </strong><em>The
+ alignment will be reset with no defined groups.<br> <strong>WARNING</strong>:
+ This cannot be undone.</em>
+ </li>
+ </ul></li>
<li><strong>View</strong>
<ul>
<li><strong>New View (Control T)</strong><em><br>
<li><strong>Invert Column Selection (Control Alt I)<br>
</strong><em>Any columns currently not selected will replace the current
column selection. </em></li>
- <li><strong>Undefine Groups (Control U)<br>
- </strong><em>The alignment will be reset with no defined groups.<br>
- <strong>WARNING</strong>: This cannot be undone.</em></li>
- <li><strong>Make Groups<br/></strong>
+ <li><strong>Create Group (Control G)<br></strong>
+ <em>Create a group containing the currently selected sequences.</em></li>
+ <li><strong>Remove Group (Shift Control G)<br></strong>
+ <em>Ungroup the currently selected sequence group. (Create/Remove group new in Jalview 2.8.1)</em></li>
+ <li><strong>Make Groups for selection<br/></strong>
<em>The currently selected groups of the alignment will be subdivided according to the contents of the currently selected region. <br/>Use this to subdivide an alignment based on the different combinations of residues observed at specific positions. (new in jalview 2.5)</em></li>
+<li><strong>Undefine Groups (Control U)<br>
+ </strong><em>The alignment will be reset with no defined groups.<br>
+ <strong>WARNING</strong>: This cannot be undone.</em></li>
+
</ul>
</body>
</html>
<li><strong><a href="../features/creatinFeatures.html">Create Sequence Feature...</a></strong><br>
<em>Opens the dialog box for creating sequence features over the currently
selected region on each selected sequence.</em></li>
- <li><strong>Group</strong><br>
- <em>Group Operations</em>
- <ul>
- <li><strong>Group</strong><em>This is the first entry in the
- menu, and will display the currently selected group's
- name. Selecting it displays a window allowing the name and
- description for this group to be edited. Click OK to set the
- new name and decription, and cancel to leave the existing
- name and description unchanged.</em></li>
+ <li><strong>Create Group<br>
+ </strong><em>This will define a new group from the current selection.</em><strong>
+ </strong></li>
<li><strong>Remove Group<br>
</strong><em>This will undefine the selected group. </em><strong>
</strong></li>
+ <li><strong>Edit (New) Group</strong><br>
+ <em>Group Editing Menu</em> <br />Options in this menu modify
+ the name and display properties of the currently selected group, or
+ a new group defined using the current selection.
+ <ul>
+ <li><strong>Name: <Group></strong> or <strong>Edit name and description</strong><br><em>The first entry in the
+ menu displays the name for the currently selected group, if it has one. Selecting this option opens a window allowing the name and
+ description for this group to be edited. Click OK to set the
+ new name and decription, and cancel to leave the existing
+ name and description unchanged.</em></li>
<li><strong>Group Colour<br>
</strong><em>Sets the <a href="../colourSchemes/index.html">colour</a>
of the group.</em><strong> </strong></li>
--- /dev/null
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="ISO-8859-1">
+<title>RNAalifold Web Service</title>
+</head>
+<body>
+ <strong>RNAalifold RNA Alignment Secondary Structure
+ Prediction Service</strong>
+ <p>
+ RNAalifold is part of the <a href="http://www.tbi.univie.ac.at/RNA/">Vienna
+ RNA</a> Secondary Structure Prediction and Comparison Package. It was
+ described in 2008 by Ivo L. Hofacker, Sebastian Will, Andreas R.
+ Gruber, and Peter F. Stadler, <em>RNAalifold: Improved consensus
+ structure prediction for RNA alignments</em>. (<a
+ href=http://www.biomedcentral.com/1471-2105/9/474>BMC
+ Bioinformatics, 9:474, 2008</a>).
+ </p>
+ <p>
+ <strong>Example RNAalifold Output</strong><br />
+ RNAalifold prints a consensus alignment and mfe structure to stdout with its
+ associated energy. Depending on the arguments given, other information such as
+ alternate structures are displayed below while base pairing probabilities (-p or --MEA
+ options) are stored in a separate 'alifold.out' file.<br />
+ <pre><br />
+G_UUUCAUU___AUGACGGCCUGUGCU_UAAA__CCUCC____GAG__C________GGGUCA_G_G_UCUGAU___CUUG_______GAGAC
+(.((((...........(((((((((........(((......)))............))))).).).))..................))))) (-19.16 = -11.80 + -7.36)
+(.((((...........(((((((((........(((......)))............))))).).).))..................))))) [-19.32]
+ frequency of mfe structure in ensemble 0.765639
+(.((((...........(((((((((........(((......)))............))))).).).))..................))))) -19.16 {-11.80 + -7.36}
+(.((((...........(((((((((........(((......)))............))))).).).))..................))))) { 13.20 MEA=92.14}
+
+Alifold.out
+ 6 89 9 99.2% 0.023 CG:29 GC:14 UA:9
+ 4 91 11 99.1% 0.028 CG:20 GC:11 UG:2 UA:17
+ 3 92 18 96.9% 0.090 CG:5 GC:2 GU:1 UG:4 AU:6 UA:25
+ 35 46 3 93.3% 0.195 CG:31 GC:16 UG:2 AU:5 UA:4
+ 36 45 10 93.6% 0.185 CG:16 GC:6 GU:1 UG:2 AU:8 UA:18
+ .
+ .
+ .
+ </pre>
+ </p>
+ <p>
+ <strong>Running RNAalifold from Jalview</strong><br />
+ To run RNAalifold go to <strong>Webservices→RNA Structure Prediction</strong>
+ and choose <strong>RNAalifold Defaults</strong> to run with no arguments or
+ <strong>edit settings and run ...</strong> to adjust the parameters before running.
+ Details of all the RNAalifold parameters can be found in the
+ <a href=http://www.tbi.univie.ac.at/RNA/man/RNAalifold.html>RNAalifold Manpage</a>.
+ JABAWS and Jalview support a selection of the RNAalifold arguments only.
+ </p>
+ <p><strong>Supported Arguments which give alternate structures</strong></p>
+ <p>
+ <em>Partition Function (-p)</em><br />
+ Calculate the Partition Function and base pairing probability matrix in addition to the mfe
+ structure. A coarse representation of the pair probabilities in the from of a psuedo
+ bracket notation, as well as the centroid structure derived from the pair probabilities
+ are displayed. The most likely base pairings are stored in a separate file by RNAalifold
+ and represented in Jalview by a bar graph annotation line labelled 'Contact Probabilities'.
+ </p>
+ <p>
+ <em>Maximum Expected Accuracy Structure (--MEA)</em><br />
+ Calculate an MEA structure where the expected Accuracy is computed from the base pair
+ probabilities. A more detailed description is found in the <a href=http://www.tbi.univie.ac.at/RNA/man/RNAfold.html>
+ RNAfold documentation</a>.
+ </p>
+ <p><strong>Example RNAalifold Structure Annotation rows</strong><p>
+
+ <div align="center">
+ <img src="RNAalifoldAnnotationRows.png" width="500" height="216"></div>
+
+</body>
+</html>
\ No newline at end of file
--- /dev/null
+action.cancel = Cancel\r
+action.create = Create\r
+action.update = Update\r
+action.delete = Delete\r
+action.snapshot = Snapshot\r
+action.clear = Clear\r
+action.accept = Accept\r
+action.select_ddbb = --- Select Database ---\r
+action.undo = Undo\r
+action.redo = Redo\r
+action.reset = Reset\r
+action.remove_left = Remove left\r
+action.remove_right = Remove right\r
+action.remove_empty_columns = Remove Empty Columns\r
+action.remove_all_gaps = Remove All Gaps\r
+action.boxes = Boxes\r
+action.text = Text\r
+action.by_pairwise_id = by Pairwise Identity\r
+action.by_id = by Id\r
+action.by_length = by Length\r
+action.by_group = by Group\r
+action.remove_redundancy = Remove Redundancy...\r
+action.pairwise_alignment = Pairwise Alignments...\r
+action.by_rna_helixes = by RNA Helices\r
+action.user_defined = User Defined...\r
+action.by_conservation = By Conservation\r
+action.wrap = Wrap\r
+action.show_gaps = Show Gaps\r
+action.find = Find...\r
+action.undefine_groups = Undefine Groups\r
+action.make_groups_selection = Make Groups For Selection\r
+action.copy = Copy\r
+action.cut = Cut\r
+action.paste = Paste\r
+action.font = Font...\r
+action.scale_above = Scale Above\r
+action.scale_left = Scale Left\r
+action.scale_right = Scale Right\r
+action.by_tree_order = By Tree Order\r
+action.sort = Sort\r
+action.calculate_tree = Calculate Tree\r
+action.help = Help\r
+action.by_annotation = by Annotation...\r
+action.invert_sequence_selection = Invert Sequence Selection\r
+action.invert_column_selection = Invert Column Selection\r
+action.show = Show\r
+action.hide = Hide\r
+action.ok = OK\r
+action.set_defaults = Defaults\r
+action.create_group = Create Group\r
+action.remove_group = Remove Group\r
+action.edit_group = Edit Group\r
+action.edit_new_group = Edit New Group\r
+action.hide_sequences = Hide Sequences\r
+action.reveal_all = Reveal All\r
+action.reveal_sequences = Reveal Sequences\r
+action.find_all = Find all\r
+action.find_next = Find next\r
+action.file = File\r
+action.view = View\r
+action.change_params = Change Parameters\r
+action.apply = Apply\r
+action.apply_threshold_all_groups = Apply threshold to all groups\r
+action.apply_all_groups = Apply to all Groups\r
+action.by_chain = By chain\r
+action.by_sequence = By Sequence\r
+action.paste_annotations = Paste Annotations\r
+action.format = Format\r
+action.select = Select\r
+action.new_view = New View\r
+action.close = Close\r
+action.add = Add\r
+action.save_as_default = Save as default\r
+action.cancel_fetch = Cancel Fetch\r
+action.save_omit_hidden_columns = Save / Omit Hidden Columns\r
+action.change_font = Change Font\r
+action.colour = Colour\r
+action.calculate = Calculate\r
+action.select_all = Select all\r
+action.deselect_all = Deselect all\r
+action.invert_selection = Invert selection\r
+action.using_jmol = Using Jmol\r
+action.link = Link\r
+action.show_chain = Show Chain\r
+label.str = Str:\r
+label.seq = Seq:\r
+label.structures_manager = Structures Manager\r
+label.nickname = Nickname:\r
+label.url = URL:\r
+label.input_file_url = Enter URL or Input File\r
+label.select_feature = Select feature:\r
+label.name = Name:\r
+label.name_param = Name: {0}\r
+label.group = Group:\r
+label.colour = Colour:\r
+label.description = Description:\r
+label.start = Start:\r
+label.end = End:\r
+label.current_parameter_set_name = Current parameter set name:\r
+label.service_action = Service Action:\r
+label.post_url = POST URL:\r
+label.url_suffix = URL Suffix\r
+label.sequence_source = Sequence Source\r
+label.per_seq = per Sequence\r
+label.result_vertically_separable = Results are vertically separable\r
+label.amend = Amend\r
+label.undo_command = Undo {0}\r
+label.redo_command = Redo {0}\r
+label.principal_component_analysis = Principal Component Analysis\r
+label.average_distance_identity = Average Distance Using % Identity\r
+label.neighbour_joining_identity = Neighbour Joining Using % Identity\r
+label.status_bar = Status bar\r
+label.out_to_textbox = Output to Textbox\r
+label.clustalx = Clustalx\r
+label.zappo = Zappo\r
+label.taylor = Taylor\r
+label.hydrophobicity = Hydrophobicity\r
+label.helix_propensity = Helix Propensity\r
+label.strand_propensity = Strand Propensity\r
+label.turn_propensity = Turn Propensity\r
+label.buried_index = Buried Index\r
+label.purine_pyrimidine = Purine/Pyrimidine\r
+label.percentage_identity = Percentage Identity\r
+label.blosum62_score = BLOSUM62 Score\r
+label.tcoffee_scores = T-Coffee Scores\r
+label.average_distance_bloslum62 = Average Distance Using BLOSUM62\r
+label.neighbour_blosum62 = Neighbour Joining Using BLOSUM62\r
+label.show_annotations = Show annotations\r
+label.colour_text = Colour Text\r
+label.show_non_conversed = Show nonconserved\r
+label.overview_window = Overview Window\r
+label.none = None\r
+label.above_identity_threshold = Above Identity Threshold\r
+label.nucleotide = Nucleotide\r
+label.to_new_alignment = To New Alignment\r
+label.to_this_alignment = Add To This Alignment\r
+label.apply_colour_to_all_groups = Apply Colour To All Groups\r
+label.modify_identity_thereshold = Modify Identity Threshold...\r
+label.modify_conservation_thereshold = Modify Conservation Threshold...\r
+label.input_from_textbox = Input from textbox\r
+label.centre_column_labels = Centre column labels\r
+label.automatic_scrolling = Automatic Scrolling\r
+label.documentation = Documentation\r
+label.about = About...\r
+label.show_sequence_limits = Show Sequence Limits\r
+label.feature_settings = Feature Settings...\r
+label.sequence_features = Sequence Features\r
+label.all_columns = All Columns\r
+label.all_sequences = All Sequences\r
+label.selected_columns = Selected Columns \r
+label.selected_sequences = Selected Sequences\r
+label.all_but_selected_region = All but Selected Region (Shift+Ctrl+H)\r
+label.selected_region = Selected Region\r
+label.all_sequences_columns = All Sequences and Columns\r
+label.group_consensus = Group Consensus\r
+label.group_conservation = Group Conservation\r
+label.show_consensus_histogram = Show Consensus Histogram\r
+label.show_consensus_logo = Show Consensus Logo\r
+label.norm_consensus_logo = Normalise Consensus Logo\r
+label.apply_all_groups = Apply to all groups\r
+label.autocalculated_annotation = Autocalculated Annotation\r
+label.min_colour = Min Colour\r
+label.max_colour = Max Colour\r
+label.use_original_colours = Use Original Colours\r
+label.threshold_minmax = Threshold is min/max\r
+label.represent_group_with = Represent Group with\r
+label.selection = Selection\r
+label.group_colour = Group Colour\r
+label.sequence = Sequence\r
+label.view_pdb_structure = View PDB Structure\r
+label.min = Min:\r
+label.max = Max:\r
+label.colour_by_label = Colour by label\r
+label.new_feature = New Feature\r
+label.match_case = Match Case\r
+label.view_alignment_editor = View in alignment editor\r
+label.labels = Labels\r
+label.output_values = Output Values...\r
+label.input_data = Input Data...\r
+label.nucleotide_matrix = Nucleotide matrix\r
+label.protein_matrix = Protein matrix\r
+label.show_bootstrap_values = Show Bootstrap Values\r
+label.show_distances = Show distances\r
+label.mark_unassociated_leaves = Mark Unassociated Leaves\r
+label.fit_to_window = Fit To Window\r
+label.newick_format = Newick Format\r
+label.colours = Colours\r
+label.view_mapping = View Mapping\r
+label.wireframe = Wireframe\r
+label.depthcue = Depthcue\r
+label.z_buffering = Z Buffering\r
+label.charge_cysteine = Charge & Cysteine\r
+label.all_chains_visible = All Chains Visible\r
+label.successfully_added_features_alignment = Successfully added features to alignment\r
+label.keyboard_editing_mode = Keyboard editing mode is {0}\r
+label.paste_features_annotations_Tcoffee_here = Paste your features / annotations / T-coffee score file here.\r
+label.removed_columns = Removed {0} columns.\r
+label.removed_empty_columns = Removed {0} empty columns.\r
+label.paste_newick_tree_file = Paste your Newick tree file here.\r
+label.order_by_params = Order by {0}\r
+label.html_content = <html>{0}</html>\r
+label.paste_pdb_file= Paste your PDB file here.\r
+label.paste_pdb_file_for_sequence = Paste PDB file for sequence {0}\r
+label.could_not_parse_newick_file = Could not parse Newick file\!\n {0}\r
+label.successfully_pasted_tcoffee_scores_to_alignment= Successfully pasted T-Coffee scores to alignment.\r
+label.failed_add_tcoffee_scores = Failed to add T-Coffee scores: \r
+label.successfully_pasted_annotation_to_alignment= Successfully pasted annotation to alignment.\r
+label.successfully_pasted_alignment_file = Successfully pasted alignment file\r
+label.paste_your_alignment_file = Paste your alignment file here\r
+label.paste_your = Paste your\r
+label.finished_searching = Finished searching\r
+label.search_results= Search results {0} : {1}\r
+label.found_match_for = Found match for {0}\r
+label.font = Font:\r
+label.size = Size:\r
+label.style = Style:\r
+label.enter_redundancy_threshold = Enter the redundancy threshold\r
+label.calculating = Calculating....\r
+label.modify_conservation_visibility = Modify conservation visibility\r
+label.colour_residues_above_occurence = Colour residues above % occurence\r
+label.set_this_label_text = set this label text\r
+label.sequences_from = Sequences from {0}\r
+label.successfully_loaded_file = Successfully loaded file {0}\r
+label.successfully_saved_to_file_in_format = Successfully saved to file: {0} in {1} format.\r
+label.copied_sequences_to_clipboard = Copied {0} sequences to clipboard.\r
+label.check_file_matches_sequence_ids_alignment = Check that the file matches sequence IDs in the alignment.\r
+label.problem_reading_tcoffee_score_file = Problem reading T-COFFEE score file\r
+label.source_to_target = {0} to '{1}'\r
+label.per_sequence_only= Per-sequence only\r
+label.to_file = to File\r
+label.to_textbox = to Textbox\r
+label.jalview = Jalview\r
+label.csv_spreadsheet = CSV (Spreadsheet)\r
+label.status = [Status]\r
+label.channels = Channels\r
+label.channel_title_item_count = {0} ({1})\r
+label.blog_item_published_on_date = {0} {1} \r
+label.select_das_service_from_table = Select a DAS service from the table to read a full description here.</font></html>\r
+label.session_update = Session Update\r
+label.new_vamsas_session = New Vamsas Session\r
+label.groovy_console = Groovy Console...\r
+label.lineart = Lineart\r
+label.dont_ask_me_again = Don't ask me again\r
+label.select_eps_character_rendering_style = Select EPS character rendering style\r
+label.invert_selection = Invert Selection\r
+label.optimise_order = Optimise Order\r
+label.seq_sort_by_score = Seq sort by Score\r
+label.load_colours = Load Colours\r
+label.save_colours = Save Colours\r
+label.fetch_das_features = Fetch DAS Features\r
+label.selected_database_to_fetch_from = Selected {0} database {1} to fetch from {2} \r
+label.database_param = Database: {0}\r
+label.example_param = Example: {0}\r
+label.select_file_format_before_saving = You must select a file format before saving!\r
+label.file_format_not_specified = File format not specified\r
+label.alignment_contains_hidden_columns = The Alignment contains hidden columns.\nDo you want to save only the visible alignment?\r
+label.couldnt_save_file = Couldn't save file: {0}\r
+label.error_saving_file = Error Saving File\r
+label.remove_from_default_list = Remove from default list?\r
+label.remove_user_defined_colour = Remove user defined colour\r
+label.you_must_select_least_two_sequences = You must select at least 2 sequences.\r
+label.invalid_selection = Invalid Selection\r
+label.principal_component_analysis_must_take_least_four_input_sequences = Principal component analysis must take\nat least 4 input sequences.\r
+label.sequence_selection_insufficient = Sequence selection insufficient\r
+label.you_need_more_two_sequences_selected_build_tree = You need to have more than two sequences selected to build a tree!\r
+label.not_enough_sequences = Not enough sequences\r
+label.selected_region_to_tree_may_only_contain_residues_or_gaps = The selected region to create a tree may\nonly contain residues or gaps.\nTry using the Pad function in the edit menu,\nor one of the multiple sequence alignment web services.\r
+label.sequences_selection_not_aligned = Sequences in selection are not aligned\r
+label.sequences_must_be_aligned_before_creating_tree = The sequences must be aligned before creating a tree.\nTry using the Pad function in the edit menu,\n or one of the multiple sequence alignment web services.\r
+label.sequences_not_aligned = Sequences not aligned\r
+label.problem_reading_tree_file = Problem reading tree file\r
+label.possible_problem_with_tree_file = Possible problem with tree file\r
+label.select_at_least_three_bases_in_at_least_one_sequence_to_cDNA_translation = Please select at least three bases in at least one sequence in order to perform a cDNA translation.\r
+label.translation_failed = Translation Failed\r
+label.error_when_translating_sequences_submit_bug_report = Unfortunately, something went wrong when translating your sequences.\nPlease take a look in the Jalview java console\nand submit a bug report including the stacktrace.\r
+label.implementation_error = Implementation error:\r
+label.automatically_associate_pdb_files_with_sequences_same_name = Do you want to automatically associate the {0} PDB files with sequences in the alignment that have the same name?\r
+label.automatically_associate_pdb_files_by_name = Automatically Associate PDB files by name\r
+label.ignore_unmatched_dropped_files_info = <html>Do you want to <em>ignore</em> the {0} files whose names did not match any sequence IDs ?</html>\r
+label.ignore_unmatched_dropped_files = Ignore unmatched dropped files?\r
+label.enter_view_name = Enter View Name\r
+label.enter_label = Enter label\r
+label.enter_label_for_the_structure = Enter a label for the structure?\r
+label.pdb_entry_is_already_displayed = {0} is already displayed.\nDo you want to re-use this viewer ?\r
+label.map_sequences_to_visible_window = Map Sequences to Visible Window: {0}\r
+label.add_pdbentry_to_view = Do you want to add {0} to the view called\n'{1}'\n\r
+label.align_to_existing_structure_view = Align to existing structure view\r
+label.pdb_entries_couldnt_be_retrieved = The following pdb entries could not be retrieved from the PDB\:\n{0}\nPlease try downloading them manually.\r
+label.couldnt_load_file = Couldn't load file\r
+label.couldnt_find_pdb_id_in_file = Couldn't find a PDB id in the file supplied. Please enter an Id to identify this structure.\r
+label.no_pdb_id_in_file = No PDB Id in File\r
+label.couldnt_read_pasted_text = Couldn't read the pasted text {0}\r
+label.error_parsing_text = Error parsing text\r
+label.enter_local_das_source = Enter Nickname & URL of Local DAS Source\r
+label.you_can_only_edit_or_remove_local_das_sources = You can only edit or remove local DAS Sources!\r
+label.public_das_source = Public DAS source - not editable\r
+label.input_alignment_from_url = Input Alignment From URL\r
+label.couldnt_import_as_vamsas_session = Couldn't import '{0}' as a new vamsas session.\r
+label.vamsas_document_import_failed = Vamsas Document Import Failed\r
+label.couldnt_locate = Couldn't locate {0}\r
+label.url_not_found = URL not found\r
+label.no_link_selected = No link selected\r
+label.new_sequence_url_link = New sequence URL link\r
+label.cannot_edit_annotations_in_wrapped_view = Cannot edit annotations in wrapped view\r
+label.wrapped_view_no_edit = Wrapped view - no edit\r
+label.error_retrieving_data = Error Retrieving Data\r
+label.user_colour_scheme_must_have_name = User colour scheme must have a name\r
+label.no_name_colour_scheme = No name for colour scheme\r
+label.invalid_url = Invalid URL !\r
+label.error_loading_file = Error loading file\r
+label.problems_opening_file = Encountered problems opening {0}!!\r
+label.file_open_error = File open error\r
+label.no_das_sources_selected_warn = No das sources were selected.\nPlease select some sources and\ntry again.\r
+label.no_das_sources_selected_title = No DAS Sources Selected\r
+label.colour_scheme_exists_overwrite = Colour scheme {0} exists.\nContinue saving colour scheme as {1}?"\r
+label.duplicate_scheme_name = Duplicate scheme name\r
+label.jalview_new_questionnaire = There is a new Questionnaire available. Would you like to complete it now ?\n\r
+label.jalview_user_survey = Jalview User Survey\r
+label.alignment_properties = Alignment Properties: {0}\r
+label.alignment_props = Alignment Properties\r
+label.input_cut_paste = Cut & Paste Input\r
+label.alignment_output_command = Alignment output - {0}\r
+label.annotations = Annotations\r
+label.features = Features\r
+label.overview_params = Overview {0}\r
+label.paste_newick_file = Paste Newick file\r
+label.load_tree_from_file = From File - \r
+label.colour_by_annotation = Colour by Annotation\r
+label.selection_output_command = Selection output - {0}\r
+label.annotation_for_displayid = <p><h2>Annotation for {0} </h2></p><p>\r
+label.pdb_sequence_mapping = PDB - Sequence Mapping\r
+label.pca_details = PCA details\r
+label.redundancy_threshold_selection = Redundancy threshold selection\r
+label.user_defined_colours = User defined colours\r
+label.jalviewLite_release = JalviewLite - Release {0}\r
+label.jaview_build_date = Build date: {0}\r
+label.jalview_authors_1 = Authors: Jim Procter, Andrew Waterhouse, Jan Engelhardt, Lauren Lui,\r
+label.jalview_authors_2 = Michele Clamp, James Cuff, Steve Searle, David Martin & Geoff Barton.\r
+label.jalview_dev_managers = Development managed by The Barton Group, University of Dundee, Scotland, UK.\r
+label.jalview_distribution_lists = For help, see the FAQ at www.jalview.org and/or join the jalview-discuss@jalview.org mailing list\r
+label.jalview_please_cite = If you use Jalview, please cite:\r
+label.jalview_cite_1_authors = Waterhouse, A.M., Procter, J.B., Martin, D.M.A, Clamp, M. and Barton, G. J. (2009)\r
+label.jalview_cite_1_title = Jalview Version 2 - a multiple sequence alignment editor and analysis workbench\r
+label.jalview_cite_1_ref = Bioinformatics doi: 10.1093/bioinformatics/btp033\r
+label.right_click = Right click\r
+label.to_add_annotation = to add annotation\r
+label.alignment_has_no_annotations = Alignment has no annotations\r
+label.retrieving_pdb_data = Retrieving PDB data...\r
+label.label = Label\r
+label.no_features_added_to_this_alignment = No Features added to this alignment!!\r
+label.features_can_be_added_from_searches_1 = (Features can be added from searches or\r
+label.features_can_be_added_from_searches_2 = from Jalview / GFF features files)\r
+label.calculating_pca= Calculating PCA\r
+label.reveal_columns = Reveal Columns\r
+label.jalview_cannot_open_file = Jalview can't open file\r
+label.jalview_applet = Jalview applet\r
+label.loading_data = Loading data\r
+label.memory_stats = Total Free Memory: {0} MB; Max Memory: {1} MB; {2} %\r
+label.calculating_tree = Calculating tree\r
+label.state_queueing = queuing\r
+label.state_running = running\r
+label.state_complete = complete\r
+label.state_job_cancelled = job cancelled!!\r
+label.state_job_error = job error!\r
+label.server_error_try_later = Server Error! (try later)\r
+label.error_loading_pdb_data = Error loading PDB data!!\r
+label.fetching_pdb_data = Fetching PDB data...\r
+label.structure_type = Structure_type\r
+label.settings_for_type = Settings for {0}\r
+label.view_full_application = View in Full Application\r
+label.load_associated_tree = Load Associated Tree ...\r
+label.load_features_annotations = Load Features/Annotations ...\r
+label.export_features = Export Features ...\r
+label.export_annotations = Export Annotations ...\r
+label.jalview_copy = Copy (Jalview Only)\r
+label.jalview_cut = Cut (Jalview Only)\r
+label.to_upper_case = To Upper Case\r
+label.to_lower_case = To Lower Case\r
+label.toggle_case = Toggle Case\r
+label.edit_name_description = Edit Name/Description\r
+label.create_sequence_feature = Create Sequence Feature\r
+label.edit_sequence = Edit Sequence\r
+label.sequence_details = Sequence Details\r
+label.jmol_help = Jmol Help\r
+label.all = All\r
+label.sort_by_score = Sort by Score\r
+label.sort_by_density = Sort by Density\r
+label.reveal = Reveal\r
+label.hide_columns = Hide Columns\r
--- /dev/null
+action.cancel = Cancelar\r
+action.create = Crear\r
+action.update = Actualizar\r
+action.delete = Borrar\r
+action.snapshot = Captura\r
+action.clear = Limpiar\r
+action.accept = Aceptar\r
type="xs:string" />
<xs:attribute name="threshold"
type="xs:float" />
+ <xs:attribute name="perSequence"
+ type="xs:boolean"
+ use="optional" />
+ <xs:attribute name="predefinedColours"
+ type="xs:boolean"
+ use="optional" />
</xs:complexType>
</xs:element>
<xs:element name="hiddenColumns"
import jalview.appletgui.*;
import jalview.structure.*;
+import jalview.util.MessageManager;
public class AppletPDBCanvas extends Panel implements MouseListener,
MouseMotionListener, StructureListener
g.fillRect(0, 0, getSize().width, getSize().height);
g.setColor(Color.black);
g.setFont(new Font("Verdana", Font.BOLD, 14));
- g.drawString("Error loading PDB data!!", 50, getSize().height / 2);
+ g.drawString(MessageManager.getString("label.error_loading_pdb_data"), 50, getSize().height / 2);
return;
}
{
g.setColor(Color.black);
g.setFont(new Font("Verdana", Font.BOLD, 14));
- g.drawString("Fetching PDB data...", 50, getSize().height / 2);
+ g.drawString(MessageManager.getString("label.fetching_pdb_data"), 50, getSize().height / 2);
return;
}
import jalview.appletgui.*;
import jalview.datamodel.*;
import jalview.schemes.*;
+import jalview.util.MessageManager;
public class AppletPDBViewer extends EmbmenuFrame implements
ActionListener, ItemListener
false, null);
Frame frame = new Frame();
frame.add(cap);
- jalview.bin.JalviewLite.addFrame(frame, "PDB - Sequence Mapping",
+ jalview.bin.JalviewLite.addFrame(frame, MessageManager.getString("label.pdb_sequence_mapping"),
500, 600);
cap.setText(pdbcanvas.mappingDetails.toString());
private void jbInit() throws Exception
{
setMenuBar(jMenuBar1);
- fileMenu.setLabel("File");
- coloursMenu.setLabel("Colours");
- mapping.setLabel("View Mapping");
+ fileMenu.setLabel(MessageManager.getString("action.file"));
+ coloursMenu.setLabel(MessageManager.getString("label.colours"));
+ mapping.setLabel(MessageManager.getString("label.view_mapping"));
mapping.addActionListener(this);
- wire.setLabel("Wireframe");
+ wire.setLabel(MessageManager.getString("label.wireframe"));
wire.addItemListener(this);
depth.setState(true);
- depth.setLabel("Depthcue");
+ depth.setLabel(MessageManager.getString("label.depthcue"));
depth.addItemListener(this);
zbuffer.setState(true);
- zbuffer.setLabel("Z Buffering");
+ zbuffer.setLabel(MessageManager.getString("label.z_buffering"));
zbuffer.addItemListener(this);
- charge.setLabel("Charge & Cysteine");
+ charge.setLabel(MessageManager.getString("label.charge_cysteine"));
charge.addActionListener(this);
- hydro.setLabel("Hydrophobicity");
+ hydro.setLabel(MessageManager.getString("label.hydrophobicity"));
hydro.addActionListener(this);
- chain.setLabel("By Chain");
+ chain.setLabel(MessageManager.getString("action.by_chain"));
chain.addActionListener(this);
- seqButton.setLabel("By Sequence");
+ seqButton.setLabel(MessageManager.getString("action.by_sequence"));
seqButton.addActionListener(this);
- allchains.setLabel("All Chains Visible");
+ allchains.setLabel(MessageManager.getString("label.all_chains_visible"));
allchains.addItemListener(this);
- viewMenu.setLabel("View");
- zappo.setLabel("Zappo");
+ viewMenu.setLabel(MessageManager.getString("action.view"));
+ zappo.setLabel(MessageManager.getString("label.zappo"));
zappo.addActionListener(this);
- taylor.setLabel("Taylor");
+ taylor.setLabel(MessageManager.getString("label.taylor"));
taylor.addActionListener(this);
- helix.setLabel("Helix Propensity");
+ helix.setLabel(MessageManager.getString("label.helix_propensity"));
helix.addActionListener(this);
- strand.setLabel("Strand Propensity");
+ strand.setLabel(MessageManager.getString("label.strand_propensity"));
strand.addActionListener(this);
- turn.setLabel("Turn Propensity");
+ turn.setLabel(MessageManager.getString("label.turn_propensity"));
turn.addActionListener(this);
- buried.setLabel("Buried Index");
+ buried.setLabel(MessageManager.getString("label.buried_index"));
buried.addActionListener(this);
- user.setLabel("User Defined...");
+ user.setLabel(MessageManager.getString("action.user_defined"));
user.addActionListener(this);
jMenuBar1.add(fileMenu);
jMenuBar1.add(coloursMenu);
import jalview.gui.*;
import jalview.io.*;
import jalview.schemes.*;
+import jalview.util.MessageManager;
import jalview.ws.ebi.EBIFetchClient;
public class PDBViewer extends JInternalFrame implements Runnable
int option = JOptionPane.showInternalConfirmDialog(
jalview.gui.Desktop.desktop,
- "Remove from default list?",
- "Remove user defined colour",
+ MessageManager.getString("label.remove_from_default_list"),
+ MessageManager.getString("label.remove_user_defined_colour"),
JOptionPane.YES_NO_OPTION);
if (option == JOptionPane.YES_OPTION)
{
import java.util.*;
+import jalview.util.Format;
import jalview.datamodel.*;
/**
Hashtable residueHash;
int maxCount, nongap, i, j, v, jSize = sequences.length;
String maxResidue;
- char c;
+ char c='-';
float percentage;
int[] values = new int[255];
maxResidue = "";
nongap = 0;
values = new int[255];
-
+
for (j = 0; j < jSize; j++)
{
if (sequences[j] == null)
values['-']++;
}
}
-
- for (v = 'A'; v < 'Z'; v++)
+ if (jSize==1)
+ {
+ maxResidue = String.valueOf(c);
+ maxCount=1;
+ } else {for (v = 'A'; v < 'Z'; v++)
{
if (values[v] < 2 || values[v] < maxCount)
{
}
maxCount = values[v];
}
-
+ }
if (maxResidue.length() == 0)
{
maxResidue = "-";
percentage = ((float) maxCount * 100) / jSize;
residueHash.put(PID_GAPS, new Float(percentage));
- percentage = ((float) maxCount * 100) / nongap;
- residueHash.put(PID_NOGAPS, new Float(percentage));
+ if (nongap>0) {
+ percentage = ((float) maxCount * 100) / nongap;
+ residueHash.put(PID_NOGAPS, new Float(percentage));
+ }
result[i] = residueHash;
}
}
* @param width
* @param ignoreGapsInConsensusCalculation
* @param includeAllConsSymbols
+ * @param nseq
*/
public static void completeConsensus(AlignmentAnnotation consensus,
Hashtable[] hconsensus, int iStart, int width,
boolean ignoreGapsInConsensusCalculation,
- boolean includeAllConsSymbols)
+ boolean includeAllConsSymbols, long nseq)
{
completeConsensus(consensus, hconsensus, iStart, width,
- ignoreGapsInConsensusCalculation, includeAllConsSymbols, null); // new
+ ignoreGapsInConsensusCalculation, includeAllConsSymbols, null, nseq); // new
// char[]
// { 'A', 'C', 'G', 'T', 'U' });
}
public static void completeConsensus(AlignmentAnnotation consensus,
Hashtable[] hconsensus, int iStart, int width,
boolean ignoreGapsInConsensusCalculation,
- boolean includeAllConsSymbols, char[] alphabet)
+ boolean includeAllConsSymbols, char[] alphabet, long nseq)
{
float tval, value;
if (consensus == null || consensus.annotations == null
// initialised properly
return;
}
+ String fmtstr="%3.1f";
+ int precision=0;
+ while (nseq>=10) {
+ precision++;
+ nseq/=10;
+ }
+ final Format fmt;
+ if (precision>1)
+ {
+ //if (precision>2)
+ {
+ fmtstr = "%"+(2+precision)+"."+(precision)+"f";
+ }
+ fmt = new Format(fmtstr);
+ } else {
+ fmt = null;
+ }
for (int i = iStart; i < width; i++)
{
Hashtable hci;
consensus.annotations[i] = null;
continue;
}
-
value = 0;
Float fv;
if (ignoreGapsInConsensusCalculation)
tval = profile[0][alphabet[c]] * 100f
/ profile[1][ignoreGapsInConsensusCalculation ? 1 : 0];
mouseOver += ((c == 0) ? "" : "; ") + alphabet[c] + " "
- + ((int) tval) + "%";
+ + ((fmt!=null) ? fmt.form(tval) : ((int) tval)) + "%";
}
}
else
* 100f
/ profile[1][ignoreGapsInConsensusCalculation ? 1 : 0];
mouseOver += ((p == 0) ? "" : "; ") + ((char[]) ca[c])[0]
- + " " + ((int) tval) + "%";
+ + " " + ((fmt!=null) ? fmt.form(tval) : ((int) tval)) + "%";
p++;
}
}
else
{
- mouseOver += ((int) value + "%");
+ mouseOver += ((fmt!=null) ? fmt.form(value) : ((int) value)) + "%";
}
consensus.annotations[i] = new Annotation(maxRes, mouseOver, ' ',
value);
*/
package jalview.analysis;
+import java.util.ArrayList;
import java.util.Hashtable;
import java.util.Vector;
{
SequenceI newseq = translateCodingRegion(selection[s], seqstring[s],
viscontigs, codons, gapCharacter,
- (product != null) ? product[s] : null); // possibly anonymous
+ (product != null) ? product[s] : null, false); // possibly anonymous
// product
if (newseq != null)
{
pepseqs.addElement(newseq);
SequenceI ds = newseq;
- while (ds.getDatasetSequence() != null)
+ if (dataset != null)
{
- ds = ds.getDatasetSequence();
+ while (ds.getDatasetSequence() != null)
+ {
+ ds = ds.getDatasetSequence();
+ }
+ dataset.addSequence(ds);
}
- dataset.addSequence(ds);
}
}
if (codons.aaWidth == 0)
* @param codons
* Definition of global ORF alignment reference frame
* @param gapCharacter
- * @param newSeq
* @return sequence ready to be added to alignment.
+ * @deprecated Use {@link #translateCodingRegion(SequenceI,String,int[],AlignedCodonFrame,char,DBRefEntry,boolean)} instead
*/
public static SequenceI translateCodingRegion(SequenceI selection,
String seqstring, int[] viscontigs, AlignedCodonFrame codons,
char gapCharacter, DBRefEntry product)
{
- Vector skip = new Vector();
+ return translateCodingRegion(selection, seqstring, viscontigs, codons,
+ gapCharacter, product, false);
+ }
+
+ /**
+ * Translate a na sequence
+ *
+ * @param selection
+ * sequence displayed under viscontigs visible columns
+ * @param seqstring
+ * ORF read in some global alignment reference frame
+ * @param viscontigs
+ * mapping from global reference frame to visible seqstring ORF read
+ * @param codons
+ * Definition of global ORF alignment reference frame
+ * @param gapCharacter
+ * @param starForStop when true stop codons will translate as '*', otherwise as 'X'
+ * @return sequence ready to be added to alignment.
+ */
+ public static SequenceI translateCodingRegion(SequenceI selection,
+ String seqstring, int[] viscontigs, AlignedCodonFrame codons,
+ char gapCharacter, DBRefEntry product, final boolean starForStop)
+ {
+ java.util.List skip = new ArrayList();
int skipint[] = null;
ShiftList vismapping = new ShiftList(); // map from viscontigs to seqstring
// intervals
// edit scontigs
skipint[0] = vismapping.shift(skipint[0]);
skipint[1] = vismapping.shift(skipint[1]);
- for (vc = 0; vc < scontigs.length; vc += 2)
+ for (vc = 0; vc < scontigs.length; )
{
if (scontigs[vc + 1] < skipint[0])
{
+ // before skipint starts
+ vc += 2;
continue;
}
+ if (scontigs[vc]>skipint[1])
+ {
+ // finished editing so
+ break;
+ }
+ // Edit the contig list to include the skipped region which did not translate
+ int[] t;
+ // from : s1 e1 s2 e2 s3 e3
+ // to s: s1 e1 s2 k0 k1 e2 s3 e3
+ // list increases by one unless one boundary (s2==k0 or e2==k1) matches, and decreases by one if skipint intersects whole visible contig
if (scontigs[vc] <= skipint[0])
{
if (skipint[0] == scontigs[vc])
{
-
+ // skipint at start of contig
+ // shift the start of this contig
+ if (scontigs[vc + 1] > skipint[1])
+ {
+ scontigs[vc] = skipint[1];
+ vc+=2;
+ }
+ else
+ {
+ if (scontigs[vc+1]==skipint[1])
+ {
+ // remove the contig
+ t = new int[scontigs.length - 2];
+ if (vc > 0)
+ {
+ System.arraycopy(scontigs, 0, t, 0, vc - 1);
+ }
+ if (vc + 2 < t.length)
+ {
+ System.arraycopy(scontigs, vc + 2, t, vc, t.length
+ - vc + 2);
+ }
+ scontigs=t;
+ } else {
+ // truncate contig to before the skipint region
+ scontigs[vc+1] = skipint[0]-1;
+ vc+=2;
+ }
+ }
}
else
{
- int[] t = new int[scontigs.length + 2];
- System.arraycopy(scontigs, 0, t, 0, vc - 1);
- // scontigs[vc]; //
+ // scontig starts before start of skipint
+ if (scontigs[vc+1]<skipint[1]) {
+ // skipint truncates end of scontig
+ scontigs[vc+1] = skipint[0]-1;
+ vc+=2;
+ } else {
+ // divide region to new contigs
+ t = new int[scontigs.length + 2];
+ System.arraycopy(scontigs, 0, t, 0, vc +1);
+ t[vc+1] = skipint[0];
+ t[vc+2] = skipint[1];
+ System.arraycopy(scontigs, vc + 1, t, vc+3, scontigs.length-(vc+1));
+ scontigs=t;
+ vc+=4;
+ }
}
}
}
- skip.addElement(skipint);
+ skip.add(skipint);
skipint = null;
}
if (aa.equals("STOP"))
{
- aa = "X";
+ aa = starForStop ? "*" : "X";
}
resSize++;
}
protein.toString());
if (rf != 0)
{
- jalview.bin.Cache.log
- .debug("trimming contigs for incomplete terminal codon.");
+ if (jalview.bin.Cache.log!=null) {
+ jalview.bin.Cache.log.debug("trimming contigs for incomplete terminal codon.");
+ } else {
+ System.err.println("trimming contigs for incomplete terminal codon.");
+ }
// map and trim contigs to ORF region
vc = scontigs.length - 1;
lastnpos = vismapping.shift(lastnpos); // place npos in context of
private static void transferCodedFeatures(SequenceI dna, SequenceI pep,
MapList map, Hashtable featureTypes, Hashtable featureGroups)
{
- SequenceFeature[] sf = dna.getDatasetSequence().getSequenceFeatures();
+ SequenceFeature[] sf = (dna.getDatasetSequence()!=null ? dna.getDatasetSequence() : dna).getSequenceFeatures();
Boolean fgstate;
jalview.datamodel.DBRefEntry[] dnarefs = jalview.util.DBRefUtils
.selectRefs(dna.getDBRef(),
import java.util.*;
+import jalview.util.Format;
import jalview.datamodel.*;
/**
public static void completeConsensus(AlignmentAnnotation consensus,
Hashtable[] hconsensus, int iStart, int width,
boolean ignoreGapsInConsensusCalculation,
- boolean includeAllConsSymbols)
+ boolean includeAllConsSymbols, long nseq)
{
float tval, value;
if (consensus == null || consensus.annotations == null
// initialised properly
return;
}
+ String fmtstr="%3.1f";
+ int precision=2;
+ while (nseq>100) {
+ precision++;
+ nseq/=10;
+ }
+ if (precision>2)
+ {
+ fmtstr = "%"+(2+precision)+"."+precision+"f";
+ }
+ Format fmt = new Format(fmtstr);
+
for (int i = iStart; i < width; i++)
{
Hashtable hci;
tval = (vl[c] * 100f / profile[1][ignoreGapsInConsensusCalculation ? 1
: 0]);
mouseOver += ((p == 0) ? "" : "; ") + (char) ((int[]) ca[c])[0]
- + (char) ((int[]) ca[c])[1] + " " + ((int) tval) + "%";
+ + (char) ((int[]) ca[c])[1] + " " + fmt.form(tval) + "%";
p++;
}
}
else
{
- mouseOver += ((int) value + "%");
+ mouseOver += (fmt.form(value) + "%");
}
consensus.annotations[i] = new Annotation(maxRes, mouseOver, ' ',
value);
--- /dev/null
+package jalview.api;
+
+/**
+ * prototype abstract controller for a Jalview alignment view
+ * @author jimp
+ *
+ * All operations should return true if the view has changed as a result of the operation
+ * @param <ViewportI>
+ *
+ */
+public interface AlignViewControllerI<ViewportI>
+{
+
+ public boolean makeGroupsFromSelection();
+
+ public boolean createGroup();
+
+ public boolean unGroup();
+
+ public boolean deleteGroups();
+
+ public void setViewportAndAlignmentPanel(AlignViewportI viewport, AlignmentViewPanel alignPanel);
+
+}
*/
package jalview.api;
+import java.awt.Color;
import java.util.Hashtable;
import java.util.Map;
import jalview.datamodel.AlignmentAnnotation;
import jalview.datamodel.AlignmentI;
+import jalview.datamodel.AlignmentView;
+import jalview.datamodel.CigarArray;
import jalview.datamodel.ColumnSelection;
import jalview.datamodel.SequenceCollectionI;
+import jalview.datamodel.SequenceGroup;
import jalview.datamodel.SequenceI;
import jalview.schemes.ColourSchemeI;
void updateGroupAnnotationSettings(boolean applyGlobalSettings,
boolean preserveNewGroupSettings);
+ void setSequenceColour(SequenceI seq, Color col);
+
+ Color getSequenceColour(SequenceI seq);
+
+ void updateSequenceIdColours();
+
+ SequenceGroup getSelectionGroup();
+
+ SequenceI[] getSequenceSelection();
+
+ void clearSequenceColours();
+
+ CigarArray getViewAsCigars(boolean selectedRegionOnly);
+
+ AlignmentView getAlignmentView(boolean selectedOnly);
+
+ AlignmentView getAlignmentView(boolean selectedOnly, boolean markGroups);
+
+ String[] getViewAsString(boolean selectedRegionOnly);
+
+ void setSelectionGroup(SequenceGroup sg);
+
+ char getGapCharacter();
+
+
}
import jalview.commands.*;
import jalview.datamodel.*;
import jalview.schemes.*;
+import jalview.util.MessageManager;
import jalview.util.UrlLink;
import jalview.io.AppletFormatAdapter;
import jalview.io.SequenceAnnotationReport;
MenuItem unGroupMenuItem = new MenuItem();
+ MenuItem createGroupMenuItem = new MenuItem();
+
MenuItem nucleotideMenuItem = new MenuItem();
Menu colourMenu = new Menu();
CheckboxMenuItem displayNonconserved = new CheckboxMenuItem();
- Menu editMenu = new Menu("Edit");
+ Menu editMenu = new Menu(MessageManager.getString("action.edit"));
- MenuItem copy = new MenuItem("Copy (Jalview Only)");
+ MenuItem copy = new MenuItem(MessageManager.getString("label.jalview_copy"));
- MenuItem cut = new MenuItem("Cut (Jalview Only)");
+ MenuItem cut = new MenuItem(MessageManager.getString("label.jalview_cut"));
- MenuItem toUpper = new MenuItem("To Upper Case");
+ MenuItem toUpper = new MenuItem(MessageManager.getString("label.to_upper_case"));
- MenuItem toLower = new MenuItem("To Lower Case");
+ MenuItem toLower = new MenuItem(MessageManager.getString("label.to_lower_case"));
- MenuItem toggleCase = new MenuItem("Toggle Case");
+ MenuItem toggleCase = new MenuItem(MessageManager.getString("label.toggle_case"));
Menu outputmenu = new Menu();
MenuItem repGroup = new MenuItem();
- MenuItem sequenceName = new MenuItem("Edit Name/Description");
+ MenuItem sequenceName = new MenuItem(MessageManager.getString("label.edit_name_description"));
- MenuItem sequenceFeature = new MenuItem("Create Sequence Feature");
+ MenuItem sequenceFeature = new MenuItem(MessageManager.getString("label.create_sequence_feature"));
- MenuItem editSequence = new MenuItem("Edit Sequence");
+ MenuItem editSequence = new MenuItem(MessageManager.getString("label.edit_sequence"));
- MenuItem sequenceDetails = new MenuItem("Sequence Details ...");
+ MenuItem sequenceDetails = new MenuItem(MessageManager.getString("label.sequence_details") + "...");
- MenuItem selSeqDetails = new MenuItem("Sequence Details ...");
+ MenuItem selSeqDetails = new MenuItem(MessageManager.getString("label.sequence_details") + "...");
Sequence seq;
if (sg != null && sg.getSize() > 0)
{
- editGroupName.setLabel("Name: " + sg.getName());
+ editGroupName.setLabel(MessageManager.formatMessage("label.name_param", new String[]{sg.getName()}));
showText.setState(sg.getDisplayText());
showColourText.setState(sg.getColourText());
showBoxes.setState(sg.getDisplayBoxes());
displayNonconserved.setState(sg.getShowNonconserved());
if (!ap.av.getAlignment().getGroups().contains(sg))
{
+ menu1.setLabel(MessageManager.getString("action.edit_new_group"));
groupMenu.remove(unGroupMenuItem);
+ } else {
+ menu1.setLabel(MessageManager.getString("action.edit_group"));
+ groupMenu.remove(createGroupMenuItem);
}
}
if (links != null && links.size() > 0)
{
- Menu linkMenu = new Menu("Link");
+ Menu linkMenu = new Menu(MessageManager.getString("action.link"));
String link;
for (int i = 0; i < links.size(); i++)
{
if (seq != null)
{
seqMenu.setLabel(seq.getName());
- repGroup.setLabel("Represent Group with " + seq.getName());
+ repGroup.setLabel(MessageManager.formatMessage("label.represent_group_with", new String[]{seq.getName()}));
}
else
{
unGroupMenuItem_actionPerformed();
}
+ else if (source == createGroupMenuItem)
+ {
+ createGroupMenuItem_actionPerformed();
+ }
+
else if (source == sequenceName)
{
editName();
Frame frame = new Frame();
frame.add(cap);
jalview.bin.JalviewLite.addFrame(frame,
- "Selection output - " + e.getActionCommand(), 600, 500);
+ MessageManager.formatMessage("label.selection_output_command", new String[]{e.getActionCommand()}),600, 500);
// JBPNote: getSelectionAsNewSequence behaviour has changed - this method
// now returns a full copy of sequence data
// TODO consider using getSequenceSelection instead here
StringBuffer contents = new StringBuffer();
for (SequenceI seq : sequences)
{
- contents.append("<p><h2>Annotation for " + seq.getDisplayId(true)
- + "</h2></p><p>");
+ contents.append(MessageManager.formatMessage("label.annotation_for_displayid",new String[]{seq.getDisplayId(true)}));
new SequenceAnnotationReport(null)
.createSequenceAnnotationReport(
contents,
jalview.bin.JalviewLite.addFrame(frame, "Sequence Details for "
+ (sequences.length == 1 ? sequences[0].getDisplayId(true)
: "Selection"), 600, 500);
- cap.setText("<html>" + contents.toString() + "</html>");
+ cap.setText(MessageManager.formatMessage("label.html_content", new String[]{contents.toString()}));
}
void editName()
else
{
CutAndPasteTransfer cap = new CutAndPasteTransfer(true, ap.alignFrame);
- cap.setText("Paste your PDB file here.");
+ cap.setText(MessageManager.getString("label.paste_pdb_file"));
cap.setPDBImport(seq);
Frame frame = new Frame();
frame.add(cap);
jalview.bin.JalviewLite.addFrame(frame,
- "Paste PDB file for sequence " + seq.getName(), 400, 300);
+ MessageManager.formatMessage("label.paste_pdb_file_for_sequence", new String[]{seq.getName()}), 400, 300);
}
}
private void jbInit() throws Exception
{
- groupMenu.setLabel("Group");
- groupMenu.setLabel("Selection");
+ groupMenu.setLabel(MessageManager.getString("label.selection"));
sequenceFeature.addActionListener(this);
editGroupName.addActionListener(this);
- unGroupMenuItem.setLabel("Remove Group");
+ unGroupMenuItem.setLabel(MessageManager.getString("action.remove_group"));
unGroupMenuItem.addActionListener(this);
- nucleotideMenuItem.setLabel("Nucleotide");
+ createGroupMenuItem.setLabel(MessageManager.getString("action.create_group"));
+ createGroupMenuItem.addActionListener(this);
+
+ nucleotideMenuItem.setLabel(MessageManager.getString("label.nucleotide"));
nucleotideMenuItem.addActionListener(this);
conservationMenuItem.addItemListener(this);
abovePIDColour.addItemListener(this);
- colourMenu.setLabel("Group Colour");
- showBoxes.setLabel("Boxes");
+ colourMenu.setLabel(MessageManager.getString("label.group_colour"));
+ showBoxes.setLabel(MessageManager.getString("label.boxes"));
showBoxes.setState(true);
showBoxes.addItemListener(this);
sequenceName.addActionListener(this);
sequenceDetails.addActionListener(this);
selSeqDetails.addActionListener(this);
- displayNonconserved.setLabel("Show Nonconserved");
+ displayNonconserved.setLabel(MessageManager.getString("label.show_non_conversed"));
displayNonconserved.setState(false);
displayNonconserved.addItemListener(this);
- showText.setLabel("Text");
+ showText.setLabel(MessageManager.getString("label.text"));
showText.addItemListener(this);
- showColourText.setLabel("Colour Text");
+ showColourText.setLabel(MessageManager.getString("label.colour_text"));
showColourText.addItemListener(this);
- outputmenu.setLabel("Output to Textbox...");
- seqMenu.setLabel("Sequence");
- pdb.setLabel("View PDB Structure");
- hideSeqs.setLabel("Hide Sequences");
- repGroup.setLabel("Represent Group with");
- revealAll.setLabel("Reveal All");
- revealSeq.setLabel("Reveal Sequences");
- menu1.setLabel("Group");
+ outputmenu.setLabel(MessageManager.getString("label.out_to_textbox"));
+ seqMenu.setLabel(MessageManager.getString("label.sequence"));
+ pdb.setLabel(MessageManager.getString("label.view_pdb_structure"));
+ hideSeqs.setLabel(MessageManager.getString("action.hide_sequences"));
+ repGroup.setLabel(MessageManager.getString("label.represent_group_with"));
+ revealAll.setLabel(MessageManager.getString("action.reveal_all"));
+ revealSeq.setLabel(MessageManager.getString("action.reveal_sequences"));
+ menu1.setLabel(MessageManager.getString("label.group"));
add(groupMenu);
this.add(seqMenu);
this.add(hideSeqs);
this.add(revealSeq);
this.add(revealAll);
// groupMenu.add(selSeqDetails);
- groupMenu.add(editGroupName);
groupMenu.add(editMenu);
groupMenu.add(outputmenu);
groupMenu.add(sequenceFeature);
+ groupMenu.add(createGroupMenuItem);
+ groupMenu.add(unGroupMenuItem);
groupMenu.add(menu1);
colourMenu.add(noColourmenuItem);
seqMenu.add(pdb);
}
seqMenu.add(repGroup);
- menu1.add(unGroupMenuItem);
+ menu1.add(editGroupName);
menu1.add(colourMenu);
menu1.add(showBoxes);
menu1.add(showText);
ap.paintAlignment(true);
}
+ void createGroupMenuItem_actionPerformed()
+ {
+ getGroup(); // implicitly create group
+ refresh();
+ }
+
public void showColourText_itemStateChanged()
{
getGroup().setColourText(showColourText.getState());
import jalview.analysis.AlignmentSorter;
import jalview.analysis.Conservation;
+import jalview.api.AlignViewControllerI;
import jalview.api.SequenceStructureBinding;
import jalview.bin.JalviewLite;
import jalview.commands.CommandI;
import jalview.schemes.TurnColourScheme;
import jalview.schemes.ZappoColourScheme;
import jalview.structure.StructureSelectionManager;
+import jalview.util.MessageManager;
import java.awt.BorderLayout;
import java.awt.Canvas;
public class AlignFrame extends EmbmenuFrame implements ActionListener,
ItemListener, KeyListener
{
+ public AlignViewControllerI avc;
public AlignmentPanel alignPanel;
public AlignViewport viewport;
viewport = new AlignViewport(al, applet);
alignPanel = new AlignmentPanel(this, viewport);
-
+ avc = new jalview.controller.AlignViewController(viewport, alignPanel);
viewport.updateConservation(alignPanel);
viewport.updateConsensus(alignPanel);
viewport.featureSettings.refreshTable();
}
alignPanel.paintAlignment(true);
- statusBar.setText("Successfully added features to alignment.");
+ statusBar.setText(MessageManager.getString("label.successfully_added_features_alignment"));
}
return featuresFile;
}
case KeyEvent.VK_F2:
viewport.cursorMode = !viewport.cursorMode;
- statusBar.setText("Keyboard editing mode is "
- + (viewport.cursorMode ? "on" : "off"));
+ statusBar.setText(MessageManager.formatMessage("label.keyboard_editing_mode", new String[]{(viewport.cursorMode ? "on" : "off")}));
if (viewport.cursorMode)
{
alignPanel.seqPanel.seqCanvas.cursorX = viewport.startRes;
}
break;
+ case KeyEvent.VK_G:
+ if (evt.isControlDown())
+ {
+ if (evt.isShiftDown())
+ {
+ this.unGroup_actionPerformed();
+ }
+ else
+ {
+ this.createGroup_actionPerformed();
+ }
+ }
+ break;
+
case KeyEvent.VK_U:
if (evt.isControlDown())
{
cap.setText(contents.toString());
Frame frame = new Frame();
frame.add(cap);
- jalview.bin.JalviewLite.addFrame(frame, "Alignment Properties: "
- + getTitle(), 400, 250);
+ jalview.bin.JalviewLite.addFrame(frame, MessageManager.formatMessage("label.alignment_properties", new String[]{getTitle()}),
+ 400, 250);
}
else if (source == overviewMenuItem)
{
CutAndPasteTransfer cap = new CutAndPasteTransfer(true, this);
Frame frame = new Frame();
frame.add(cap);
- jalview.bin.JalviewLite.addFrame(frame, "Cut & Paste Input", 500, 500);
+ jalview.bin.JalviewLite.addFrame(frame, MessageManager.getString("label.input_cut_paste"), 500, 500);
}
protected void outputText_actionPerformed(ActionEvent e)
Frame frame = new Frame();
frame.add(cap);
jalview.bin.JalviewLite.addFrame(frame,
- "Alignment output - " + e.getActionCommand(), 600, 500);
+ MessageManager.formatMessage("label.alignment_output_command", new String[]{e.getActionCommand()}),600, 500);
cap.setText(new AppletFormatAdapter().formatSequences(
e.getActionCommand(), viewport.getAlignment(),
viewport.showJVSuffix));
public void loadAnnotations()
{
CutAndPasteTransfer cap = new CutAndPasteTransfer(true, this);
- cap.setText("Paste your features / annotations / T-coffee score file here.");
+ cap.setText(MessageManager.getString("label.paste_features_annotations_Tcoffee_here"));
cap.setAnnotationImport();
Frame frame = new Frame();
frame.add(cap);
- jalview.bin.JalviewLite.addFrame(frame, "Paste Annotations ", 400, 300);
+ jalview.bin.JalviewLite.addFrame(frame, MessageManager.getString("action.paste_annotations"), 400, 300);
}
CutAndPasteTransfer cap = new CutAndPasteTransfer(false, this);
Frame frame = new Frame();
frame.add(cap);
- jalview.bin.JalviewLite.addFrame(frame, "Annotations", 600, 500);
+ jalview.bin.JalviewLite.addFrame(frame, MessageManager.getString("label.annotations"), 600, 500);
cap.setText(annotation);
}
}
Frame frame = new Frame();
frame.add(cap);
- jalview.bin.JalviewLite.addFrame(frame, "Features", 600, 500);
+ jalview.bin.JalviewLite.addFrame(frame, MessageManager.getString("label.features"), 600, 500);
cap.setText(features);
}
else
{
undoMenuItem.setEnabled(true);
CommandI command = (CommandI) viewport.historyList.peek();
- undoMenuItem.setLabel("Undo " + command.getDescription());
+ undoMenuItem.setLabel(MessageManager.formatMessage("label.undo_command", new String[]{command.getDescription()}));
}
else
{
undoMenuItem.setEnabled(false);
- undoMenuItem.setLabel("Undo");
+ undoMenuItem.setLabel(MessageManager.getString("action.undo"));
}
if (viewport.redoList.size() > 0)
redoMenuItem.setEnabled(true);
CommandI command = (CommandI) viewport.redoList.peek();
- redoMenuItem.setLabel("Redo " + command.getDescription());
+ redoMenuItem.setLabel(MessageManager.formatMessage("label.redo_command", new String[]{command.getDescription()}));
}
else
{
redoMenuItem.setEnabled(false);
- redoMenuItem.setLabel("Redo");
+ redoMenuItem.setLabel(MessageManager.getString("action.redo"));
}
}
protected void makeGrpsFromSelection_actionPerformed()
{
- if (viewport.getSelectionGroup() != null)
- {
- SequenceGroup[] gps = jalview.analysis.Grouping.makeGroupsFrom(
- viewport.getSequenceSelection(),
- viewport.getAlignmentView(true).getSequenceStrings(
- viewport.getGapCharacter()), viewport.getAlignment()
- .getGroups());
- viewport.getAlignment().deleteAllGroups();
- viewport.sequenceColours = null;
- viewport.setSelectionGroup(null);
- // set view properties for each group
- for (int g = 0; g < gps.length; g++)
- {
- // gps[g].setShowunconserved(viewport.getShowUnconserved());
- gps[g].setshowSequenceLogo(viewport.isShowSequenceLogo());
- viewport.getAlignment().addGroup(gps[g]);
- Color col = new Color((int) (Math.random() * 255),
- (int) (Math.random() * 255), (int) (Math.random() * 255));
- col = col.brighter();
- for (SequenceI sq : gps[g].getSequences(null))
- viewport.setSequenceColour(sq, col);
- }
+ if (avc.makeGroupsFromSelection()) {
PaintRefresher.Refresh(this, viewport.getSequenceSetId());
alignPanel.updateAnnotation();
alignPanel.paintAlignment(true);
}
}
+ protected void createGroup_actionPerformed()
+ {
+ avc.createGroup();
+ }
+ protected void unGroup_actionPerformed()
+ {
+ if (avc.unGroup())
+ {
+ alignPanel.alignmentChanged();
+ }
+ }
protected void deleteGroups_actionPerformed()
{
- viewport.getAlignment().deleteAllGroups();
- viewport.sequenceColours = null;
- viewport.setSelectionGroup(null);
-
- alignPanel.paintAlignment(true);
+ if (avc.deleteGroups())
+ {
+ alignPanel.alignmentChanged();
+ }
}
public void selectAllSequenceMenuItem_actionPerformed()
viewport.getSelectionGroup());
}
- statusBar.setText("Removed " + trimRegion.getSize() + " columns.");
-
+ statusBar.setText(MessageManager.formatMessage("label.removed_columns", new String[]{Integer.valueOf(trimRegion.getSize()).toString()}));
addHistoryItem(trimRegion);
for (SequenceGroup sg : viewport.getAlignment().getGroups())
addHistoryItem(removeGapCols);
- statusBar.setText("Removed " + removeGapCols.getSize()
- + " empty columns.");
+ statusBar.setText(MessageManager.formatMessage("label.removed_empty_columns", new String[]{Integer.valueOf(removeGapCols.getSize()).toString()}));
// This is to maintain viewport position on first residue
// of first sequence
OverviewPanel overview = new OverviewPanel(alignPanel);
frame.add(overview);
// +50 must allow for applet frame window
- jalview.bin.JalviewLite.addFrame(frame, "Overview " + this.getTitle(),
+ jalview.bin.JalviewLite.addFrame(frame, MessageManager.formatMessage("label.overview_params", new String[]{this.getTitle()}),
overview.getPreferredSize().width,
overview.getPreferredSize().height + 50);
{
Frame frame = new Frame();
frame.add(new PairwiseAlignPanel(alignPanel));
- jalview.bin.JalviewLite.addFrame(frame, "Pairwise Alignment", 600,
+ jalview.bin.JalviewLite.addFrame(frame, MessageManager.getString("action.pairwise_alignment"), 600,
500);
}
}
void loadTree_actionPerformed()
{
CutAndPasteTransfer cap = new CutAndPasteTransfer(true, this);
- cap.setText("Paste your Newick tree file here.");
+ cap.setText(MessageManager.getString("label.paste_newick_tree_file"));
cap.setTreeImport();
Frame frame = new Frame();
frame.add(cap);
- jalview.bin.JalviewLite.addFrame(frame, "Paste Newick file ", 400, 300);
+ jalview.bin.JalviewLite.addFrame(frame, MessageManager.getString("label.paste_newick_file"), 400, 300);
}
public void loadTree(jalview.io.NewickFile tree, String treeFile)
{
- TreePanel tp = new TreePanel(alignPanel, treeFile, "From File - ", tree);
+ TreePanel tp = new TreePanel(alignPanel, treeFile, MessageManager.getString("label.load_tree_from_file"), tree);
jalview.bin.JalviewLite.addFrame(tp, treeFile, 600, 500);
addTreeMenuItem(tp, treeFile);
}
.sortByTree(viewport.getAlignment(), treePanel.getTree());
// addHistoryItem(new HistoryItem("Sort", viewport.alignment,
// HistoryItem.SORT));
- addHistoryItem(new OrderCommand("Order by " + title, oldOrder,
+ addHistoryItem(new OrderCommand(MessageManager.formatMessage("label.order_by_params", new String[]{title}), oldOrder,
viewport.getAlignment()));
alignPanel.paintAlignment(true);
}
// TODO: update this text for each release or centrally store it for
// lite and application
g.setFont(new Font("Helvetica", Font.BOLD, 14));
- g.drawString("JalviewLite - Release " + version, x, y += fh);
+ g.drawString(MessageManager.formatMessage("label.jalviewLite_release", new String[]{version}), x, y += fh);
g.setFont(new Font("Helvetica", Font.BOLD, 12));
- g.drawString("Build date: " + builddate, x, y += fh);
+ g.drawString(MessageManager.formatMessage("label.jaview_build_date", new String[]{builddate}), x, y += fh);
g.setFont(new Font("Helvetica", Font.PLAIN, 12));
g.drawString(
- "Authors: Jim Procter, Andrew Waterhouse, Jan Engelhardt, Lauren Lui,",
+ MessageManager.getString("label.jalview_authors_1"),
x, y += fh * 1.5);
- g.drawString("Michele Clamp, James Cuff, Steve Searle, David Martin & Geoff Barton.", x + 50, y += fh+8);
+ g.drawString(MessageManager.getString("label.jalview_authors_2"), x + 50, y += fh+8);
g.drawString(
- "Development managed by The Barton Group, University of Dundee, Scotland, UK.",
+ MessageManager.getString("label.jalview_dev_managers"),
x, y += fh);
g.drawString(
- "For help, see the FAQ at www.jalview.org and/or join the jalview-discuss@jalview.org mailing list",
+ MessageManager.getString("label.jalview_distribution_lists"),
x, y += fh);
- g.drawString("If you use Jalview, please cite:", x, y += fh + 8);
+ g.drawString(MessageManager.getString("label.jalview_please_cite"), x, y += fh + 8);
g.drawString(
- "Waterhouse, A.M., Procter, J.B., Martin, D.M.A, Clamp, M. and Barton, G. J. (2009)",
+ MessageManager.getString("label.jalview_cite_1_authors"),
x, y += fh);
g.drawString(
- "Jalview Version 2 - a multiple sequence alignment editor and analysis workbench",
+ MessageManager.getString("label.jalview_cite_1_title"),
x, y += fh);
- g.drawString("Bioinformatics doi: 10.1093/bioinformatics/btp033",
+ g.drawString(MessageManager.getString("label.jalview_cite_1_ref"),
x, y += fh);
}
}
Frame frame = new Frame();
frame.add(new AboutPanel(JalviewLite.getVersion(), JalviewLite
.getBuildDate()));
- jalview.bin.JalviewLite.addFrame(frame, "Jalview", 580, 220);
+ jalview.bin.JalviewLite.addFrame(frame, MessageManager.getString("label.jalview"), 580, 220);
}
MenuBar alignFrameMenuBar = new MenuBar();
- Menu fileMenu = new Menu("File");
+ Menu fileMenu = new Menu(MessageManager.getString("action.file"));
- MenuItem loadApplication = new MenuItem("View in Full Application");
+ MenuItem loadApplication = new MenuItem(MessageManager.getString("label.view_full_application"));
- MenuItem loadTree = new MenuItem("Load Associated Tree ...");
+ MenuItem loadTree = new MenuItem(MessageManager.getString("label.load_associated_tree"));
- MenuItem loadAnnotations = new MenuItem("Load Features/Annotations ...");
+ MenuItem loadAnnotations = new MenuItem(MessageManager.getString("label.load_features_annotations"));
- MenuItem outputFeatures = new MenuItem("Export Features ...");
+ MenuItem outputFeatures = new MenuItem(MessageManager.getString("label.export_features"));
- MenuItem outputAnnotations = new MenuItem("Export Annotations ...");
+ MenuItem outputAnnotations = new MenuItem(MessageManager.getString("label.export_annotations"));
- MenuItem closeMenuItem = new MenuItem("Close");
+ MenuItem closeMenuItem = new MenuItem(MessageManager.getString("action.close"));
- Menu editMenu = new Menu("Edit");
+ Menu editMenu = new Menu(MessageManager.getString("action.edit"));
- Menu viewMenu = new Menu("View");
+ Menu viewMenu = new Menu(MessageManager.getString("action.view"));
- Menu colourMenu = new Menu("Colour");
+ Menu colourMenu = new Menu(MessageManager.getString("action.colour"));
- Menu calculateMenu = new Menu("Calculate");
+ Menu calculateMenu = new Menu(MessageManager.getString("action.calculate"));
- MenuItem selectAllSequenceMenuItem = new MenuItem("Select all");
+ MenuItem selectAllSequenceMenuItem = new MenuItem(MessageManager.getString("action.select_all"));
- MenuItem deselectAllSequenceMenuItem = new MenuItem("Deselect All");
+ MenuItem deselectAllSequenceMenuItem = new MenuItem(MessageManager.getString("action.deselect_all"));
- MenuItem invertSequenceMenuItem = new MenuItem("Invert Selection");
+ MenuItem invertSequenceMenuItem = new MenuItem(MessageManager.getString("action.invert_selection"));
MenuItem remove2LeftMenuItem = new MenuItem();
CheckboxMenuItem displayNonconservedMenuItem = new CheckboxMenuItem();
- MenuItem alProperties = new MenuItem("Alignment Properties...");
+ MenuItem alProperties = new MenuItem(MessageManager.getString("label.alignment_props"));
MenuItem overviewMenuItem = new MenuItem();
MenuItem grpsFromSelection = new MenuItem();
+ MenuItem createGroup = new MenuItem();
+
+ MenuItem unGroup = new MenuItem();
+
MenuItem delete = new MenuItem();
MenuItem copy = new MenuItem();
selectAllSequenceMenuItem.addActionListener(this);
deselectAllSequenceMenuItem.addActionListener(this);
invertSequenceMenuItem.addActionListener(this);
- remove2LeftMenuItem.setLabel("Remove Left");
+ remove2LeftMenuItem.setLabel(MessageManager.getString("action.remove_left"));
remove2LeftMenuItem.addActionListener(this);
- remove2RightMenuItem.setLabel("Remove Right");
+ remove2RightMenuItem.setLabel(MessageManager.getString("action.remove_right"));
remove2RightMenuItem.addActionListener(this);
- removeGappedColumnMenuItem.setLabel("Remove Empty Columns");
+ removeGappedColumnMenuItem.setLabel(MessageManager.getString("action.remove_empty_columns"));
removeGappedColumnMenuItem.addActionListener(this);
- removeAllGapsMenuItem.setLabel("Remove All Gaps");
+ removeAllGapsMenuItem.setLabel(MessageManager.getString("action.remove_all_gaps"));
removeAllGapsMenuItem.addActionListener(this);
- viewBoxesMenuItem.setLabel("Boxes");
+ viewBoxesMenuItem.setLabel(MessageManager.getString("action.boxes"));
viewBoxesMenuItem.setState(true);
viewBoxesMenuItem.addItemListener(this);
- viewTextMenuItem.setLabel("Text");
+ viewTextMenuItem.setLabel(MessageManager.getString("action.text"));
viewTextMenuItem.setState(true);
viewTextMenuItem.addItemListener(this);
- sortPairwiseMenuItem.setLabel("by Pairwise Identity");
+ sortPairwiseMenuItem.setLabel(MessageManager.getString("action.by_pairwise_id"));
sortPairwiseMenuItem.addActionListener(this);
- sortIDMenuItem.setLabel("by ID");
+ sortIDMenuItem.setLabel(MessageManager.getString("action.by_id"));
sortIDMenuItem.addActionListener(this);
- sortLengthMenuItem.setLabel("by Length");
+ sortLengthMenuItem.setLabel(MessageManager.getString("action.by_length"));
sortLengthMenuItem.addActionListener(this);
- sortGroupMenuItem.setLabel("by Group");
+ sortGroupMenuItem.setLabel(MessageManager.getString("action.by_group"));
sortGroupMenuItem.addActionListener(this);
- removeRedundancyMenuItem.setLabel("Remove Redundancy...");
+ removeRedundancyMenuItem.setLabel(MessageManager.getString("action.remove_redundancy"));
removeRedundancyMenuItem.addActionListener(this);
- pairwiseAlignmentMenuItem.setLabel("Pairwise Alignments...");
+ pairwiseAlignmentMenuItem.setLabel(MessageManager.getString("action.pairwise_alignment"));
pairwiseAlignmentMenuItem.addActionListener(this);
- PCAMenuItem.setLabel("Principal Component Analysis");
+ PCAMenuItem.setLabel(MessageManager.getString("label.principal_component_analysis"));
PCAMenuItem.addActionListener(this);
averageDistanceTreeMenuItem
- .setLabel("Average Distance Using % Identity");
+ .setLabel(MessageManager.getString("label.average_distance_identity"));
averageDistanceTreeMenuItem.addActionListener(this);
- neighbourTreeMenuItem.setLabel("Neighbour Joining Using % Identity");
+ neighbourTreeMenuItem.setLabel(MessageManager.getString("label.neighbour_joining_identity"));
neighbourTreeMenuItem.addActionListener(this);
statusBar.setBackground(Color.white);
statusBar.setFont(new java.awt.Font("Verdana", 0, 11));
- statusBar.setText("Status bar");
- outputTextboxMenu.setLabel("Output to Textbox");
- clustalColour.setLabel("Clustalx");
+ statusBar.setText(MessageManager.getString("label.status_bar"));
+ outputTextboxMenu.setLabel(MessageManager.getString("label.out_to_textbox"));
+ clustalColour.setLabel(MessageManager.getString("label.clustalx"));
clustalColour.addActionListener(this);
- zappoColour.setLabel("Zappo");
+ zappoColour.setLabel(MessageManager.getString("label.zappo"));
zappoColour.addActionListener(this);
- taylorColour.setLabel("Taylor");
+ taylorColour.setLabel(MessageManager.getString("label.taylor"));
taylorColour.addActionListener(this);
- hydrophobicityColour.setLabel("Hydrophobicity");
+ hydrophobicityColour.setLabel(MessageManager.getString("label.hydrophobicity"));
hydrophobicityColour.addActionListener(this);
- helixColour.setLabel("Helix Propensity");
+ helixColour.setLabel(MessageManager.getString("label.helix_propensity"));
helixColour.addActionListener(this);
- strandColour.setLabel("Strand Propensity");
+ strandColour.setLabel(MessageManager.getString("label.strand_propensity"));
strandColour.addActionListener(this);
- turnColour.setLabel("Turn Propensity");
+ turnColour.setLabel(MessageManager.getString("label.turn_propensity"));
turnColour.addActionListener(this);
- buriedColour.setLabel("Buried Index");
+ buriedColour.setLabel(MessageManager.getString("label.buried_index"));
buriedColour.addActionListener(this);
- purinePyrimidineColour.setLabel("Purine/Pyrimidine");
+ purinePyrimidineColour.setLabel(MessageManager.getString("label.purine_pyrimidine"));
purinePyrimidineColour.addActionListener(this);
- RNAHelixColour.setLabel("by RNA Helices");
+ RNAHelixColour.setLabel(MessageManager.getString("action.by_rna_helixes"));
RNAHelixColour.addActionListener(this);
- userDefinedColour.setLabel("User Defined...");
+ userDefinedColour.setLabel(MessageManager.getString("action.user_defined"));
userDefinedColour.addActionListener(this);
- PIDColour.setLabel("Percentage Identity");
+ PIDColour.setLabel(MessageManager.getString("label.percentage_identity"));
PIDColour.addActionListener(this);
- BLOSUM62Colour.setLabel("BLOSUM62 Score");
+ BLOSUM62Colour.setLabel(MessageManager.getString("label.blosum62_score"));
BLOSUM62Colour.addActionListener(this);
- tcoffeeColour.setLabel("T-Coffee Scores");
+ tcoffeeColour.setLabel(MessageManager.getString("label.tcoffee_scores"));
tcoffeeColour.setEnabled(false); // it will enabled only if a score file is
// provided
tcoffeeColour.addActionListener(this);
avDistanceTreeBlosumMenuItem
- .setLabel("Average Distance Using BLOSUM62");
+ .setLabel(MessageManager.getString("label.average_distance_bloslum62"));
avDistanceTreeBlosumMenuItem.addActionListener(this);
- njTreeBlosumMenuItem.setLabel("Neighbour Joining Using BLOSUM62");
+ njTreeBlosumMenuItem.setLabel(MessageManager.getString("label.neighbour_blosum62"));
njTreeBlosumMenuItem.addActionListener(this);
- annotationPanelMenuItem.setLabel("Show Annotations");
+ annotationPanelMenuItem.setLabel(MessageManager.getString("label.show_annotations"));
annotationPanelMenuItem.addItemListener(this);
- colourTextMenuItem.setLabel("Colour Text");
+ colourTextMenuItem.setLabel(MessageManager.getString("label.colour_text"));
colourTextMenuItem.addItemListener(this);
- displayNonconservedMenuItem.setLabel("Show nonconserved");
+ displayNonconservedMenuItem.setLabel(MessageManager.getString("label.show_non_conversed"));
displayNonconservedMenuItem.addItemListener(this);
alProperties.addActionListener(this);
- overviewMenuItem.setLabel("Overview Window");
+ overviewMenuItem.setLabel(MessageManager.getString("label.overview_window"));
overviewMenuItem.addActionListener(this);
undoMenuItem.setEnabled(false);
- undoMenuItem.setLabel("Undo");
+ undoMenuItem.setLabel(MessageManager.getString("action.undo"));
undoMenuItem.addActionListener(this);
redoMenuItem.setEnabled(false);
- redoMenuItem.setLabel("Redo");
+ redoMenuItem.setLabel(MessageManager.getString("action.redo"));
redoMenuItem.addActionListener(this);
- conservationMenuItem.setLabel("by Conservation");
+ conservationMenuItem.setLabel(MessageManager.getString("action.by_conservation"));
conservationMenuItem.addItemListener(this);
- noColourmenuItem.setLabel("None");
+ noColourmenuItem.setLabel(MessageManager.getString("label.none"));
noColourmenuItem.addActionListener(this);
- wrapMenuItem.setLabel("Wrap");
+ wrapMenuItem.setLabel(MessageManager.getString("action.wrap"));
wrapMenuItem.addItemListener(this);
- renderGapsMenuItem.setLabel("Show Gaps");
+ renderGapsMenuItem.setLabel(MessageManager.getString("action.show_gaps"));
renderGapsMenuItem.setState(true);
renderGapsMenuItem.addItemListener(this);
- findMenuItem.setLabel("Find...");
+ findMenuItem.setLabel(MessageManager.getString("action.find"));
findMenuItem.addActionListener(this);
- abovePIDThreshold.setLabel("Above Identity Threshold");
+ abovePIDThreshold.setLabel(MessageManager.getString("label.above_identity_threshold"));
abovePIDThreshold.addItemListener(this);
- nucleotideColour.setLabel("Nucleotide");
+ nucleotideColour.setLabel(MessageManager.getString("label.nucleotide"));
nucleotideColour.addActionListener(this);
- deleteGroups.setLabel("Undefine Groups");
+ deleteGroups.setLabel(MessageManager.getString("action.undefine_groups"));
deleteGroups.addActionListener(this);
- grpsFromSelection.setLabel("Make Groups for selection");
+ grpsFromSelection.setLabel(MessageManager.getString("action.make_groups_selection"));
grpsFromSelection.addActionListener(this);
- copy.setLabel("Copy");
+ createGroup.setLabel(MessageManager.getString("action.create_group"));
+ unGroup.setLabel(MessageManager.getString("action.remove_group"));
+ copy.setLabel(MessageManager.getString("action.copy"));
copy.addActionListener(this);
- cut.setLabel("Cut");
+ cut.setLabel(MessageManager.getString("action.cut"));
cut.addActionListener(this);
- delete.setLabel("Delete");
+ delete.setLabel(MessageManager.getString("action.delete"));
delete.addActionListener(this);
- pasteMenu.setLabel("Paste");
- pasteNew.setLabel("To New Alignment");
+ pasteMenu.setLabel(MessageManager.getString("action.paste"));
+ pasteNew.setLabel(MessageManager.getString("label.to_new_alignment"));
pasteNew.addActionListener(this);
- pasteThis.setLabel("Add To This Alignment");
+ pasteThis.setLabel(MessageManager.getString("label.to_this_alignment"));
pasteThis.addActionListener(this);
- applyToAllGroups.setLabel("Apply Colour To All Groups");
+ applyToAllGroups.setLabel(MessageManager.getString("label.apply_colour_to_all_groups"));
applyToAllGroups.setState(true);
applyToAllGroups.addItemListener(this);
- font.setLabel("Font...");
+ font.setLabel(MessageManager.getString("action.font"));
font.addActionListener(this);
- scaleAbove.setLabel("Scale Above");
+ scaleAbove.setLabel(MessageManager.getString("action.scale_above"));
scaleAbove.setState(true);
scaleAbove.setEnabled(false);
scaleAbove.addItemListener(this);
scaleLeft.setEnabled(false);
scaleLeft.setState(true);
- scaleLeft.setLabel("Scale Left");
+ scaleLeft.setLabel(MessageManager.getString("action.scale_left"));
scaleLeft.addItemListener(this);
scaleRight.setEnabled(false);
scaleRight.setState(true);
- scaleRight.setLabel("Scale Right");
+ scaleRight.setLabel(MessageManager.getString("action.scale_right"));
scaleRight.addItemListener(this);
- modifyPID.setLabel("Modify Identity Threshold...");
+ modifyPID.setLabel(MessageManager.getString("label.modify_identity_thereshold"));
modifyPID.addActionListener(this);
- modifyConservation.setLabel("Modify Conservation Threshold...");
+ modifyConservation.setLabel(MessageManager.getString("label.modify_conservation_thereshold"));
modifyConservation.addActionListener(this);
- sortByTreeMenu.setLabel("By Tree Order");
- sort.setLabel("Sort");
- calculate.setLabel("Calculate Tree");
+ sortByTreeMenu.setLabel(MessageManager.getString("action.by_tree_order"));
+ sort.setLabel(MessageManager.getString("action.sort"));
+ calculate.setLabel(MessageManager.getString("action.calculate_tree"));
autoCalculate.addItemListener(this);
sortByTree.addItemListener(this);
- inputText.setLabel("Input from textbox");
+ inputText.setLabel(MessageManager.getString("label.input_from_textbox"));
inputText.addActionListener(this);
- centreColumnLabelFlag.setLabel("Centre column labels");
+ centreColumnLabelFlag.setLabel(MessageManager.getString("label.centre_column_labels"));
centreColumnLabelFlag.addItemListener(this);
- followMouseOverFlag.setLabel("Automatic Scrolling");
+ followMouseOverFlag.setLabel(MessageManager.getString("label.automatic_scrolling"));
followMouseOverFlag.addItemListener(this);
- helpMenu.setLabel("Help");
- documentation.setLabel("Documentation");
+ helpMenu.setLabel(MessageManager.getString("action.help"));
+ documentation.setLabel(MessageManager.getString("label.documentation"));
documentation.addActionListener(this);
- about.setLabel("About...");
+ about.setLabel(MessageManager.getString("label.about"));
about.addActionListener(this);
seqLimits.setState(true);
- seqLimits.setLabel("Show Sequence Limits");
+ seqLimits.setLabel(MessageManager.getString("label.show_sequence_limits"));
seqLimits.addItemListener(this);
- featureSettings.setLabel("Feature Settings...");
+ featureSettings.setLabel(MessageManager.getString("label.feature_settings"));
featureSettings.addActionListener(this);
- sequenceFeatures.setLabel("Sequence Features");
+ sequenceFeatures.setLabel(MessageManager.getString("label.sequence_features"));
sequenceFeatures.addItemListener(this);
sequenceFeatures.setState(false);
- annotationColour.setLabel("by Annotation...");
+ annotationColour.setLabel(MessageManager.getString("action.by_annotation"));
annotationColour.addActionListener(this);
- invertSequenceMenuItem.setLabel("Invert Sequence Selection");
- invertColSel.setLabel("Invert Column Selection");
- menu1.setLabel("Show");
- showColumns.setLabel("All Columns ");
- showSeqs.setLabel("All Sequences");
- menu2.setLabel("Hide");
- hideColumns.setLabel("Selected Columns");
- hideSequences.setLabel("Selected Sequences");
- hideAllButSelection.setLabel("All but Selected Region (Shift+Ctrl+H)");
- hideAllSelection.setLabel("Selected Region");
- showAllHidden.setLabel("All Sequences and Columns");
- showGroupConsensus.setLabel("Group Consensus");
- showGroupConservation.setLabel("Group Conservation");
- showConsensusHistogram.setLabel("Show Consensus Histogram");
- showSequenceLogo.setLabel("Show Consensus Logo");
- normSequenceLogo.setLabel("Normalise Consensus Logo");
- applyAutoAnnotationSettings.setLabel("Apply to all groups");
+ invertSequenceMenuItem.setLabel(MessageManager.getString("action.invert_sequence_selection"));
+ invertColSel.setLabel(MessageManager.getString("action.invert_column_selection"));
+ menu1.setLabel(MessageManager.getString("action.show"));
+ showColumns.setLabel(MessageManager.getString("label.all_columns"));
+ showSeqs.setLabel(MessageManager.getString("label.all_sequences"));
+ menu2.setLabel(MessageManager.getString("aciton.hide"));
+ hideColumns.setLabel(MessageManager.getString("label.selected_columns"));
+ hideSequences.setLabel(MessageManager.getString("label.selected_sequences"));
+ hideAllButSelection.setLabel(MessageManager.getString("label.all_but_selected_region"));
+ hideAllSelection.setLabel(MessageManager.getString("label.selected_region"));
+ showAllHidden.setLabel(MessageManager.getString("label.all_sequences_columns"));
+ showGroupConsensus.setLabel(MessageManager.getString("label.group_consensus"));
+ showGroupConservation.setLabel(MessageManager.getString("label.group_conservation"));
+ showConsensusHistogram.setLabel(MessageManager.getString("label.show_consensus_histogram"));
+ showSequenceLogo.setLabel(MessageManager.getString("label.show_consensus_logo"));
+ normSequenceLogo.setLabel(MessageManager.getString("label.norm_consensus_logo"));
+ applyAutoAnnotationSettings.setLabel(MessageManager.getString("label.apply_all_groups"));
applyAutoAnnotationSettings.setState(true);
- autoAnnMenu.setLabel("Autocalculated Annotation");
+ autoAnnMenu.setLabel(MessageManager.getString("label.autocalculated_annotation"));
invertColSel.addActionListener(this);
showColumns.addActionListener(this);
normSequenceLogo.addItemListener(this);
applyAutoAnnotationSettings.addItemListener(this);
- formatMenu.setLabel("Format");
- selectMenu.setLabel("Select");
- newView.setLabel("New View");
+ formatMenu.setLabel(MessageManager.getString("action.format"));
+ selectMenu.setLabel(MessageManager.getString("action.select"));
+ newView.setLabel(MessageManager.getString("action.new_view"));
newView.addActionListener(this);
alignFrameMenuBar.add(fileMenu);
alignFrameMenuBar.add(editMenu);
selectMenu.add(deselectAllSequenceMenuItem);
selectMenu.add(invertSequenceMenuItem);
selectMenu.add(invertColSel);
+ selectMenu.add(createGroup);
+ selectMenu.add(unGroup);
selectMenu.add(grpsFromSelection);
selectMenu.add(deleteGroups);
public jalview.bin.JalviewLite applet;
- Hashtable sequenceColours;
-
boolean MAC = false;
Stack historyList = new Stack();
showHiddenMarkers = show;
}
- public Color getSequenceColour(SequenceI seq)
- {
- if (sequenceColours == null || !sequenceColours.containsKey(seq))
- {
- return Color.white;
- }
- else
- {
- return (Color) sequenceColours.get(seq);
- }
- }
-
- public void setSequenceColour(SequenceI seq, Color col)
- {
- if (sequenceColours == null)
- {
- sequenceColours = new Hashtable();
- }
-
- if (col == null)
- {
- sequenceColours.remove(seq);
- }
- else
- {
- sequenceColours.put(seq, col);
- }
- }
-
boolean centreColumnLabels;
public boolean getCentreColumnLabels()
return centreColumnLabels;
}
- public void updateSequenceIdColours()
- {
-
- for (SequenceGroup sg : alignment.getGroups())
- {
- if (sg.idColour != null)
- {
- for (SequenceI s : sg.getSequences(getHiddenRepSequences()))
- {
- this.setSequenceColour(s, sg.idColour);
- }
- }
- }
- }
-
public boolean followHighlight = true;
public boolean getFollowHighlight()
import jalview.datamodel.*;
import jalview.schemes.*;
+import jalview.util.MessageManager;
public class AnnotationColourChooser extends Panel implements
ActionListener, AdjustmentListener, ItemListener, MouseListener
setDefaultMinMax();
+ adjusting = true;
if (oldcs instanceof AnnotationColourGradient)
{
AnnotationColourGradient acg = (AnnotationColourGradient) oldcs;
- currentColours.setState(acg.predefinedColours);
- if (!acg.predefinedColours)
+ currentColours.setState(acg.isPredefinedColours() || acg.getBaseColour()!=null);
+ if (!acg.isPredefinedColours() && acg.getBaseColour()==null)
{
minColour.setBackground(acg.getMinColour());
maxColour.setBackground(acg.getMaxColour());
}
+ // seqAssociated.setState(acg.isSeqAssociated());
}
- adjusting = true;
Vector list = new Vector();
int index = 1;
frame = new Frame();
frame.add(this);
- jalview.bin.JalviewLite.addFrame(frame, "Colour by Annotation", 560,
+ jalview.bin.JalviewLite.addFrame(frame, MessageManager.getString("label.colour_by_annotation"), 560,
175);
validate();
}
private void jbInit() throws Exception
{
minColour.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));
- minColour.setLabel("Min Colour");
+ minColour.setLabel(MessageManager.getString("label.min_colour"));
minColour.addActionListener(this);
maxColour.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));
- maxColour.setLabel("Max Colour");
+ maxColour.setLabel(MessageManager.getString("label.max_colour"));
maxColour.addActionListener(this);
thresholdIsMin.addItemListener(this);
- ok.setLabel("OK");
+ ok.setLabel(MessageManager.getString("action.ok"));
ok.addActionListener(this);
- cancel.setLabel("Cancel");
+ cancel.setLabel(MessageManager.getString("action.cancel"));
cancel.addActionListener(this);
- defColours.setLabel("Defaults");
+ defColours.setLabel(MessageManager.getString("action.set_defaults"));
defColours.addActionListener(this);
annotations.addItemListener(this);
thresholdValue.setEnabled(false);
thresholdValue.setColumns(5);
currentColours.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));
- currentColours.setLabel("Use Original Colours");
+ currentColours.setLabel(MessageManager.getString("label.use_original_colours"));
currentColours.addItemListener(this);
thresholdIsMin.setBackground(Color.white);
- thresholdIsMin.setLabel("Threshold is min/max");
+ thresholdIsMin.setLabel(MessageManager.getString("label.threshold_minmax"));
this.setLayout(borderLayout1);
if (currentAnnotation.graphMin == 0f
&& currentAnnotation.graphMax == 0f)
{
- acg.predefinedColours = true;
+ acg.setPredefinedColours(true);
}
acg.thresholdIsMinMax = thresholdIsMin.getState();
av.setGlobalColourScheme(acg);
+ // TODO: per group colour propagation not always desired
if (av.getAlignment().getGroups() != null)
{
for (SequenceGroup sg : ap.av.getAlignment().getGroups())
}
// update colours in linked windows
+ ap.alignmentChanged();
ap.paintAlignment(true);
}
import java.awt.event.*;
import jalview.datamodel.*;
+import jalview.util.MessageManager;
import jalview.util.ParseHtmlBodyAndLinks;
public class AnnotationLabels extends Panel implements ActionListener,
if ((evt.getModifiers() & InputEvent.BUTTON3_MASK) == InputEvent.BUTTON3_MASK)
{
- PopupMenu popup = new PopupMenu("Annotations");
+ PopupMenu popup = new PopupMenu(MessageManager.getString("label.annotations"));
MenuItem item = new MenuItem(ADDNEW);
item.addActionListener(this);
dragEvent.getY());
}
- if ((aa == null) || (aa.length < 1))
+ if (!av.wrapAlignment && ((aa == null) || (aa.length < 1)))
{
g.setColor(Color.black);
- g.drawString("Right click", 2, 8);
- g.drawString("to add annotation", 2, 18);
+ g.drawString(MessageManager.getString("label.right_click"), 2, 8);
+ g.drawString(MessageManager.getString("label.to_add_annotation"), 2, 18);
}
}
}
import jalview.datamodel.*;
import jalview.renderer.AnnotationRenderer;
import jalview.renderer.AwtRenderPanelI;
+import jalview.util.MessageManager;
public class AnnotationPanel extends Panel implements AwtRenderPanelI,
AdjustmentListener, ActionListener, MouseListener,
}
}
- aa[activeRow].validateRangeAndDisplay();
+ av.getAlignment().validateAnnotation(aa[activeRow]);
- adjustPanelHeight();
ap.alignmentChanged();
+ adjustPanelHeight();
repaint();
return;
return;
}
- PopupMenu pop = new PopupMenu("Structure type");
+ PopupMenu pop = new PopupMenu(MessageManager.getString("label.structure_type"));
MenuItem item;
/*
* Just display the needed structure options
g.setColor(Color.black);
if (av.validCharWidth)
{
- g.drawString("Alignment has no annotations", 20, 15);
+ g.drawString(MessageManager.getString("label.alignment_has_no_annotations"), 20, 15);
}
return;
{
return imgWidth;
}
+ private int[] bounds = new int[2];
+ @Override
+ public int[] getVisibleVRange()
+ {
+ if (ap!=null && ap.alabels!=null)
+ {
+ int sOffset=-ap.alabels.scrollOffset;
+ int visHeight = sOffset+ap.annotationPanelHolder.getHeight();
+ bounds[0] = sOffset; bounds[1]=visHeight;
+ return bounds;
+ } else return null;
+ }
}
import jalview.io.*;
import jalview.schemes.*;
+import jalview.util.MessageManager;
public class AppletJmol extends EmbmenuFrame implements
// StructureListener,
KeyListener, ActionListener, ItemListener, SequenceStructureBinding
{
- Menu fileMenu = new Menu("File");
+ Menu fileMenu = new Menu(MessageManager.getString("action.file"));
- Menu viewMenu = new Menu("View");
+ Menu viewMenu = new Menu(MessageManager.getString("action.view"));
- Menu coloursMenu = new Menu("Colours");
+ Menu coloursMenu = new Menu(MessageManager.getString("action.colour"));
- Menu chainMenu = new Menu("Show Chain");
+ Menu chainMenu = new Menu(MessageManager.getString("action.show_chain"));
- Menu helpMenu = new Menu("Help");
+ Menu helpMenu = new Menu(MessageManager.getString("action.help"));
- MenuItem mappingMenuItem = new MenuItem("View Mapping");
+ MenuItem mappingMenuItem = new MenuItem(MessageManager.getString("label.view_mapping"));
- CheckboxMenuItem seqColour = new CheckboxMenuItem("By Sequence", true);
+ CheckboxMenuItem seqColour = new CheckboxMenuItem(MessageManager.getString("action.by_sequence"), true);
- CheckboxMenuItem jmolColour = new CheckboxMenuItem("Using Jmol", false);
+ CheckboxMenuItem jmolColour = new CheckboxMenuItem(MessageManager.getString("action.using_jmol"), false);
- MenuItem chain = new MenuItem("By Chain");
+ MenuItem chain = new MenuItem(MessageManager.getString("action.by_chain"));
- MenuItem charge = new MenuItem("Charge & Cysteine");
+ MenuItem charge = new MenuItem(MessageManager.getString("label.charge_cysteine"));
- MenuItem zappo = new MenuItem("Zappo");
+ MenuItem zappo = new MenuItem(MessageManager.getString("label.zappo"));
- MenuItem taylor = new MenuItem("Taylor");
+ MenuItem taylor = new MenuItem(MessageManager.getString("label.taylor"));
- MenuItem hydro = new MenuItem("Hydrophobicity");
+ MenuItem hydro = new MenuItem(MessageManager.getString("label.hydrophobicity"));
- MenuItem helix = new MenuItem("Helix Propensity");
+ MenuItem helix = new MenuItem(MessageManager.getString("label.helix_propensity"));
- MenuItem strand = new MenuItem("Strand Propensity");
+ MenuItem strand = new MenuItem(MessageManager.getString("label.strand_propensity"));
- MenuItem turn = new MenuItem("Turn Propensity");
+ MenuItem turn = new MenuItem(MessageManager.getString("label.turn_propensity"));
- MenuItem buried = new MenuItem("Buried Index");
+ MenuItem buried = new MenuItem(MessageManager.getString("label.buried_index"));
- MenuItem purinepyrimidine = new MenuItem("Purine/Pyrimidine");
+ MenuItem purinepyrimidine = new MenuItem(MessageManager.getString("label.purine_pyrimidine"));
- MenuItem user = new MenuItem("User Defined Colours");
+ MenuItem user = new MenuItem(MessageManager.getString("label.user_defined_colours"));
- MenuItem jmolHelp = new MenuItem("Jmol Help");
+ MenuItem jmolHelp = new MenuItem(MessageManager.getString("label.jmol_help"));
Panel scriptWindow;
{
chainMenu.removeAll();
- MenuItem menuItem = new MenuItem("All");
+ MenuItem menuItem = new MenuItem(MessageManager.getString("label.all"));
menuItem.addActionListener(this);
chainMenu.add(menuItem);
.println("Out of memory when trying to create dialog box with sequence-structure mapping.");
return;
}
- jalview.bin.JalviewLite.addFrame(frame, "PDB - Sequence Mapping",
+ jalview.bin.JalviewLite.addFrame(frame, MessageManager.getString("label.pdb_sequence_mapping"),
550, 600);
}
else if (evt.getSource() == charge)
g.fillRect(0, 0, currentSize.width, currentSize.height);
g.setColor(Color.white);
g.setFont(new Font("Verdana", Font.BOLD, 14));
- g.drawString("Retrieving PDB data....", 20, currentSize.height / 2);
+ g.drawString(MessageManager.getString("label.retrieving_pdb_data"), 20, currentSize.height / 2);
}
else
{
import jalview.datamodel.*;
import jalview.io.*;
import jalview.schemes.TCoffeeColourScheme;
+import jalview.util.MessageManager;
public class CutAndPasteTransfer extends Panel implements ActionListener,
MouseListener
public void setPDBImport(Sequence seq)
{
this.seq = seq;
- accept.setLabel("Accept");
+ accept.setLabel(MessageManager.getString("action.accept"));
addSequences.setVisible(false);
pdbImport = true;
}
public void setTreeImport()
{
treeImport = true;
- accept.setLabel("Accept");
+ accept.setLabel(MessageManager.getString("action.accept"));
addSequences.setVisible(false);
}
public void setAnnotationImport()
{
annotationImport = true;
- accept.setLabel("Accept");
+ accept.setLabel(MessageManager.getString("action.accept"));
addSequences.setVisible(false);
}
{
// TODO: JAL-1102 - should have a warning message in dialog, not simply
// overwrite the broken input data with the exception
- textarea.setText("Could not parse Newick file!\n" + ex);
+ textarea.setText(MessageManager.formatMessage("label.could_not_parse_newick_file", new String[]{ex.getMessage()}));
return;
}
}
alignFrame.changeColour(new TCoffeeColourScheme(
alignFrame.viewport.getAlignment()));
alignFrame.statusBar
- .setText("Successfully pasted T-Coffee scores to alignment.");
+ .setText(MessageManager.getString("label.successfully_pasted_tcoffee_scores_to_alignment"));
}
else
{
// file valid but didn't get added to alignment for some reason
- alignFrame.statusBar.setText("Failed to add T-Coffee scores: "
- + (tcf.getWarningMessage() != null ? tcf
- .getWarningMessage() : ""));
+ alignFrame.statusBar.setText(MessageManager.formatMessage("label.failed_add_tcoffee_scores", new String[]{(tcf.getWarningMessage() != null ? tcf.getWarningMessage() : "")}));
}
}
else
{
AlignFrame af = new AlignFrame(al, alignFrame.viewport.applet,
"Cut & Paste input - " + format, false);
- af.statusBar.setText("Successfully pasted alignment file");
+ af.statusBar.setText(MessageManager.getString("label.successfully_pasted_annotation_to_alignment"));
}
else
{
alignFrame.addSequences(al.getSequencesArray());
alignFrame.statusBar
- .setText("Successfully pasted alignment file");
+ .setText(MessageManager.getString("label.successfully_pasted_alignment_file"));
}
}
}
private void jbInit() throws Exception
{
textarea.setFont(new java.awt.Font("Monospaced", Font.PLAIN, 10));
- textarea.setText("Paste your alignment file here");
+ textarea.setText(MessageManager.getString("label.paste_your_alignment_file"));
textarea.addMouseListener(this);
this.setLayout(borderLayout1);
accept.addActionListener(this);
public void mousePressed(MouseEvent evt)
{
- if (textarea.getText().startsWith("Paste your"))
+ if (textarea.getText().startsWith(MessageManager.getString("label.paste_your")))
{
textarea.setText("");
}
import jalview.datamodel.*;
import jalview.schemes.*;
+import jalview.util.MessageManager;
public class FeatureColourChooser extends Panel implements ActionListener,
AdjustmentListener, ItemListener, MouseListener
private void jbInit() throws Exception
{
- Label minLabel = new Label("Min:"), maxLabel = new Label("Max:");
+ Label minLabel = new Label(MessageManager.getString("label.min")), maxLabel = new Label(MessageManager.getString("label.max"));
minLabel.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));
maxLabel.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));
// minColour.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));
jPanel3.setBackground(Color.white);
colourFromLabel.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));
- colourFromLabel.setLabel("Colour by Label");
+ colourFromLabel.setLabel(MessageManager.getString("label.colour_by_label"));
colourFromLabel.setSize(new Dimension(139, 22));
// threshold.setBounds(new Rectangle(11, 3, 139, 22));
thresholdIsMin.setBackground(Color.white);
- thresholdIsMin.setLabel("Threshold is min/max");
+ thresholdIsMin.setLabel(MessageManager.getString("label.threshold_minmax"));
thresholdIsMin.setSize(new Dimension(135, 23));
// thresholdIsMin.setBounds(new Rectangle(328, 3, 135, 23));
jPanel1.add(minLabel);
import jalview.datamodel.*;
import jalview.schemes.AnnotationColourGradient;
import jalview.schemes.GraduatedColor;
+import jalview.util.MessageManager;
/**
* DOCUMENT ME!
g.setColor(Color.black);
Font f = new Font("Verdana", Font.PLAIN, 10);
g.setFont(f);
- g.drawString("Label", 0, 0);
+ g.drawString(MessageManager.getString("label.label"), 0, 0);
}
else
{
}
else
{
- dialog.ok.setLabel("Amend");
+ dialog.ok.setLabel(MessageManager.getString("label.amend"));
dialog.buttonPanel.add(deleteButton, 1);
deleteButton.addActionListener(new ActionListener()
{
import jalview.datamodel.*;
import jalview.schemes.AnnotationColourGradient;
import jalview.schemes.GraduatedColor;
+import jalview.util.MessageManager;
public class FeatureSettings extends Panel implements ItemListener,
MouseListener, MouseMotionListener, ActionListener,
height = Math.max(200, height);
height = Math.min(400, height);
int width = 300;
- jalview.bin.JalviewLite.addFrame(frame, "Feature Settings", width,
+ jalview.bin.JalviewLite.addFrame(frame, MessageManager.getString("label.feature_settings"), width,
height);
}
public void paint(Graphics g)
{
g.setColor(Color.black);
- g.drawString("No Features added to this alignment!!", 10, 20);
- g.drawString("(Features can be added from searches or", 10, 40);
- g.drawString("from Jalview / GFF features files)", 10, 60);
+ g.drawString(MessageManager.getString("label.no_features_added_to_this_alignment"), 10, 20);
+ g.drawString(MessageManager.getString("label.features_can_be_added_from_searches_1"), 10, 40);
+ g.drawString(MessageManager.getString("label.features_can_be_added_from_searches_2"), 10, 60);
}
protected void popupSort(final MyCheckbox check, final Hashtable minmax,
{
final String type = check.type;
final Object typeCol = fr.getFeatureStyle(type);
- java.awt.PopupMenu men = new PopupMenu("Settings for " + type);
- java.awt.MenuItem scr = new MenuItem("Sort by Score");
+ java.awt.PopupMenu men = new PopupMenu(MessageManager.formatMessage("label.settings_for_type", new String[]{type}));
+ java.awt.MenuItem scr = new MenuItem(MessageManager.getString("label.sort_by_score"));
men.add(scr);
final FeatureSettings me = this;
scr.addActionListener(new ActionListener()
}
});
- MenuItem dens = new MenuItem("Sort by Density");
+ MenuItem dens = new MenuItem(MessageManager.getString("label.sort_by_density"));
dens.addActionListener(new ActionListener()
{
import java.awt.event.*;
import jalview.datamodel.*;
+import jalview.util.MessageManager;
public class Finder extends Panel implements ActionListener
{
this.ap = ap;
frame = new Frame();
frame.add(this);
- jalview.bin.JalviewLite.addFrame(frame, "Find", 340, 120);
+ jalview.bin.JalviewLite.addFrame(frame, MessageManager.getString("action.find"), 340, 120);
frame.repaint();
frame.addWindowListener(new WindowAdapter()
{
// 'SelectRegion' selection
if (!haveResults)
{
- ap.alignFrame.statusBar.setText("Finished searching.");
+ ap.alignFrame.statusBar.setText(MessageManager.getString("label.finished_searching"));
resIndex = -1;
seqIndex = 0;
}
{
message += searchResults.getSize() + " subsequence matches.";
}
- ap.alignFrame.statusBar.setText("Search results: " + searchString
- + " : " + message);
+ ap.alignFrame.statusBar.setText(MessageManager.formatMessage("label.search_results", new String[] {searchString, message}));
}
else
{
// TODO: indicate sequence and matching position in status bar
- ap.alignFrame.statusBar.setText("Found match for " + searchString);
+ ap.alignFrame.statusBar.setText(MessageManager.formatMessage("label.found_match_for", new String[]{searchString}));
}
}
}
private void jbInit() throws Exception
{
jLabel1.setFont(new java.awt.Font("Verdana", 0, 12));
- jLabel1.setText("Find");
+ jLabel1.setText(MessageManager.getString("action.find"));
jLabel1.setBounds(new Rectangle(3, 30, 34, 15));
this.setLayout(null);
textfield.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
});
textfield.addActionListener(this);
findAll.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
- findAll.setLabel("Find all");
+ findAll.setLabel(MessageManager.getString("action.find_all"));
findAll.addActionListener(this);
findNext.setEnabled(false);
findNext.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
- findNext.setLabel("Find Next");
+ findNext.setLabel(MessageManager.getString("action.find_next"));
findNext.addActionListener(this);
jPanel1.setBounds(new Rectangle(180, 5, 141, 64));
jPanel1.setLayout(gridLayout1);
gridLayout1.setVgap(2);
createNewGroup.setEnabled(false);
createNewGroup.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
- createNewGroup.setLabel("New Feature");
+ createNewGroup.setLabel(MessageManager.getString("label.new_feature"));
createNewGroup.addActionListener(this);
- caseSensitive.setLabel("Match Case");
+ caseSensitive.setLabel(MessageManager.getString("label.match_case"));
caseSensitive.setBounds(new Rectangle(40, 49, 126, 23));
jPanel1.add(findNext, null);
jPanel1.add(findAll, null);
*/
package jalview.appletgui;
+import jalview.util.MessageManager;
+
import java.awt.*;
import java.awt.event.*;
Frame frame = new Frame();
this.frame = frame;
frame.add(this);
- jalview.bin.JalviewLite.addFrame(frame, "Change Font", 440, 115);
+ jalview.bin.JalviewLite.addFrame(frame, MessageManager.getString("action.change_font"), 440, 115);
init = false;
}
{
label1.setFont(new java.awt.Font("Verdana", 0, 11));
label1.setAlignment(Label.RIGHT);
- label1.setText("Font: ");
+ label1.setText(MessageManager.getString("label.font"));
this.setLayout(borderLayout4);
fontSize.setFont(new java.awt.Font("Verdana", 0, 11));
fontSize.addItemListener(this);
fontStyle.addItemListener(this);
label2.setAlignment(Label.RIGHT);
label2.setFont(new java.awt.Font("Verdana", 0, 11));
- label2.setText("Size: ");
+ label2.setText(MessageManager.getString("label.size"));
label3.setAlignment(Label.RIGHT);
label3.setFont(new java.awt.Font("Verdana", 0, 11));
- label3.setText("Style: ");
+ label3.setText(MessageManager.getString("label.style"));
fontName.setFont(new java.awt.Font("Verdana", 0, 11));
fontName.addItemListener(this);
ok.setFont(new java.awt.Font("Verdana", 0, 11));
- ok.setLabel("OK");
+ ok.setLabel(MessageManager.getString("action.ok"));
ok.addActionListener(this);
cancel.setFont(new java.awt.Font("Verdana", 0, 11));
- cancel.setLabel("Cancel");
+ cancel.setLabel(MessageManager.getString("action.cancel"));
cancel.addActionListener(this);
this.setBackground(Color.white);
panel1.setLayout(borderLayout1);
import java.awt.event.*;
import jalview.datamodel.*;
+import jalview.util.MessageManager;
import jalview.viewmodel.PCAModel;
public class PCAPanel extends EmbmenuFrame implements Runnable,
embedMenuIfNeeded(rc);
add(rc, BorderLayout.CENTER);
- jalview.bin.JalviewLite.addFrame(this, "Principal component analysis",
+ jalview.bin.JalviewLite.addFrame(this, MessageManager.getString("label.principal_component_analysis"),
475, 400);
Thread worker = new Thread(this);
CutAndPasteTransfer cap = new CutAndPasteTransfer(false, null);
Frame frame = new Frame();
frame.add(cap);
- jalview.bin.JalviewLite.addFrame(frame, "PCA details", 500, 500);
+ jalview.bin.JalviewLite.addFrame(frame, MessageManager.getString("label.pca_details"), 500, 500);
cap.setText(pcaModel.getDetails());
}
xCombobox.setFont(new java.awt.Font("Verdana", 0, 12));
xCombobox.addItemListener(this);
resetButton.setFont(new java.awt.Font("Verdana", 0, 12));
- resetButton.setLabel("Reset");
+ resetButton.setLabel(MessageManager.getString("action.reset"));
resetButton.addActionListener(this);
this.setMenuBar(menuBar1);
- menu1.setLabel("File");
- menu2.setLabel("View");
- calcSettings.setLabel("Change Parameters");
- labels.setLabel("Labels");
+ menu1.setLabel(MessageManager.getString("action.file"));
+ menu2.setLabel(MessageManager.getString("action.view"));
+ calcSettings.setLabel(MessageManager.getString("action.change_params"));
+ labels.setLabel(MessageManager.getString("label.labels"));
labels.addItemListener(this);
- values.setLabel("Output Values...");
+ values.setLabel(MessageManager.getString("label.output_values"));
values.addActionListener(this);
- inputData.setLabel("Input Data...");
- nuclSetting.setLabel("Nucleotide matrix");
+ inputData.setLabel(MessageManager.getString("label.input_data"));
+ nuclSetting.setLabel(MessageManager.getString("label.nucleotide_matrix"));
nuclSetting.addItemListener(this);
- protSetting.setLabel("Protein matrix");
+ protSetting.setLabel(MessageManager.getString("label.protein_matrix"));
protSetting.addItemListener(this);
this.add(jPanel2, BorderLayout.SOUTH);
jPanel2.add(jLabel1, null);
import jalview.analysis.*;
import jalview.datamodel.*;
+import jalview.util.MessageManager;
public class PairwiseAlignPanel extends Panel implements ActionListener
{
textarea.setFont(new java.awt.Font("Monospaced", 0, 12));
textarea.setText("");
viewInEditorButton.setFont(new java.awt.Font("Verdana", 0, 12));
- viewInEditorButton.setLabel("View in alignment editor");
+ viewInEditorButton.setLabel(MessageManager.getString("label.view_alignment_editor"));
viewInEditorButton.addActionListener(this);
this.add(scrollPane, BorderLayout.CENTER);
scrollPane.add(textarea);
import jalview.analysis.AlignSeq;
import jalview.commands.*;
import jalview.datamodel.*;
+import jalview.util.MessageManager;
public class RedundancyPanel extends SliderPanel implements Runnable,
WindowListener
applyButton.setVisible(true);
allGroupsCheck.setVisible(false);
- label.setText("Enter the redundancy threshold");
+ label.setText(MessageManager.getString("label.enter_redundancy_threshold"));
valueField.setText("100");
slider.setVisibleAmount(1);
frame = new Frame();
frame.add(this);
jalview.bin.JalviewLite.addFrame(frame,
- "Redundancy threshold selection", 400, 100);
+ MessageManager.getString("label.redundancy_threshold_selection"), 400, 100);
frame.addWindowListener(this);
*/
public void run()
{
- label.setText("Calculating....");
+ label.setText(MessageManager.getString("label.calculating"));
slider.setVisible(false);
applyButton.setEnabled(false);
redundancy = AlignSeq.computeRedundancyMatrix(originalSequences,
omitHidden, start, end, false);
- label.setText("Enter the redundancy threshold");
+ label.setText(MessageManager.getString("label.enter_redundancy_threshold"));
slider.setVisible(true);
applyButton.setEnabled(true);
valueField.setVisible(true);
if (points == null)
{
g.setFont(new Font("Verdana", Font.PLAIN, 18));
- g.drawString("Calculating PCA....", 20, getSize().height / 2);
+ g.drawString(MessageManager.getString("label.calculating_pca") + "....", 20, getSize().height / 2);
}
else
{
import java.awt.event.*;
import jalview.datamodel.*;
+import jalview.util.MessageManager;
public class ScalePanel extends Panel implements MouseMotionListener,
MouseListener
PopupMenu pop = new PopupMenu();
if (reveal != null)
{
- MenuItem item = new MenuItem("Reveal");
+ MenuItem item = new MenuItem(MessageManager.getString("label.reveal"));
item.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
if (av.getColumnSelection().getHiddenColumns().size() > 1)
{
- item = new MenuItem("Reveal All");
+ item = new MenuItem(MessageManager.getString("action.reveal_all"));
item.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
}
else if (av.getColumnSelection().contains(res))
{
- MenuItem item = new MenuItem("Hide Columns");
+ MenuItem item = new MenuItem(MessageManager.getString("label.hide_columns"));
item.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
if (reveal != null && reveal[0] > startx && reveal[0] < endx)
{
- gg.drawString("Reveal Columns", reveal[0] * av.charWidth, 0);
+ gg.drawString(MessageManager.getString("label.reveal_columns"), reveal[0] * av.charWidth, 0);
}
}
SequenceI sequence = (Sequence) av.getAlignment().getSequenceAt(
seqCanvas.cursorY);
- seqCanvas.cursorX = sequence.findIndex(getKeyboardNo1() - 1);
+ seqCanvas.cursorX = sequence.findIndex(getKeyboardNo1()) - 1;
scrollToVisible();
}
keyboardNo1.append(value);
}
}
-
int getKeyboardNo1()
{
- if (keyboardNo1 == null)
- return 1;
- else
+ try {
+ if (keyboardNo1 != null)
{
int value = Integer.parseInt(keyboardNo1.toString());
keyboardNo1 = null;
return value;
}
+ } catch (Exception x)
+ {}
+ keyboardNo1 = null;
+ return 1;
}
int getKeyboardNo2()
{
- if (keyboardNo2 == null)
- return 1;
- else
- {
+ try {
+ if (keyboardNo2!=null){
int value = Integer.parseInt(keyboardNo2.toString());
keyboardNo2 = null;
return value;
}
+ } catch (Exception x)
+ {}
+ keyboardNo2 = null;
+ return 1;
}
-
+
void setStatusMessage(SequenceI sequence, int res, int seq)
{
StringBuffer text = new StringBuffer("Sequence " + (seq + 1) + " ID: "
import jalview.datamodel.*;
import jalview.schemes.*;
+import jalview.util.MessageManager;
public class SliderPanel extends Panel implements ActionListener,
AdjustmentListener, MouseListener
applyButton.setVisible(false);
if (forConservation)
{
- label.setText("Modify conservation visibility");
+ label.setText(MessageManager.getString("label.modify_conservation_visibility"));
slider.setMinimum(0);
slider.setMaximum(50 + slider.getVisibleAmount());
slider.setUnitIncrement(1);
}
else
{
- label.setText("Colour residues above % occurence");
+ label.setText(MessageManager.getString("label.colour_residues_above_occurence"));
slider.setMinimum(0);
slider.setMaximum(100 + slider.getVisibleAmount());
slider.setBlockIncrement(1);
valueField.setText(" ");
valueField.addActionListener(this);
label.setFont(new java.awt.Font("Verdana", 0, 11));
- label.setText("set this label text");
+ label.setText(MessageManager.getString("label.set_this_label_text"));
jPanel1.setLayout(borderLayout1);
jPanel2.setLayout(flowLayout1);
applyButton.setFont(new java.awt.Font("Verdana", 0, 11));
- applyButton.setLabel("Apply");
+ applyButton.setLabel(MessageManager.getString("action.apply"));
applyButton.addActionListener(this);
undoButton.setEnabled(false);
undoButton.setFont(new java.awt.Font("Verdana", 0, 11));
- undoButton.setLabel("Undo");
+ undoButton.setLabel(MessageManager.getString("action.undo"));
undoButton.addActionListener(this);
allGroupsCheck.setEnabled(false);
allGroupsCheck.setFont(new java.awt.Font("Verdana", 0, 11));
- allGroupsCheck.setLabel("Apply threshold to all groups");
- allGroupsCheck.setName("Apply to all Groups");
+ allGroupsCheck.setLabel(MessageManager.getString("action.apply_threshold_all_groups"));
+ allGroupsCheck.setName(MessageManager.getString("action.apply_all_groups"));
this.setBackground(Color.white);
this.setForeground(Color.black);
jPanel2.add(label, null);
av.setSelectionGroup(null);
av.getAlignment().deleteAllGroups();
- av.sequenceColours = null;
+ av.clearSequenceColours();
colourGroups();
import jalview.analysis.*;
import jalview.datamodel.*;
import jalview.io.*;
+import jalview.util.MessageManager;
public class TreePanel extends EmbmenuFrame implements ActionListener,
ItemListener
setLayout(borderLayout1);
this.setBackground(Color.white);
this.setFont(new java.awt.Font("Verdana", 0, 12));
- jMenu2.setLabel("View");
- fontSize.setLabel("Font...");
+ jMenu2.setLabel(MessageManager.getString("action.view"));
+ fontSize.setLabel(MessageManager.getString("action.font"));
fontSize.addActionListener(this);
- bootstrapMenu.setLabel("Show Bootstrap Values");
+ bootstrapMenu.setLabel(MessageManager.getString("label.show_bootstrap_values"));
bootstrapMenu.addItemListener(this);
- distanceMenu.setLabel("Show Distances");
+ distanceMenu.setLabel(MessageManager.getString("label.show_distances"));
distanceMenu.addItemListener(this);
- placeholdersMenu.setLabel("Mark Unassociated Leaves");
+ placeholdersMenu.setLabel(MessageManager.getString("label.mark_unassociated_leaves"));
placeholdersMenu.addItemListener(this);
fitToWindow.setState(true);
- fitToWindow.setLabel("Fit To Window");
+ fitToWindow.setLabel(MessageManager.getString("label.fit_to_window"));
fitToWindow.addItemListener(this);
- fileMenu.setLabel("File");
- newickOutput.setLabel("Newick Format");
+ fileMenu.setLabel(MessageManager.getString("action.file"));
+ newickOutput.setLabel(MessageManager.getString("label.newick_format"));
newickOutput.addActionListener(this);
- inputData.setLabel("Input Data...");
+ inputData.setLabel(MessageManager.getString("label.input_data"));
add(scrollPane, BorderLayout.CENTER);
jMenuBar1.add(fileMenu);
import jalview.schemes.GraduatedColor;
import jalview.schemes.ResidueProperties;
import jalview.schemes.UserColourScheme;
+import jalview.util.MessageManager;
import java.awt.Button;
import java.awt.Color;
}
frame = new Frame();
frame.add(this);
- jalview.bin.JalviewLite.addFrame(frame, "User defined colours", 420,
+ jalview.bin.JalviewLite.addFrame(frame, MessageManager.getString("label.user_defined_colours"), 420,
345);
if (seqGroup != null)
gridLayout.setColumns(6);
gridLayout.setRows(4);
okButton.setFont(new java.awt.Font("Verdana", 0, 11));
- okButton.setLabel("OK");
+ okButton.setLabel(MessageManager.getString("action.ok"));
okButton.addActionListener(this);
applyButton.setFont(new java.awt.Font("Verdana", 0, 11));
- applyButton.setLabel("Apply");
+ applyButton.setLabel(MessageManager.getString("action.apply"));
applyButton.addActionListener(this);
cancelButton.setFont(new java.awt.Font("Verdana", 0, 11));
- cancelButton.setLabel("Cancel");
+ cancelButton.setLabel(MessageManager.getString("action.cancel"));
cancelButton.addActionListener(this);
this.setBackground(new Color(212, 208, 223));
okcancelPanel.setBounds(new Rectangle(0, 265, 400, 35));
*/
package jalview.bin;
+import jalview.util.MessageManager;
import jalview.ws.dbsources.das.api.DasSourceRegistryI;
import jalview.ws.dbsources.das.datamodel.DasSourceRegistry;
import java.awt.Color;
import java.io.*;
import java.text.DateFormat;
-import java.text.SimpleDateFormat;
import java.util.*;
import org.apache.log4j.*;
setProperty(property, jalview.util.Format.getHexString(colour));
}
- public static final DateFormat date_format = SimpleDateFormat
- .getDateTimeInstance();
+ public static final DateFormat date_format = DateFormat.getDateInstance(DateFormat.LONG,MessageManager.getLocale());
/**
* store a date in a jalview property
+ "\n~Read documentation in Application or visit http://www.jalview.org for description of Features and Annotations file~\n\n");
System.exit(0);
}
+ if (aparser.contains("nodisplay") || aparser.contains("nogui") || aparser.contains("headless"))
+ {
+ System.setProperty("java.awt.headless", "true");
+ headless=true;
+ }
Cache.loadProperties(aparser.getValue("props")); // must do this before
// anything else!
String defs = aparser.getValue("setprop");
}
defs = aparser.getValue("setprop");
}
- if (aparser.contains("nodisplay"))
- {
- System.setProperty("java.awt.headless", "true");
- }
if (System.getProperty("java.awt.headless") != null
&& System.getProperty("java.awt.headless").equals("true"))
{
import jalview.javascript.JsCallBack;
import jalview.structure.SelectionListener;
import jalview.structure.StructureSelectionManager;
+import jalview.util.MessageManager;
import java.applet.Applet;
import java.awt.Button;
// still be called to open new alignments.
file = "NO FILE";
fileFound = false;
- // callInitCallback();
+ callInitCallback();
}
}
g.setColor(Color.cyan);
g.fillRect(0, 0, getSize().width, getSize().height);
g.setColor(Color.red);
- g.drawString("Jalview can't open file", 5, 15);
+ g.drawString(MessageManager.getString("label.jalview_cannot_open_file"), 5, 15);
g.drawString("\"" + file + "\"", 5, 30);
}
else if (embedded)
{
g.setColor(Color.black);
g.setFont(new Font("Arial", Font.BOLD, 24));
- g.drawString("Jalview Applet", 50, getSize().height / 2 - 30);
- g.drawString("Loading Data...", 50, getSize().height / 2);
+ g.drawString(MessageManager.getString("label.jalview_applet"), 50, getSize().height / 2 - 30);
+ g.drawString(MessageManager.getString("label.loading_data") + "...", 50, getSize().height / 2);
}
}
if (protocol == jalview.io.AppletFormatAdapter.PASTE)
{
- newAlignFrame.setTitle("Sequences from "
- + applet.getDocumentBase());
+ newAlignFrame.setTitle(MessageManager.formatMessage("label.sequences_from", new String[]{applet.getDocumentBase().toString()}));
}
- newAlignFrame.statusBar.setText("Successfully loaded file " + file);
+ newAlignFrame.statusBar.setText(MessageManager.formatMessage("label.successfully_loaded_file", new String []{file}));
String treeFile = applet.getParameter("tree");
if (treeFile == null)
--- /dev/null
+package jalview.controller;
+
+import java.awt.Color;
+
+import jalview.api.AlignViewControllerI;
+import jalview.api.AlignViewportI;
+import jalview.api.AlignmentViewPanel;
+import jalview.datamodel.SequenceGroup;
+import jalview.datamodel.SequenceI;
+
+public class AlignViewController implements AlignViewControllerI
+{
+ AlignViewportI viewport=null;
+ AlignmentViewPanel alignPanel=null;
+ @Override
+ protected void finalize() throws Throwable {
+ viewport = null;
+ alignPanel = null;
+ };
+
+ public AlignViewController(AlignViewportI viewport,
+ AlignmentViewPanel alignPanel)
+ {
+ this.viewport=viewport;
+ this.alignPanel = alignPanel;
+ }
+ @Override
+ public void setViewportAndAlignmentPanel(AlignViewportI viewport,AlignmentViewPanel alignPanel)
+ {
+ this.alignPanel = alignPanel;
+ this.viewport = viewport;
+
+ }
+ @Override
+ public boolean makeGroupsFromSelection()
+ {
+
+ if (viewport.getSelectionGroup() != null)
+ {
+ SequenceGroup[] gps = jalview.analysis.Grouping.makeGroupsFrom(
+ viewport.getSequenceSelection(),
+ viewport.getAlignmentView(true).getSequenceStrings(
+ viewport.getGapCharacter()), viewport.getAlignment()
+ .getGroups());
+ viewport.getAlignment().deleteAllGroups();
+ viewport.clearSequenceColours();
+ viewport.setSelectionGroup(null);
+ // set view properties for each group
+ for (int g = 0; g < gps.length; g++)
+ {
+ // gps[g].setShowunconserved(viewport.getShowUnconserved());
+ gps[g].setshowSequenceLogo(viewport.isShowSequenceLogo());
+ viewport.getAlignment().addGroup(gps[g]);
+ Color col = new Color((int) (Math.random() * 255),
+ (int) (Math.random() * 255), (int) (Math.random() * 255));
+ col = col.brighter();
+ for (SequenceI sq : gps[g].getSequences(null))
+ viewport.setSequenceColour(sq, col);
+ }
+ return true;
+ }
+ return false;
+}
+ @Override
+ public boolean createGroup()
+ {
+
+ SequenceGroup sg = viewport.getSelectionGroup();
+ if (sg!=null)
+ {
+ viewport.getAlignment().addGroup(sg);
+ return true;
+ }
+ return false;
+ }
+ @Override
+ public boolean unGroup()
+ {
+ SequenceGroup sg = viewport.getSelectionGroup();
+ if (sg!=null)
+ {
+ viewport.getAlignment().deleteGroup(sg);
+ return true;
+ }
+ return false;
+ }
+ @Override
+ public boolean deleteGroups()
+ {
+ if (viewport.getAlignment().getGroups()!=null && viewport.getAlignment().getGroups().size()>0)
+ {
+ viewport.getAlignment().deleteAllGroups();
+ viewport.clearSequenceColours();
+ viewport.setSelectionGroup(null);
+ return true;
+ }
+ return false;
+ }
+
+ }
if (aspos < aaWidth)
{
aaWidth++;
- System.arraycopy(codons, aspos, codons, aspos + 1, aaWidth - aspos);
+ System.arraycopy(codons, aspos, codons, aspos + 1, codons.length - aspos - 1);
codons[aspos] = null; // clear so new codon position can be marked.
}
}
SequenceGroup groupRef)
{
assert (name != null);
- for (AlignmentAnnotation annot : getAlignmentAnnotation())
+ if (annotations != null)
{
- if (annot.autoCalculated == autoCalc && (name.equals(annot.label))
- && (calcId == null || annot.getCalcId().equals(calcId))
- && annot.sequenceRef == seqRef && annot.groupRef == groupRef)
+ for (AlignmentAnnotation annot : getAlignmentAnnotation())
{
- return annot;
+ if (annot.autoCalculated == autoCalc && (name.equals(annot.label))
+ && (calcId == null || annot.getCalcId().equals(calcId))
+ && annot.sequenceRef == seqRef
+ && annot.groupRef == groupRef)
+ {
+ return annot;
+ }
}
}
AlignmentAnnotation annot = new AlignmentAnnotation(name, name,
}
}
-
+ @Override
+ public void validateAnnotation(AlignmentAnnotation alignmentAnnotation)
+ {
+ alignmentAnnotation.validateRangeAndDisplay();
+ if (isNucleotide() && alignmentAnnotation.isValidStruc())
+ {
+ hasRNAStructure = true;
+ }
+ }
+ @Override
+public int getEndRes()
+{
+ return getWidth()-1;
+}@Override
+public int getStartRes()
+{
+ return 0;
+}
}
*/
public void moveSelectedSequencesByOne(SequenceGroup sg,
Map<SequenceI, SequenceCollectionI> map, boolean up);
+
+ /**
+ * validate annotation after an edit and update any alignment state flags accordingly
+ * @param alignmentAnnotation
+ */
+ public void validateAnnotation(AlignmentAnnotation alignmentAnnotation);
}
*/
package jalview.datamodel;
-import java.awt.*;
+import java.awt.Color;
/**
- * DOCUMENT ME!
+ * Holds all annotation values for a position in an AlignmentAnnotation row
*
* @author $author$
* @version $Revision$
*/
public class Annotation
{
- /** DOCUMENT ME!! */
+ /** Character label - also shown below histogram */
public String displayCharacter = "";
- /** DOCUMENT ME!! */
- public String description = ""; // currently used as mouse over
+ /**
+ * Text label for position: shown in mouse over and displayed on secondary
+ * structure glyphs
+ */
+ public String description = "";
- /** DOCUMENT ME!! */
- public char secondaryStructure = ' '; // recognises H, E and S(?)
+ /**
+ * Secondary structure symbol: Protein symbols are H, E and S(?), RNA are
+ * WUSS/Vienna plus extended pseudoknot symbols
+ */
+ public char secondaryStructure = ' ';
- /** DOCUMENT ME!! */
+ /** Score for the position - used in histograms, line graphs and for shading */
public float value;
- // add visual cues here
-
- /** DOCUMENT ME!! */
+ /** Colour for position */
public Color colour;
/**
{
this(null, null, ' ', val);
}
+
+ /**
+ * human readable representation of an annotation row element.
+ *
+ * Format is 'display Char','secondary Structure
+ * Char',"description",score,[colourstring]
+ *
+ * fields may be missing if they are null, whitespace, or equivalent to
+ * Float.NaN
+ */
+ @Override
+ public String toString()
+ {
+ StringBuffer sb = new StringBuffer();
+ if (displayCharacter != null)
+ {
+ sb.append("\'");
+ sb.append(displayCharacter);
+ sb.append("\'");
+ }
+ {
+ sb.append(",");
+ }
+ if (secondaryStructure != 0
+ && !("" + displayCharacter).equals("" + secondaryStructure))
+ {
+ sb.append("\'");
+ sb.append(secondaryStructure);
+ sb.append("\'");
+ }
+ {
+ sb.append(",");
+ }
+ if (description != null && description.length() > 0)
+ {
+ sb.append("\"");
+ sb.append(description);
+ sb.append("\"");
+ }
+ {
+ sb.append(",");
+ }
+ if (value != Float.NaN)
+ {
+ sb.append(value);
+ }
+ if (colour != null)
+ {
+ if (sb.length() > 0)
+ {
+ sb.append(",");
+ }
+ sb.append("[");
+ sb.append(colour.getRed());
+ sb.append(",");
+ sb.append(colour.getGreen());
+ sb.append(",");
+ sb.append(colour.getBlue());
+ sb.append("]");
+ }
+ return sb.toString();
+ }
}
displayed = from.displayed;
}
}
+ @Override
+ public boolean equals(Object obj)
+ {
+ if (obj!=null && obj instanceof GraphLine)
+ {
+ GraphLine other = (GraphLine) obj;
+ return displayed == other.displayed
+ && value == other.value
+ && (colour != null ? (other.colour != null && other.colour
+ .equals(colour)) : other.colour == null)
+ && (label != null ? (other.label != null && other.label
+ .equals(label)) : other.label == null);
+ }
+ return false;
+ }
}
{
tmp = new char[i];
System.arraycopy(sequence, 0, tmp, 0, i);
+ j=sequence.length;
}
else
{
System.arraycopy(sequence, j, tmp, i, sequence.length - j);
}
boolean createNewDs = false;
+ // TODO: take a look at the new dataset creation validation method below -
+ // this could become time comsuming for large sequences - consider making it
+ // more efficient
for (int s = i; s < j; s++)
{
if (jalview.schemes.ResidueProperties.aaIndex[sequence[s]] != 23)
int getWidth();
+ /**
+ * @return the first column included in this collection. Runs from 0<=i<N_cols
+ */
+ int getStartRes();
+
+
+ /**
+ *
+ * @return the last column in this collection. Runs from 0<=i<N_cols
+ */
+ int getEndRes();
+
}
endRes + 1, showSequenceLogo);
if (consensus != null)
{
- _updateConsensusRow(cnsns);
+ _updateConsensusRow(cnsns, sequences.size());
}
if (cs != null)
{
public Hashtable[] consensusData = null;
- private void _updateConsensusRow(Hashtable[] cnsns)
+ private void _updateConsensusRow(Hashtable[] cnsns, long nseq)
{
if (consensus == null)
{
consensus.annotations = new Annotation[aWidth]; // should be alignment width
AAFrequency.completeConsensus(consensus, cnsns, startRes, endRes + 1,
- ignoreGapsInConsensus, showSequenceLogo); // TODO: setting container
+ ignoreGapsInConsensus, showSequenceLogo, nseq); // TODO: setting container
// for
// ignoreGapsInConsensusCalculation);
}
}
/**
- * DOCUMENT ME!
*
- * @return DOCUMENT ME!
+ *
+ * @return the first column selected by this group. Runs from 0<=i<N_cols
*/
public int getStartRes()
{
}
/**
- * DOCUMENT ME!
*
- * @return DOCUMENT ME!
+ * @return the groups last selected column. Runs from 0<=i<N_cols
*/
public int getEndRes()
{
{
consensus = new AlignmentAnnotation("", "", new Annotation[1], 0f,
100f, AlignmentAnnotation.BAR_GRAPH);
+ consensus.hasText = true;
+ consensus.autoCalculated = true;
+ consensus.groupRef = this;
+ consensus.label = "Consensus for " + getName();
+ consensus.description = "Percent Identity";
}
- consensus.hasText = true;
- consensus.autoCalculated = true;
- consensus.groupRef = this;
- consensus.label = "Consensus for " + getName();
- consensus.description = "Percent Identity";
return consensus;
}
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();
public void superposeStructures(AlignmentI[] _alignment,
int[] _refStructure, ColumnSelection[] _hiddenCols)
{
+ assert (_alignment.length == _refStructure.length && _alignment.length != _hiddenCols.length);
+
String[] files = getPdbFile();
+ // check to see if we are still waiting for Jmol files
+ long starttime=System.currentTimeMillis();
+ boolean waiting=true;
+ do {
+ waiting=false;
+ for (String file:files)
+ {
+ try {
+ // HACK - in Jalview 2.8 this call may not be threadsafe so we catch
+ // every possible exception
+ StructureMapping[] sm = ssm.getMapping(file);
+ if (sm == null || sm.length == 0)
+ {
+ waiting = true;
+ }
+ } catch (Exception x)
+ {
+ waiting = true;
+ } catch (Error q)
+ {
+ waiting = true;
+ }
+ }
+ // we wait around for a reasonable time before we give up
+ } while (waiting && System.currentTimeMillis()<(10000+1000*files.length+starttime));
+ if (waiting)
+ {
+ System.err.println("RUNTIME PROBLEM: Jmol seems to be taking a long time to process all the structures.");
+ return;
+ }
StringBuffer selectioncom = new StringBuffer();
- assert (_alignment.length == _refStructure.length && _alignment.length != _hiddenCols.length);
+ // In principle - nSeconds specifies the speed of animation for each
+ // superposition - but is seems to behave weirdly, so we don't specify it.
+ String nSeconds = " ";
+ if (files.length > 10)
+ {
+ nSeconds = " 0.00001 ";
+ }
+ else
+ {
+ nSeconds = " " + (2.0 / files.length) + " ";
+ // if (nSeconds).substring(0,5)+" ";
+ }
+ // see JAL-1345 - should really automatically turn off the animation for
+ // large numbers of structures, but Jmol doesn't seem to allow that.
+ nSeconds = " ";
// union of all aligned positions are collected together.
for (int a = 0; a < _alignment.length; a++)
{
// RACE CONDITION - getMapping only returns Jmol loaded filenames once
// Jmol callback has completed.
if (mapping == null || mapping.length < 1)
- continue;
-
+ {
+ throw new Error("Implementation error - Jmol seems to be still working on getting its data - report at http://issues.jalview.org/browse/JAL-1016");
+ }
int lastPos = -1;
for (int s = 0; s < sequence[pdbfnum].length; s++)
{
}
}
}
+
+ // TODO: consider bailing if nmatched less than 4 because superposition
+ // not
+ // well defined.
+ // TODO: refactor superposable position search (above) from jmol selection
+ // construction (below)
+
String[] selcom = new String[files.length];
int nmatched = 0;
// generate select statements to select regions to superimpose structures
}
}
}
- // TODO: consider bailing if nmatched less than 4 because superposition
- // not
- // well defined.
- // TODO: refactor superposable position search (above) from jmol selection
- // construction (below)
for (int pdbfnum = 0; pdbfnum < files.length; pdbfnum++)
{
if (pdbfnum == refStructure)
command.append(chainNames[pdbfnum]);
command.append(") against reference (");
command.append(chainNames[refStructure]);
- command.append(")\";\ncompare ");
+ command.append(")\";\ncompare "+nSeconds);
command.append("{");
command.append(1 + pdbfnum);
command.append(".1} {");
import jalview.analysis.NJTree;
import jalview.analysis.ParseProperties;
import jalview.analysis.SequenceIdMatcher;
+import jalview.api.AlignViewControllerI;
import jalview.bin.Cache;
import jalview.commands.CommandI;
import jalview.commands.EditCommand;
import jalview.schemes.TurnColourScheme;
import jalview.schemes.UserColourScheme;
import jalview.schemes.ZappoColourScheme;
+import jalview.util.MessageManager;
import jalview.ws.jws1.Discoverer;
import jalview.ws.jws2.Jws2Discoverer;
+import jalview.ws.jws2.jabaws2.Jws2Instance;
import jalview.ws.seqfetcher.DbSourceProxy;
import java.awt.BorderLayout;
public AlignmentPanel alignPanel;
AlignViewport viewport;
+
+ public AlignViewControllerI avc;
+
Vector alignPanels = new Vector();
*/
void init()
{
+ avc = new jalview.controller.AlignViewController(viewport, alignPanel);
if (viewport.getAlignmentConservationAnnotation() == null)
{
BLOSUM62Colour.setEnabled(false);
}
addKeyListener();
-
+
}
/**
case KeyEvent.VK_F2:
viewport.cursorMode = !viewport.cursorMode;
- statusBar.setText("Keyboard editing mode is "
- + (viewport.cursorMode ? "on" : "off"));
+ statusBar.setText(MessageManager.formatMessage("label.keyboard_editing_mode", new String[]{(viewport.cursorMode ? "on" : "off")}));
if (viewport.cursorMode)
{
alignPanel.seqPanel.seqCanvas.cursorX = viewport.startRes;
public void addAlignmentPanel(final AlignmentPanel ap, boolean newPanel)
{
ap.alignFrame = this;
+ avc = new jalview.controller.AlignViewController(viewport, alignPanel);
alignPanels.addElement(ap);
rnahelicesColour
.setSelected(av.getGlobalColourScheme() instanceof jalview.schemes.RNAHelicesColour);
setShowProductsEnabled();
-
updateEditMenuBar();
}
final JPanel progressPanel = (JPanel) progressBars.get(new Long(id));
if (handler.canCancel())
{
- JButton cancel = new JButton("Cancel");
+ JButton cancel = new JButton(MessageManager.getString("action.cancel"));
final IProgressIndicator us = this;
cancel.addActionListener(new ActionListener()
{
if (currentFileFormat == null)
{
JOptionPane.showInternalMessageDialog(Desktop.desktop,
- "You must select a file format before saving!",
- "File format not specified", JOptionPane.WARNING_MESSAGE);
+ MessageManager.getString("label.select_file_format_before_saving"),
+ MessageManager.getString("label.file_format_not_specified"), JOptionPane.WARNING_MESSAGE);
value = chooser.showSaveDialog(this);
return;
}
success = new Jalview2XML().SaveAlignment(this, file, shortName);
- statusBar.setText("Successfully saved to file: " + fileName + " in "
- + format + " format.");
+ statusBar.setText(MessageManager.formatMessage("label.successfully_saved_to_file_in_format",new String[]{fileName, format}));
+
}
else
int reply = JOptionPane
.showInternalConfirmDialog(
Desktop.desktop,
- "The Alignment contains hidden columns."
- + "\nDo you want to save only the visible alignment?",
- "Save / Omit Hidden Columns",
+ MessageManager.getString("label.alignment_contains_hidden_columns"),
+ MessageManager.getString("action.save_omit_hidden_columns"),
JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE);
out.print(output);
out.close();
this.setTitle(file);
- statusBar.setText("Successfully saved to file: " + fileName
- + " in " + format + " format.");
+ statusBar.setText(MessageManager.formatMessage("label.successfully_saved_to_file_in_format",new String[]{fileName, format}));
} catch (Exception ex)
{
success = false;
if (!success)
{
- JOptionPane.showInternalMessageDialog(this, "Couldn't save file: "
- + fileName, "Error Saving File", JOptionPane.WARNING_MESSAGE);
+ JOptionPane.showInternalMessageDialog(this, MessageManager.formatMessage("label.couldnt_save_file", new String[]{fileName}),
+ MessageManager.getString("label.error_saving_file"), JOptionPane.WARNING_MESSAGE);
}
return success;
int reply = JOptionPane
.showInternalConfirmDialog(
Desktop.desktop,
- "The Alignment contains hidden columns."
- + "\nDo you want to output only the visible alignment?",
- "Save / Omit Hidden Columns",
+ MessageManager.getString("label.alignment_contains_hidden_columns"),
+ MessageManager.getString("action.save_omit_hidden_columns"),
JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE);
{
undoMenuItem.setEnabled(true);
CommandI command = (CommandI) viewport.historyList.peek();
- undoMenuItem.setText("Undo " + command.getDescription());
+ undoMenuItem.setText(MessageManager.formatMessage("label.undo_command", new String[]{command.getDescription()}));
}
else
{
undoMenuItem.setEnabled(false);
- undoMenuItem.setText("Undo");
+ undoMenuItem.setText(MessageManager.getString("action.undo"));
}
if (viewport.redoList.size() > 0)
redoMenuItem.setEnabled(true);
CommandI command = (CommandI) viewport.redoList.peek();
- redoMenuItem.setText("Redo " + command.getDescription());
+ redoMenuItem.setText(MessageManager.formatMessage("label.redo_command", new String[]{command.getDescription()}));
}
else
{
redoMenuItem.setEnabled(false);
- redoMenuItem.setText("Redo");
+ redoMenuItem.setText(MessageManager.getString("action.redo"));
}
}
Desktop.jalviewClipboard = new Object[]
{ seqs, viewport.getAlignment().getDataset(), hiddenColumns };
- statusBar.setText("Copied " + seqs.length + " sequences to clipboard.");
+ statusBar.setText(MessageManager.formatMessage("label.copied_sequences_to_clipboard", new String[]{Integer.valueOf(seqs.length).toString()}));
}
/**
@Override
protected void deleteGroups_actionPerformed(ActionEvent e)
{
- viewport.getAlignment().deleteAllGroups();
- viewport.sequenceColours = null;
- viewport.setSelectionGroup(null);
- PaintRefresher.Refresh(this, viewport.getSequenceSetId());
- alignPanel.updateAnnotation();
- alignPanel.paintAlignment(true);
+ if (avc.deleteGroups()) {
+ PaintRefresher.Refresh(this, viewport.getSequenceSetId());
+ alignPanel.updateAnnotation();
+ alignPanel.paintAlignment(true);
+ }
}
/**
viewport.getSelectionGroup());
}
- statusBar.setText("Removed " + trimRegion.getSize() + " columns.");
+ statusBar.setText(MessageManager.formatMessage("label.removed_columns", new String[]{Integer.valueOf(trimRegion.getSize()).toString()}));
addHistoryItem(trimRegion);
addHistoryItem(removeGapCols);
- statusBar.setText("Removed " + removeGapCols.getSize()
- + " empty columns.");
+ statusBar.setText(MessageManager.formatMessage("label.removed_empty_columns", new String[]{Integer.valueOf(removeGapCols.getSize()).toString()}));
// This is to maintain viewport position on first residue
// of first sequence
newap.av.viewName = newViewName;
addAlignmentPanel(newap, true);
-
+ newap.alignmentChanged();
+
if (alignPanels.size() == 2)
{
viewport.gatherViewsHere = true;
editPane.setEditable(false);
StringBuffer contents = new AlignmentProperties(viewport.getAlignment())
.formatAsHtml();
- editPane.setText("<html>" + contents.toString() + "</html>");
+ editPane.setText(MessageManager.formatMessage("label.html_content", new String[]{contents.toString()}));
JInternalFrame frame = new JInternalFrame();
frame.getContentPane().add(new JScrollPane(editPane));
int option = JOptionPane.showInternalConfirmDialog(
jalview.gui.Desktop.desktop,
- "Remove from default list?",
- "Remove user defined colour",
+ MessageManager.getString("label.remove_from_default_list"),
+ MessageManager.getString("label.remove_user_defined_colour"),
JOptionPane.YES_NO_OPTION);
if (option == JOptionPane.YES_OPTION)
{
|| (viewport.getSelectionGroup().getSize() < 2))
{
JOptionPane.showInternalMessageDialog(this,
- "You must select at least 2 sequences.", "Invalid Selection",
+ MessageManager.getString("label.you_must_select_least_two_sequences"), MessageManager.getString("label.invalid_selection"),
JOptionPane.WARNING_MESSAGE);
}
else
|| (viewport.getAlignment().getHeight() < 4))
{
JOptionPane.showInternalMessageDialog(this,
- "Principal component analysis must take\n"
- + "at least 4 input sequences.",
- "Sequence selection insufficient",
+ MessageManager.getString("label.principal_component_analysis_must_take_least_four_input_sequences"),
+ MessageManager.getString("label.sequence_selection_insufficient"),
JOptionPane.WARNING_MESSAGE);
return;
JOptionPane
.showMessageDialog(
Desktop.desktop,
- "You need to have more than two sequences selected to build a tree!",
- "Not enough sequences", JOptionPane.WARNING_MESSAGE);
+ MessageManager.getString("label.you_need_more_two_sequences_selected_build_tree"),
+ MessageManager.getString("label.not_enough_sequences"), JOptionPane.WARNING_MESSAGE);
return;
}
JOptionPane
.showMessageDialog(
Desktop.desktop,
- "The selected region to create a tree may\nonly contain residues or gaps.\n"
- + "Try using the Pad function in the edit menu,\n"
- + "or one of the multiple sequence alignment web services.",
- "Sequences in selection are not aligned",
+ MessageManager.getString("label.selected_region_to_tree_may_only_contain_residues_or_gaps"),
+ MessageManager.getString("label.sequences_selection_not_aligned"),
JOptionPane.WARNING_MESSAGE);
return;
JOptionPane
.showMessageDialog(
Desktop.desktop,
- "The sequences must be aligned before creating a tree.\n"
- + "Try using the Pad function in the edit menu,\n"
- + "or one of the multiple sequence alignment web services.",
- "Sequences not aligned",
+ MessageManager.getString("label.sequences_must_be_aligned_before_creating_tree"),
+ MessageManager.getString("label.sequences_not_aligned"),
JOptionPane.WARNING_MESSAGE);
return;
} catch (Exception ex)
{
JOptionPane.showMessageDialog(Desktop.desktop, ex.getMessage(),
- "Problem reading tree file", JOptionPane.WARNING_MESSAGE);
+ MessageManager.getString("label.problem_reading_tree_file"), JOptionPane.WARNING_MESSAGE);
ex.printStackTrace();
}
if (fin != null && fin.hasWarningMessage())
{
JOptionPane.showMessageDialog(Desktop.desktop,
- fin.getWarningMessage(), "Possible problem with tree file",
+ fin.getWarningMessage(), MessageManager.getString("label.possible_problem_with_tree_file"),
JOptionPane.WARNING_MESSAGE);
}
}
@Override
public void run()
{
+ final List<JMenuItem> legacyItems=new ArrayList<JMenuItem>();
try
{
System.err.println("Building ws menu again "
// TODO: refactor to allow list of AbstractName/Handler bindings to
// be
// stored or retrieved from elsewhere
- Vector msaws = null; // (Vector) Discoverer.services.get("MsaWS");
+ // No MSAWS used any more:
+ // Vector msaws = null; // (Vector) Discoverer.services.get("MsaWS");
Vector secstrpr = (Vector) Discoverer.services
.get("SecStrPred");
- Vector seqsrch = null; // (Vector)
- // Discoverer.services.get("SeqSearch");
- // TODO: move GUI generation code onto service implementation - so a
- // client instance attaches itself to the GUI with method call like
- // jalview.ws.MsaWSClient.bind(servicehandle, Desktop.instance,
- // alignframe)
- if (msaws != null)
- {
- // Add any Multiple Sequence Alignment Services
- for (int i = 0, j = msaws.size(); i < j; i++)
- {
- final ext.vamsas.ServiceHandle sh = (ext.vamsas.ServiceHandle) msaws
- .get(i);
- jalview.ws.WSMenuEntryProviderI impl = jalview.ws.jws1.Discoverer
- .getServiceClient(sh);
- impl.attachWSMenuEntry(msawsmenu, me);
-
- }
- }
if (secstrpr != null)
{
// Add any secondary structure prediction services
.get(i);
jalview.ws.WSMenuEntryProviderI impl = jalview.ws.jws1.Discoverer
.getServiceClient(sh);
+ int p=secstrmenu.getItemCount();
impl.attachWSMenuEntry(secstrmenu, me);
- }
- }
- if (seqsrch != null)
- {
- // Add any sequence search services
- for (int i = 0, j = seqsrch.size(); i < j; i++)
- {
- final ext.vamsas.ServiceHandle sh = (ext.vamsas.ServiceHandle) seqsrch
- .elementAt(i);
- jalview.ws.WSMenuEntryProviderI impl = jalview.ws.jws1.Discoverer
- .getServiceClient(sh);
- impl.attachWSMenuEntry(seqsrchmenu, me);
+ int q=secstrmenu.getItemCount();
+ for (int litm=p;litm<q; litm++)
+ {
+ legacyItems.add(secstrmenu.getItem(litm));
+ }
}
}
}
-
+
// Add all submenus in the order they should appear on the web
// services menu
wsmenu.add(msawsmenu);
wsmenu.add(secstrmenu);
wsmenu.add(dismenu);
wsmenu.add(analymenu);
- // final ArrayList<JMenu> submens=new ArrayList<JMenu>();
- // submens.add(msawsmenu);
- // submens.add(secstrmenu);
- // submens.add(dismenu);
- // submens.add(analymenu);
-
// No search services yet
// wsmenu.add(seqsrchmenu);
webService.add(me.webServiceNoServices);
}
// TODO: move into separate menu builder class.
+ boolean new_sspred=false;
if (Cache.getDefault("SHOW_JWS2_SERVICES", true))
{
Jws2Discoverer jws2servs = Jws2Discoverer.getDiscoverer();
if (jws2servs.hasServices())
{
jws2servs.attachWSMenuEntry(webService, me);
+ for (Jws2Instance sv:jws2servs.getServices()) {
+ if (sv.description.toLowerCase().contains("jpred"))
+ {
+ for (JMenuItem jmi:legacyItems)
+ {
+ jmi.setVisible(false);
+ }
+ }
+ }
+
}
if (jws2servs.isRunning())
{
}
}
}
-
build_urlServiceMenu(me.webService);
build_fetchdbmenu(webService);
for (JMenu item : wsmenu)
JOptionPane
.showMessageDialog(
Desktop.desktop,
- "Please select at least three bases in at least one sequence in order to perform a cDNA translation.",
- "Translation Failed", JOptionPane.WARNING_MESSAGE);
+ MessageManager.getString("label.select_at_least_three_bases_in_at_least_one_sequence_to_cDNA_translation"),
+ MessageManager.getString("label.translation_failed"), JOptionPane.WARNING_MESSAGE);
}
else
{
} catch (Exception ex)
{
al = null;
- jalview.bin.Cache.log.debug("Exception during translation.", ex);
+ jalview.bin.Cache.log.error("Exception during translation. Please report this !", ex);
+ JOptionPane
+ .showMessageDialog(
+ Desktop.desktop,
+ MessageManager.getString("label.error_when_translating_sequences_submit_bug_report"),
+ MessageManager.getString("label.implementation_error") + MessageManager.getString("translation_failed"), JOptionPane.ERROR_MESSAGE);
+ return;
}
if (al == null)
{
JOptionPane
.showMessageDialog(
Desktop.desktop,
- "Please select at least three bases in at least one sequence in order to perform a cDNA translation.",
- "Translation Failed", JOptionPane.WARNING_MESSAGE);
+ MessageManager.getString("label.select_at_least_three_bases_in_at_least_one_sequence_to_cDNA_translation"),
+ MessageManager.getString("label.translation_failed"), JOptionPane.WARNING_MESSAGE);
}
else
{
|| JOptionPane
.showConfirmDialog(
this,
- "Do you want to automatically associate the "
- + filesmatched.size()
- + " PDB files with sequences in the alignment that have the same name ?",
- "Automatically Associate PDB files by name",
+ MessageManager.formatMessage("label.automatically_associate_pdb_files_with_sequences_same_name",
+ new String[]{Integer.valueOf(filesmatched.size()).toString()}),
+ MessageManager.getString("label.automatically_associate_pdb_files_by_name"),
JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION)
{
"AUTOASSOCIATE_PDBANDSEQS_IGNOREOTHERS", false) || JOptionPane
.showConfirmDialog(
this,
- "<html>Do you want to <em>ignore</em> the "
- + filesnotmatched.size()
- + " files whose names did not match any sequence IDs ?</html>",
- "Ignore unmatched dropped files ?",
+ MessageManager.formatMessage("label.ignore_unmatched_dropped_files_info", new String[]{Integer.valueOf(filesnotmatched.size()).toString()}),
+ MessageManager.getString("label.ignore_unmatched_dropped_files"),
JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION))
{
return;
tcoffeeColour.setSelected(true);
changeColour(new TCoffeeColourScheme(viewport.getAlignment()));
isAnnotation = true;
- statusBar
- .setText("Successfully pasted T-Coffee scores to alignment.");
+ statusBar.setText(MessageManager.getString("label.successfully_pasted_tcoffee_scores_to_alignment"));
}
else
{
JOptionPane
.showMessageDialog(
Desktop.desktop,
- tcf.getWarningMessage() == null ? "Check that the file matches sequence IDs in the alignment."
+ tcf.getWarningMessage() == null ? MessageManager.getString("label.check_file_matches_sequence_ids_alignment")
: tcf.getWarningMessage(),
- "Problem reading T-COFFEE score file",
+ MessageManager.getString("label.problem_reading_tcoffee_score_file"),
JOptionPane.WARNING_MESSAGE);
}
}
{
alignPanel = (AlignmentPanel) alignPanels.elementAt(index);
viewport = alignPanel.av;
+ avc.setViewportAndAlignmentPanel(viewport, alignPanel);
setMenusFromViewport(viewport);
}
}
if (SwingUtilities.isRightMouseButton(e))
{
String reply = JOptionPane.showInternalInputDialog(this,
- "Enter View Name", "Edit View Name",
+ MessageManager.getString("label.enter_view_name"), MessageManager.getString("label.enter_view_name"),
JOptionPane.QUESTION_MESSAGE);
if (reply != null)
++i;
if (++icomp >= mcomp || i == (otherdb.size()))
{
- ifetch.setText(imname + " to '" + sname + "'");
+ ifetch.setText(MessageManager.formatMessage("label.source_to_target",new String[]{imname,sname}));
dfetch.add(ifetch);
ifetch = new JMenu();
imname = null;
++dbi;
if (comp >= mcomp || dbi >= (dbclasses.length))
{
- dfetch.setText(mname + " to '" + dbclass + "'");
+ dfetch.setText(MessageManager.formatMessage("label.source_to_target",new String[]{mname,dbclass}));
rfetch.add(dfetch);
dfetch = new JMenu();
mname = null;
@Override
protected void makeGrpsFromSelection_actionPerformed(ActionEvent e)
{
- if (viewport.getSelectionGroup() != null)
- {
- SequenceGroup[] gps = jalview.analysis.Grouping.makeGroupsFrom(
- viewport.getSequenceSelection(),
- viewport.getAlignmentView(true).getSequenceStrings(
- viewport.getGapCharacter()), viewport.getAlignment()
- .getGroups());
- viewport.getAlignment().deleteAllGroups();
- viewport.sequenceColours = null;
- viewport.setSelectionGroup(null);
- // set view properties for each group
- for (int g = 0; g < gps.length; g++)
- {
- gps[g].setShowNonconserved(viewport.getShowUnconserved());
- gps[g].setshowSequenceLogo(viewport.isShowSequenceLogo());
- viewport.getAlignment().addGroup(gps[g]);
- Color col = new Color((int) (Math.random() * 255),
- (int) (Math.random() * 255), (int) (Math.random() * 255));
- col = col.brighter();
- for (SequenceI s : gps[g].getSequences())
- viewport.setSequenceColour(s, col);
- }
+ if (avc.makeGroupsFromSelection()) {
PaintRefresher.Refresh(this, viewport.getSequenceSetId());
alignPanel.updateAnnotation();
alignPanel.paintAlignment(true);
}
}
+ @Override
+ protected void createGroup_actionPerformed(ActionEvent e)
+ {
+ if (avc.createGroup())
+ {
+ alignPanel.alignmentChanged();
+ }
+ }
+
+ @Override
+ protected void unGroup_actionPerformed(ActionEvent e)
+ {
+ if (avc.unGroup())
+ {
+ alignPanel.alignmentChanged();
+ }
+ }
+
/**
* make the given alignmentPanel the currently selected tab
*
Stack redoList = new Stack();
- Hashtable sequenceColours;
-
int thresholdTextColour = 0;
Color textColour = Color.black;
showHiddenMarkers = show;
}
- public Color getSequenceColour(SequenceI seq)
- {
- if (sequenceColours == null || !sequenceColours.containsKey(seq))
- {
- return Color.white;
- }
- else
- {
- return (Color) sequenceColours.get(seq);
- }
- }
-
- public void setSequenceColour(SequenceI seq, Color col)
- {
- if (sequenceColours == null)
- {
- sequenceColours = new Hashtable();
- }
-
- if (col == null)
- {
- sequenceColours.remove(seq);
- }
- else
- {
- sequenceColours.put(seq, col);
- }
- }
-
/**
* returns the visible column regions of the alignment
*
centreColumnLabels = centrecolumnlabels;
}
- public void updateSequenceIdColours()
- {
- if (sequenceColours == null)
- {
- sequenceColours = new Hashtable();
- }
- for (SequenceGroup sg : alignment.getGroups())
- {
- if (sg.idColour != null)
- {
- for (SequenceI s : sg.getSequences(getHiddenRepSequences()))
- {
- sequenceColours.put(s, sg.idColour);
- }
- }
- }
- }
/**
* enable or disable the display of Database Cross References in the sequence
seqPanel.seqCanvas.fastPaint(scrollX, scrollY);
scalePanel.repaint();
- if (av.getShowAnnotation())
+ if (av.getShowAnnotation() && scrollX!=0)
{
annotationPanel.fastPaint(scrollX);
}
void makeAlignmentImage(int type, File file)
{
long progress = System.currentTimeMillis();
- if (alignFrame != null)
+ boolean headless = (System.getProperty("java.awt.headless") != null
+ && System.getProperty("java.awt.headless").equals("true"));
+ if (alignFrame != null && !headless)
{
alignFrame.setProgressBar("Saving "
+ (type == jalview.util.ImageMaker.PNG ? "PNG image"
if (av.getWrapAlignment())
{
height = getWrappedHeight();
- if (System.getProperty("java.awt.headless") != null
- && System.getProperty("java.awt.headless").equals("true"))
+ if (headless)
{
// need to obtain default alignment width and then add in any
// additional allowance for id margin
}
} finally
{
- if (alignFrame != null)
+ if (alignFrame != null && !headless)
{
alignFrame.setProgressBar("Export complete.", progress);
}
import jalview.bin.Cache;
import jalview.datamodel.*;
import jalview.schemes.*;
+import jalview.util.MessageManager;
+
import java.awt.Dimension;
public class AnnotationColourChooser extends JPanel
jalview.datamodel.AlignmentAnnotation currentAnnotation;
boolean adjusting = false;
+ /**
+ * enabled if the user is dragging the slider - try to keep updates to a minimun
+ */
+ boolean sliderDragging = false;
public AnnotationColourChooser(AlignViewport av, final AlignmentPanel ap)
{
if (!adjusting)
{
thresholdValue.setText(((float) slider.getValue() / 1000f) + "");
- valueChanged();
+ valueChanged(!sliderDragging);
}
}
});
slider.addMouseListener(new MouseAdapter()
{
+ @Override
+ public void mousePressed(MouseEvent e)
+ {
+ sliderDragging=true;
+ super.mousePressed(e);
+ }
+
+ @Override
+ public void mouseDragged(MouseEvent e)
+ {
+ sliderDragging=true;
+ super.mouseDragged(e);
+ }
public void mouseReleased(MouseEvent evt)
{
+ if (sliderDragging)
+ {
+ sliderDragging=false;
+ valueChanged(true);
+ }
ap.paintAlignment(true);
}
});
// Always get default shading from preferences.
setDefaultMinMax();
+ adjusting = true;
if (oldcs instanceof AnnotationColourGradient)
{
AnnotationColourGradient acg = (AnnotationColourGradient) oldcs;
- currentColours.setSelected(acg.predefinedColours);
- if (!acg.predefinedColours)
+ currentColours.setSelected(acg.isPredefinedColours() || acg.getBaseColour()!=null);
+ if (!acg.isPredefinedColours() && acg.getBaseColour()==null)
{
minColour.setBackground(acg.getMinColour());
maxColour.setBackground(acg.getMaxColour());
}
seqAssociated.setSelected(acg.isSeqAssociated());
+
}
- adjusting = true;
annotations = new JComboBox(
getAnnotationItems(seqAssociated.isSelected()));
System.arraycopy(anmap, 0, annmap, 0, annmap.length);
return list;
}
-
private void setDefaultMinMax()
{
minColour.setBackground(Cache.getDefaultColour("ANNOTATIONCOLOUR_MIN",
}
});
ok.setOpaque(false);
- ok.setText("OK");
+ ok.setText(MessageManager.getString("action.ok"));
ok.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
}
});
cancel.setOpaque(false);
- cancel.setText("Cancel");
+ cancel.setText(MessageManager.getString("action.cancel"));
cancel.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
}
});
defColours.setOpaque(false);
- defColours.setText("Defaults");
+ defColours.setText(MessageManager.getString("action.set_defaults"));
defColours
.setToolTipText("Reset min and max colours to defaults from user preferences.");
defColours.addActionListener(new ActionListener()
thresholdValue.setColumns(7);
currentColours.setFont(JvSwingUtils.getLabelFont());
currentColours.setOpaque(false);
- currentColours.setText("Use Original Colours");
+ currentColours.setText(MessageManager.getString("label.use_original_colours"));
currentColours.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
});
thresholdIsMin.setBackground(Color.white);
thresholdIsMin.setFont(JvSwingUtils.getLabelFont());
- thresholdIsMin.setText("Threshold is Min/Max");
+ thresholdIsMin.setText(MessageManager.getString("label.threshold_minmax"));
thresholdIsMin.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent actionEvent)
});
seqAssociated.setBackground(Color.white);
seqAssociated.setFont(JvSwingUtils.getLabelFont());
- seqAssociated.setText("Per-sequence only");
+ seqAssociated.setText(MessageManager.getString("label.per_sequence_only"));
seqAssociated.addActionListener(new ActionListener()
{
if (currentAnnotation.graphMin == 0f
&& currentAnnotation.graphMax == 0f)
{
- acg.predefinedColours = true;
+ acg.setPredefinedColours(true);
}
acg.thresholdIsMinMax = thresholdIsMin.isSelected();
}
}
- public void valueChanged()
+ public void valueChanged(boolean updateAllAnnotation)
{
if (currentColours.isSelected()
&& !(av.getGlobalColourScheme() instanceof AnnotationColourGradient))
{
changeColour();
}
-
currentAnnotation.threshold.value = (float) slider.getValue() / 1000f;
+ propagateSeqAssociatedThreshold(updateAllAnnotation);
ap.paintAlignment(false);
}
+ private void propagateSeqAssociatedThreshold(boolean allAnnotation)
+ {
+ if (currentAnnotation.sequenceRef == null
+ || currentAnnotation.threshold == null)
+ {
+ return;
+ }
+ // TODO: JAL-1327 only update visible annotation thresholds if allAnnotation is false, since we only need to provide a quick visual indicator
+
+ float thr = currentAnnotation.threshold.value;
+ for (int i = 0; i < av.getAlignment().getAlignmentAnnotation().length; i++)
+ {
+ AlignmentAnnotation aa = av.getAlignment().getAlignmentAnnotation()[i];
+ if (aa.label.equals(currentAnnotation.label))
+ {
+ aa.threshold.value = thr;
+ }
+ }
+ }
+
public void currentColours_actionPerformed(ActionEvent e)
{
if (currentColours.isSelected())
import jalview.datamodel.*;
import jalview.io.*;
+import jalview.util.MessageManager;
/**
*
{
this.setLayout(new BorderLayout());
- toFile.setText("to File");
+ toFile.setText(MessageManager.getString("label.to_file"));
toFile.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
toFile_actionPerformed(e);
}
});
- toTextbox.setText("to Textbox");
+ toTextbox.setText(MessageManager.getString("label.to_textbox"));
toTextbox.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
toTextbox_actionPerformed(e);
}
});
- close.setText("Close");
+ close.setText(MessageManager.getString("action.close"));
close.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
GFFFormat.setOpaque(false);
GFFFormat.setText("GFF");
CSVFormat.setOpaque(false);
- CSVFormat.setText("CSV(Spreadsheet)");
+ CSVFormat.setText(MessageManager.getString("label.csv_spreadsheet"));
jLabel1.setHorizontalAlignment(SwingConstants.TRAILING);
- jLabel1.setText("Format: ");
+ jLabel1.setText(MessageManager.getString("action.format") + " ");
this.setBackground(Color.white);
jPanel3.setBorder(BorderFactory.createEtchedBorder());
jPanel3.setOpaque(false);
import jalview.datamodel.*;
import jalview.io.*;
+import jalview.util.MessageManager;
/**
* DOCUMENT ME!
RenderingHints.VALUE_ANTIALIAS_ON);
}
- drawComponent(g2, width);
+ drawComponent(g2, true, width);
}
/**
- * DOCUMENT ME!
+ * Draw the full set of annotation Labels for the alignment at the given cursor
*
- * @param g
- * DOCUMENT ME!
+ * @param g Graphics2D instance (needed for font scaling)
+ * @param width Width for scaling labels
+ *
*/
public void drawComponent(Graphics g, int width)
{
+ drawComponent(g, false, width);
+ }
+
+ private final boolean debugRedraw = false;
+ /**
+ * Draw the full set of annotation Labels for the alignment at the given cursor
+ *
+ * @param g Graphics2D instance (needed for font scaling)
+ * @param clip - true indicates that only current visible area needs to be rendered
+ * @param width Width for scaling labels
+ */
+ public void drawComponent(Graphics g, boolean clip, int width)
+ {
if (av.getFont().getSize() < 10)
{
g.setFont(font);
g.translate(0, scrollOffset);
g.setColor(Color.black);
-
+
AlignmentAnnotation[] aa = av.getAlignment().getAlignmentAnnotation();
int fontHeight = g.getFont().getSize();
int y = 0;
Font baseFont = g.getFont();
FontMetrics baseMetrics = fm;
int ofontH = fontHeight;
- boolean visible = true;
+ int sOffset=0;
+ int visHeight = 0;
+ int[] visr = (ap!=null && ap.annotationPanel!=null) ? ap.annotationPanel.getVisibleVRange() : null;
+ if (clip && visr!=null){
+ sOffset = visr[0];
+ visHeight = visr[1];
+ }
+ boolean visible = true,before=false,after=false;
if (aa != null)
{
hasHiddenRows = false;
+ int olY=0;
for (int i = 0; i < aa.length; i++)
{
visible = true;
- g.setColor(Color.black);
-
if (!aa[i].visible)
{
hasHiddenRows = true;
continue;
}
-
+ olY=y;
y += aa[i].height;
+ if (clip) {if (y<sOffset)
+ {
+ if (!before)
+ {
+ if (debugRedraw) {
+ System.out.println("before vis: "+i);
+ }
+ before=true;
+ }
+ // don't draw what isn't visible
+ continue;
+ }
+ if (olY>visHeight)
+ {
+
+ if (!after)
+ {
+ if (debugRedraw) {
+ System.out.println("Scroll offset: "+sOffset+" after vis: "+i);
+ }
+ after=true;
+ }
+ // don't draw what isn't visible
+ continue;
+ }}
+ g.setColor(Color.black);
offset = -aa[i].height / 2;
if (aa[i].graphGroup > -1)
{
int groupSize = 0;
+ // TODO: JAL-1291 revise rendering model so the graphGroup map is computed efficiently for all visible labels
for (int gg = 0; gg < aa.length; gg++)
{
if (aa[gg].graphGroup == aa[i].graphGroup)
dragEvent.getY() - scrollOffset);
}
- if ((aa == null) || (aa.length < 1))
+ if (!av.wrapAlignment && ((aa == null) || (aa.length < 1)))
{
- g.drawString("Right click", 2, 8);
- g.drawString("to add annotation", 2, 18);
+ g.drawString(MessageManager.getString("label.right_click"), 2, 8);
+ g.drawString(MessageManager.getString("label.to_add_annotation"), 2, 18);
}
}
}
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
+
import javax.swing.*;
import jalview.datamodel.*;
import jalview.renderer.AnnotationRenderer;
import jalview.renderer.AwtRenderPanelI;
+import jalview.util.MessageManager;
/**
* AnnotationPanel displays visible portion of annotation rows below unwrapped
else if (evt.getActionCommand().equals(LABEL))
{
String exMesg = collectAnnotVals(anot, av.getColumnSelection(), LABEL);
- String label = JOptionPane.showInputDialog(this, "Enter label",
+ String label = JOptionPane.showInputDialog(this, MessageManager.getString("label.enter_label"),
exMesg);
if (label == null)
}
String label = JOptionPane.showInputDialog(
- "Enter a label for the structure?", symbol);
+ MessageManager.getString("label.enter_label_for_the_structure"), symbol);
if (label == null)
{
anot[index].displayCharacter = label;
}
}
- aa[activeRow].validateRangeAndDisplay();
-
- adjustPanelHeight();
+ av.getAlignment().validateAnnotation(aa[activeRow]);
ap.alignmentChanged();
+
+ adjustPanelHeight();
repaint();
return;
&& aa[row].annotations[res].description != null
&& aa[row].annotations[res].description.length() > 0)
{
- this.setToolTipText(aa[row].annotations[res].description);
+ this.setToolTipText("<html>"+JvSwingUtils.wrapTooltip(aa[row].annotations[res].description)+"</html>");
}
else
{
@Override
public void mouseClicked(MouseEvent evt)
{
- if (activeRow != -1)
- {
- AlignmentAnnotation[] aa = av.getAlignment().getAlignmentAnnotation();
- AlignmentAnnotation anot = aa[activeRow];
-
- if (anot.description.equals("secondary structure"))
- {
- // System.out.println(anot.description+" "+anot.getRNAStruc());
- }
- }
+// if (activeRow != -1)
+// {
+// AlignmentAnnotation[] aa = av.getAlignment().getAlignmentAnnotation();
+// AlignmentAnnotation anot = aa[activeRow];
+// }
}
// TODO mouseClicked-content and drawCursor are quite experimental!
imgWidth = (av.endRes - av.startRes + 1) * av.charWidth;
if (imgWidth < 1)
return;
- if (image == null || imgWidth != image.getWidth()
+ if (image == null || imgWidth != image.getWidth(this)
|| image.getHeight(this) != getHeight())
{
try
imageFresh = false;
g.drawImage(image, 0, 0, this);
}
-
+ /**
+ * set true to enable redraw timing debug output on stderr
+ */
+ private final boolean debugRedraw = false;
/**
* non-Thread safe repaint
*
*/
public void fastPaint(int horizontal)
{
-
if ((horizontal == 0) || gg == null
|| av.getAlignment().getAlignmentAnnotation() == null
|| av.getAlignment().getAlignmentAnnotation().length < 1
repaint();
return;
}
+ long stime=System.currentTimeMillis();
gg.copyArea(0, 0, imgWidth, getHeight(), -horizontal * av.charWidth, 0);
-
+ long mtime=System.currentTimeMillis();
int sr = av.startRes;
int er = av.endRes + 1;
int transX = 0;
drawComponent(gg, sr, er);
gg.translate(-transX, 0);
-
+ long dtime=System.currentTimeMillis();
fastPaint = true;
repaint();
+ long rtime=System.currentTimeMillis();
+ if (debugRedraw) {
+ System.err.println("Scroll:\t"+horizontal+"\tCopyArea:\t"+(mtime-stime)+"\tDraw component:\t"+(dtime-mtime)+"\tRepaint call:\t"+(rtime-dtime));
+ }
}
}
fadedImage = null;
}
-
+
g.setColor(Color.white);
g.fillRect(0, 0, (endRes - startRes) * av.charWidth, getHeight());
g.setColor(Color.black);
if (av.validCharWidth)
{
- g.drawString("Alignment has no annotations", 20, 15);
+ g.drawString(MessageManager.getString("label.alignment_has_no_annotations"), 20, 15);
}
return;
{
return imgWidth;
}
+ private int[] bounds = new int[2];
+ @Override
+ public int[] getVisibleVRange()
+ {
+ if (ap!=null && ap.alabels!=null)
+ {
+ int sOffset=-ap.alabels.scrollOffset;
+ int visHeight = sOffset+ap.annotationSpaceFillerHolder.getHeight();
+ bounds[0] = sOffset; bounds[1]=visHeight;
+ return bounds;
+ } else return null;
+ }
}
import jalview.datamodel.PDBEntry;
import jalview.io.*;
import jalview.schemes.*;
+import jalview.util.MessageManager;
import jalview.util.Platform;
public class AppJmol extends GStructureViewer implements Runnable,
if (alreadyMapped != null)
{
int option = JOptionPane.showInternalConfirmDialog(Desktop.desktop,
- pdbentry.getId() + " is already displayed."
- + "\nDo you want to re-use this viewer ?",
- "Map Sequences to Visible Window: " + pdbentry.getId(),
+ MessageManager.formatMessage("label.pdb_entry_is_already_displayed", new String[]{pdbentry.getId()}),
+ MessageManager.formatMessage("label.map_sequences_to_visible_window", new String[]{pdbentry.getId()}),
JOptionPane.YES_NO_OPTION);
if (option == JOptionPane.YES_OPTION)
AppJmol topJmol = (AppJmol) jm.nextElement();
// TODO: highlight topJmol in view somehow
int option = JOptionPane.showInternalConfirmDialog(Desktop.desktop,
- "Do you want to add " + pdbentry.getId()
- + " to the view called\n'" + topJmol.getTitle()
- + "'\n", "Align to existing structure view",
+ MessageManager.formatMessage("label.add_pdbentry_to_view", new String[]{pdbentry.getId(),topJmol.getTitle()}),
+ MessageManager.getString("label.align_to_existing_structure_view"),
JOptionPane.YES_NO_OPTION);
if (option == JOptionPane.YES_OPTION)
{
{
JOptionPane.showInternalMessageDialog(Desktop.desktop,
- "The following pdb entries could not be retrieved from the PDB:\n"
- + errormsgs.toString()
- + "\nPlease try downloading them manually.",
- "Couldn't load file", JOptionPane.ERROR_MESSAGE);
+ MessageManager.formatMessage("label.pdb_entries_couldnt_be_retrieved", new String[]{errormsgs.toString()}),
+ MessageManager.getString("label.couldnt_load_file"), JOptionPane.ERROR_MESSAGE);
}
long lastnotify = jmb.getLoadNotifiesHandled();
g.fillRect(0, 0, currentSize.width, currentSize.height);
g.setColor(Color.white);
g.setFont(new Font("Verdana", Font.BOLD, 14));
- g.drawString("Error loading file...", 20, currentSize.height / 2);
+ g.drawString(MessageManager.getString("label.error_loading_file") + "...", 20, currentSize.height / 2);
StringBuffer sb = new StringBuffer();
int lines = 0;
for (int e = 0; e < jmb.pdbentry.length; e++)
g.fillRect(0, 0, currentSize.width, currentSize.height);
g.setColor(Color.white);
g.setFont(new Font("Verdana", Font.BOLD, 14));
- g.drawString("Retrieving PDB data....", 20, currentSize.height / 2);
+ g.drawString(MessageManager.getString("label.retrieving_pdb_data"), 20, currentSize.height / 2);
}
else
{
*/
package jalview.gui;
+import jalview.util.MessageManager;
+
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
private JTextField _seq = new JTextField();
- private JLabel _strLabel = new JLabel(" Str:");
+ private JLabel _strLabel = new JLabel(MessageManager.getString("label.str"));
- private JLabel _seqLabel = new JLabel(" Seq:");
+ private JLabel _seqLabel = new JLabel(MessageManager.getString("label.seq"));
- private JButton _createButton = new JButton("Create");
+ private JButton _createButton = new JButton(MessageManager.getString("action.create"));
- private JButton _updateButton = new JButton("Update");
+ private JButton _updateButton = new JButton(MessageManager.getString("action.update"));
- private JButton _deleteButton = new JButton("Delete");
+ private JButton _deleteButton = new JButton(MessageManager.getString("action.delete"));
- private JButton _duplicateButton = new JButton("Snapshot");
+ private JButton _duplicateButton = new JButton(MessageManager.getString("action.snapshot"));
protected JPanel _listPanel = new JPanel();
ops.add(_deleteButton);
ops.add(_duplicateButton);
- JLabel j = new JLabel("Structures Manager", JLabel.CENTER);
+ JLabel j = new JLabel(MessageManager.getString("label.structures_manager"), JLabel.CENTER);
_listPanel.setLayout(new BorderLayout());
// _listPanel.add(ops, BorderLayout.SOUTH);
import jalview.datamodel.PDBEntry;
import jalview.datamodel.SequenceI;
+import jalview.util.MessageManager;
/**
* GUI related routines for associating PDB files with sequences
reply = JOptionPane
.showInternalInputDialog(
Desktop.desktop,
- "Couldn't find a PDB id in the file supplied."
- + "Please enter an Id to identify this structure.",
- "No PDB Id in File", JOptionPane.QUESTION_MESSAGE);
+ MessageManager.getString("label.couldnt_find_pdb_id_in_file"),
+ MessageManager.getString("label.no_pdb_id_in_file"), JOptionPane.QUESTION_MESSAGE);
}
if (reply == null)
{
package jalview.gui;
import jalview.bin.Cache;
+import jalview.util.MessageManager;
+
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Dimension;
java.util.Date earliest = null;
try
{
- earliest = new SimpleDateFormat("YYYY-MM-DD").parse(chan
+ earliest = new SimpleDateFormat("YYYY-MM-DD",MessageManager.getLocale()).parse(chan
.getHTTPLastModified());
} catch (Exception x)
{
topBottomSplitPane.setBottomComponent(bottomPanel);
JScrollPane spTextDescription = new JScrollPane(textDescription);
textDescription.setText("");
- statusBar.setText(" [Status] ");
+ statusBar.setText(MessageManager.getString("label.status"));
buttonRefresh.addActionListener(new ActionListener()
{
_popupChannels);
listItems.addMouseListener(popupAdapter);
listItems.setCellRenderer(new ItemsRenderer());
- lblChannels.setText("Channels");
+ lblChannels.setText(MessageManager.getString("label.channels"));
}
private void postInit()
if (value instanceof Channel)
{
Channel channel = (Channel) value;
- component.setText(channel.getTitle() + " ("
- + channel.getUnreadItemCount() + ")");
+ component.setText(MessageManager.formatMessage("label.channel_title_item_count", new String[]{channel.getTitle(),Integer.valueOf(channel.getUnreadItemCount()).toString()}));
component.setToolTipText(channel.getURL());
}
return component;
Item item = (Item) value;
if (item.getPublishDate() != null)
{
- component.setText(DateFormat.getDateInstance().format(
- item.getPublishDate())
- + " " + item.getTitle());
+ component.setText(MessageManager.formatMessage("label.blog_item_published_on_date", new String[]{DateFormat.getDateInstance(DateFormat.LONG, MessageManager.getLocale()).format(item.getPublishDate()).toString(),item.getTitle()}));
}
component.setToolTipText(item.getLink());
if (!item.isRead())
*/
package jalview.gui;
+import jalview.util.MessageManager;
+
import java.io.*;
import java.awt.*;
import java.awt.event.*;
// textArea = cpt.getTextArea();
textArea = new JTextArea();
textArea.setEditable(false);
- JButton button = new JButton("clear");
+ JButton button = new JButton(MessageManager.getString("action.clear"));
// frame = cpt;
frame.getContentPane().setLayout(new BorderLayout());
import jalview.io.*;
import jalview.jbgui.*;
+import jalview.util.MessageManager;
/**
* Cut'n'paste files into the desktop See JAL-1105
this.viewport = viewport;
if (viewport != null)
{
- ok.setText("Add");
+ ok.setText(MessageManager.getString("action.add"));
}
getContentPane().add(inputButtonPanel, java.awt.BorderLayout.SOUTH);
import jalview.datamodel.*;
import jalview.io.*;
import jalview.jbgui.*;
+import jalview.util.MessageManager;
/**
* Cut'n'paste files into the desktop See JAL-1105
this.viewport = viewport;
if (viewport != null)
{
- ok.setText("Add");
+ ok.setText(MessageManager.getString("action.add"));
}
getContentPane().add(inputButtonPanel, java.awt.BorderLayout.SOUTH);
} catch (java.io.IOException ex)
{
JOptionPane.showInternalMessageDialog(Desktop.desktop,
- "Couldn't read the pasted text.\n" + ex.toString(),
- "Error parsing text", JOptionPane.WARNING_MESSAGE);
+ MessageManager.formatMessage("label.couldnt_read_pasted_text", new String[]{ex.toString()}),
+ MessageManager.getString("label.error_parsing_text"), JOptionPane.WARNING_MESSAGE);
}
}
af.currentFileFormat = format;
Desktop.addInternalFrame(af, "Cut & Paste input - " + format,
AlignFrame.DEFAULT_WIDTH, AlignFrame.DEFAULT_HEIGHT);
- af.statusBar.setText("Successfully pasted alignment file");
+ af.statusBar.setText(MessageManager.getString("label.successfully_pasted_alignment_file"));
try
{
package jalview.gui;
import jalview.jbgui.GDasSourceBrowser;
+import jalview.util.MessageManager;
import jalview.util.TableSorter;
import jalview.ws.dbsources.das.api.DasSourceRegistryI;
import jalview.ws.dbsources.das.api.jalviewSourceI;
if (nickName == null)
{
- fullDetails.setText(text + "Select a DAS service from the table"
- + " to read a full description here.</font></html>");
+ fullDetails.setText(text + MessageManager.getString("label.select_das_service_from_table"));
return;
}
JTextField nametf = new JTextField(nickname, 40);
JTextField urltf = new JTextField(url, 40);
- JCheckBox seqs = new JCheckBox("Sequence Source");
+ JCheckBox seqs = new JCheckBox(MessageManager.getString("label.sequence_source"));
seqs.setSelected(seqsrc);
JPanel panel = new JPanel(new BorderLayout());
JPanel pane12 = new JPanel(new BorderLayout());
- pane12.add(new JLabel("Nickname: "), BorderLayout.CENTER);
+ pane12.add(new JLabel(MessageManager.getString("label.structure_manager")), BorderLayout.CENTER);
pane12.add(nametf, BorderLayout.EAST);
panel.add(pane12, BorderLayout.NORTH);
pane12 = new JPanel(new BorderLayout());
- pane12.add(new JLabel("URL: "), BorderLayout.NORTH);
+ pane12.add(new JLabel(MessageManager.getString("label.url")), BorderLayout.NORTH);
pane12.add(seqs, BorderLayout.SOUTH);
pane12.add(urltf, BorderLayout.EAST);
panel.add(pane12, BorderLayout.SOUTH);
int reply = JOptionPane.showInternalConfirmDialog(Desktop.desktop,
- panel, "Enter Nickname & URL of Local DAS Source",
+ panel, MessageManager.getString("label.enter_local_das_source"),
JOptionPane.OK_CANCEL_OPTION);
if (reply != JOptionPane.OK_OPTION)
if (!sourceRegistry.getSource(nickname).isLocal())
{
JOptionPane.showInternalMessageDialog(Desktop.desktop,
- "You can only edit or remove local DAS Sources!",
- "Public DAS source - not editable",
+ MessageManager.getString("label.you_can_only_edit_or_remove_local_das_sources"),
+ MessageManager.getString("label.public_das_source"),
JOptionPane.WARNING_MESSAGE);
return;
}
import jalview.io.IdentifyFile;
import jalview.io.JalviewFileChooser;
import jalview.io.JalviewFileView;
+import jalview.util.MessageManager;
import jalview.ws.params.ParamManager;
import java.awt.BorderLayout;
// A HEADLESS STATE WHEN NO DESKTOP EXISTS. MUST RETURN
// IF JALVIEW IS RUNNING HEADLESS
// ///////////////////////////////////////////////
- if (System.getProperty("java.awt.headless") != null
- && System.getProperty("java.awt.headless").equals("true"))
+ if (instance == null || (System.getProperty("java.awt.headless") != null
+ && System.getProperty("java.awt.headless").equals("true")))
{
return;
}
{
// This construct allows us to have a wider textfield
// for viewing
- JLabel label = new JLabel("Enter URL of Input File");
+ JLabel label = new JLabel(MessageManager.getString("label.input_file_url"));
final JComboBox history = new JComboBox();
JPanel panel = new JPanel(new GridLayout(2, 1));
}
int reply = JOptionPane.showInternalConfirmDialog(desktop, panel,
- "Input Alignment From URL", JOptionPane.OK_CANCEL_OPTION);
+ MessageManager.getString("label.input_alignment_from_url"), JOptionPane.OK_CANCEL_OPTION);
if (reply != JOptionPane.OK_OPTION)
{
if (!vamsasImport(chooser.getSelectedFile()))
{
JOptionPane.showInternalMessageDialog(Desktop.desktop,
- "Couldn't import '" + fle + "' as a new vamsas session.",
- "Vamsas Document Import Failed",
+ MessageManager.formatMessage("label.couldnt_import_as_vamsas_session", new String[]{fle}),
+ MessageManager.getString("label.vamsas_document_import_failed"),
JOptionPane.ERROR_MESSAGE);
}
}
protected void setupVamsasConnectedGui()
{
- vamsasStart.setText("Session Update");
+ vamsasStart.setText(MessageManager.getString("label.session_update"));
vamsasSave.setVisible(true);
vamsasStop.setVisible(true);
vamsasImport.setVisible(false); // Document import to existing session is
vamsasSave.setVisible(false);
vamsasStop.setVisible(false);
vamsasImport.setVisible(true);
- vamsasStart.setText("New Vamsas Session");
+ vamsasStart.setText(MessageManager.getString("label.new_vamsas_session"));
}
public void vamsasStop_actionPerformed(ActionEvent e)
if (fm != null)
{
g.drawString(
- "Total Free Memory: " + df.format(totalFreeMemory)
- + "MB; Max Memory: " + df.format(maxMemory)
- + "MB; " + df.format(percentUsage) + "%", 10,
+ MessageManager.formatMessage("label.memory_stats", new String[]{df.format(totalFreeMemory),df.format(maxMemory),df.format(percentUsage)}), 10,
getHeight() - fm.getHeight());
}
}
if (jalview.bin.Cache.groovyJarsPresent())
{
groovyShell = new JMenuItem();
- groovyShell.setText("Groovy Console...");
+ groovyShell.setText(MessageManager.getString("label.groovy_console"));
groovyShell.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
final JPanel progressPanel = (JPanel) progressBars.get(new Long(id));
if (handler.canCancel())
{
- JButton cancel = new JButton("Cancel");
+ JButton cancel = new JButton(MessageManager.getString("action.cancel"));
final IProgressIndicator us = this;
cancel.addActionListener(new ActionListener()
{
{
boolean alive = true;
Thread t0 = null, t1 = null, t2 = null;
-
+ // JAL-940 - JALVIEW 1 services are now being EOLed as of JABA 2.1 release
+ if (true)
+ {
// todo: changesupport handlers need to be transferred
if (discoverer == null)
{
}
// JAL-940 - disabled JWS1 service configuration - always start discoverer
// until we phase out completely
- if (true)
- {
(t0 = new Thread(discoverer)).start();
}
- try
+ // ENFIN services are EOLed as of Jalview 2.8.1 release
+ if (false)
{
- if (Cache.getDefault("SHOW_ENFIN_SERVICES", true))
+ try
{
- // EnfinEnvision web service menu entries are rebuild every time the
- // menu is shown, so no changeSupport events are needed.
- jalview.ws.EnfinEnvision2OneWay.getInstance();
- (t1 = new Thread(jalview.ws.EnfinEnvision2OneWay.getInstance()))
- .start();
+ if (Cache.getDefault("SHOW_ENFIN_SERVICES", true))
+ {
+ // EnfinEnvision web service menu entries are rebuild every time the
+ // menu is shown, so no changeSupport events are needed.
+ jalview.ws.EnfinEnvision2OneWay.getInstance();
+ (t1 = new Thread(jalview.ws.EnfinEnvision2OneWay.getInstance()))
+ .start();
+ }
+ } catch (Exception e)
+ {
+ Cache.log
+ .info("Exception when trying to launch Envision2 workflow discovery.",
+ e);
+ Cache.log.info(e.getStackTrace());
}
- } catch (Exception e)
- {
- Cache.log
- .info("Exception when trying to launch Envision2 workflow discovery.",
- e);
- Cache.log.info(e.getStackTrace());
}
+
if (Cache.getDefault("SHOW_JWS2_SERVICES", true))
{
if (jalview.ws.jws2.Jws2Discoverer.getDiscoverer().isRunning())
*/
package jalview.gui;
+import jalview.util.MessageManager;
+
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
private void jbInit() throws Exception
{
lineart.setFont(JvSwingUtils.getLabelFont());
- lineart.setText("Lineart");
+ lineart.setText(MessageManager.getString("label.lineart"));
text.setFont(JvSwingUtils.getLabelFont());
- text.setText("Text");
+ text.setText(MessageManager.getString("action.text"));
text.setSelected(true);
askAgain.setFont(JvSwingUtils.getLabelFont());
- askAgain.setText("Don\'t ask me again");
- ok.setText("OK");
+ askAgain.setText(MessageManager.getString("label.dont_ask_me_again"));
+ ok.setText(MessageManager.getString("action.ok"));
ok.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
ok_actionPerformed(e);
}
});
- cancel.setText("Cancel");
+ cancel.setText(MessageManager.getString("action.cancel"));
cancel.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
}
});
jLabel1.setFont(JvSwingUtils.getLabelFont());
- jLabel1.setText("Select EPS character rendering style");
+ jLabel1.setText(MessageManager.getString("label.select_eps_character_rendering_style"));
this.setLayout(borderLayout1);
jPanel3.setBorder(BorderFactory.createEtchedBorder());
jPanel2.add(text);
*/
package jalview.gui;
+import jalview.util.MessageManager;
+
import java.awt.*;
import javax.swing.*;
{
JTextField id, description;
- JButton ok = new JButton("Accept");
+ JButton ok = new JButton(MessageManager.getString("action.accept"));
- JButton cancel = new JButton("Cancel");
+ JButton cancel = new JButton(MessageManager.getString("action.cancel"));
boolean accept = false;
import jalview.datamodel.*;
import jalview.schemes.*;
+import jalview.util.MessageManager;
+
import java.awt.Dimension;
public class FeatureColourChooser extends JalviewDialog
}
});
maxColour.setBorder(new LineBorder(Color.black));
- minText.setText("Min:");
+ minText.setText(MessageManager.getString("label.min"));
minText.setFont(JvSwingUtils.getLabelFont());
- maxText.setText("Max:");
+ maxText.setText(MessageManager.getString("label.max"));
maxText.setFont(JvSwingUtils.getLabelFont());
this.setLayout(borderLayout1);
jPanel2.setLayout(flowLayout1);
thresholdValue.setColumns(7);
jPanel3.setBackground(Color.white);
thresholdIsMin.setBackground(Color.white);
- thresholdIsMin.setText("Threshold is Min/Max");
+ thresholdIsMin.setText(MessageManager.getString("label.threshold_minmax"));
thresholdIsMin
.setToolTipText("Toggle between absolute and relative display threshold.");
thresholdIsMin.addActionListener(new ActionListener()
}
});
colourByLabel.setBackground(Color.white);
- colourByLabel.setText("Colour by Label");
+ colourByLabel.setText(MessageManager.getString("label.colour_by_label"));
colourByLabel
.setToolTipText("Display features of the same type with a different label using a different colour. (e.g. domain features)");
colourByLabel.addActionListener(new ActionListener()
import jalview.datamodel.*;
import jalview.schemes.GraduatedColor;
+import jalview.util.MessageManager;
/**
* DOCUMENT ME!
{
panel = new JPanel(new GridLayout(4, 1));
tmp = new JPanel();
- tmp.add(new JLabel("Select Feature: "));
+ tmp.add(new JLabel(MessageManager.getString("label.select_feature")));
overlaps = new JComboBox();
for (int i = 0; i < features.length; i++)
{
tmp = new JPanel();
panel.add(tmp);
- tmp.add(new JLabel("Name: ", JLabel.RIGHT));
+ tmp.add(new JLabel(MessageManager.getString("label.name"), JLabel.RIGHT));
tmp.add(name);
tmp = new JPanel();
panel.add(tmp);
- tmp.add(new JLabel("Group: ", JLabel.RIGHT));
+ tmp.add(new JLabel(MessageManager.getString("label.group"), JLabel.RIGHT));
tmp.add(source);
tmp = new JPanel();
panel.add(tmp);
- tmp.add(new JLabel("Colour: ", JLabel.RIGHT));
+ tmp.add(new JLabel(MessageManager.getString("label.colour"), JLabel.RIGHT));
tmp.add(colour);
colour.setPreferredSize(new Dimension(150, 15));
colour.setFont(new java.awt.Font("Verdana", Font.PLAIN, 9));
bigPanel.add(panel, BorderLayout.NORTH);
panel = new JPanel();
- panel.add(new JLabel("Description: ", JLabel.RIGHT));
+ panel.add(new JLabel(MessageManager.getString("label.description"), JLabel.RIGHT));
description.setFont(JvSwingUtils.getTextAreaFont());
description.setLineWrap(true);
panel.add(new JScrollPane(description));
bigPanel.add(panel, BorderLayout.SOUTH);
panel = new JPanel();
- panel.add(new JLabel(" Start:", JLabel.RIGHT));
+ panel.add(new JLabel(MessageManager.getString("label.start"), JLabel.RIGHT));
panel.add(start);
- panel.add(new JLabel(" End:", JLabel.RIGHT));
+ panel.add(new JLabel(MessageManager.getString("label.end"), JLabel.RIGHT));
panel.add(end);
bigPanel.add(panel, BorderLayout.CENTER);
}
import jalview.io.*;
import jalview.schemes.AnnotationColourGradient;
import jalview.schemes.GraduatedColor;
+import jalview.util.MessageManager;
import jalview.ws.dbsources.das.api.jalviewSourceI;
public class FeatureSettings extends JPanel
dasSettingsPane.setLayout(borderLayout3);
bigPanel.setLayout(borderLayout4);
invert.setFont(JvSwingUtils.getLabelFont());
- invert.setText("Invert Selection");
+ invert.setText(MessageManager.getString("label.invert_selection"));
invert.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
}
});
optimizeOrder.setFont(JvSwingUtils.getLabelFont());
- optimizeOrder.setText("Optimise Order");
+ optimizeOrder.setText(MessageManager.getString("label.optimise_order"));
optimizeOrder.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
}
});
sortByScore.setFont(JvSwingUtils.getLabelFont());
- sortByScore.setText("Seq sort by Score");
+ sortByScore.setText(MessageManager.getString("label.seq_sort_by_score"));
sortByScore.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
}
});
cancel.setFont(JvSwingUtils.getLabelFont());
- cancel.setText("Cancel");
+ cancel.setText(MessageManager.getString("action.cancel"));
cancel.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
}
});
ok.setFont(JvSwingUtils.getLabelFont());
- ok.setText("OK");
+ ok.setText(MessageManager.getString("action.ok"));
ok.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
}
});
loadColours.setFont(JvSwingUtils.getLabelFont());
- loadColours.setText("Load Colours");
+ loadColours.setText(MessageManager.getString("label.load_colours"));
loadColours.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
}
});
saveColours.setFont(JvSwingUtils.getLabelFont());
- saveColours.setText("Save Colours");
+ saveColours.setText(MessageManager.getString("label.save_colours"));
saveColours.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
});
transparency.setMaximum(70);
- fetchDAS.setText("Fetch DAS Features");
+ fetchDAS.setText(MessageManager.getString("label.fetch_das_features"));
fetchDAS.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
fetchDAS_actionPerformed(e);
}
});
- saveDAS.setText("Save as default");
+ saveDAS.setText(MessageManager.getString("action.save_as_default"));
saveDAS.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
dasButtonPanel.setBorder(BorderFactory.createEtchedBorder());
dasSettingsPane.setBorder(null);
cancelDAS.setEnabled(false);
- cancelDAS.setText("Cancel Fetch");
+ cancelDAS.setText(MessageManager.getString("action.cancel_fetch"));
cancelDAS.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
complete();
JOptionPane.showInternalConfirmDialog(Desktop.desktop,
- "No das sources were selected.\n"
- + "Please select some sources and\n" + " try again.",
- "No Sources Selected", JOptionPane.DEFAULT_OPTION,
+ MessageManager.getString("label.no_das_sources_selected_warn"),
+ MessageManager.getString("label.no_das_sources_selected_title"), JOptionPane.DEFAULT_OPTION,
JOptionPane.INFORMATION_MESSAGE);
}
// width/g.getFontMetrics().stringWidth("Label"),
// height/g.getFontMetrics().getHeight())));
- g.drawString("Label", 0, 0);
+ g.drawString(MessageManager.getString("label.label"), 0, 0);
}
else
package jalview.gui;
import java.util.*;
-
import java.awt.event.*;
+
import javax.swing.*;
import jalview.datamodel.*;
import jalview.jbgui.*;
+import jalview.util.MessageManager;
/**
* DOCUMENT ME!
// 'SelectRegion' selection
if (!haveResults)
{
- JOptionPane.showInternalMessageDialog(this, "Finished searching",
+ JOptionPane.showInternalMessageDialog(this, MessageManager.getString("label.finished_searching"),
null, JOptionPane.INFORMATION_MESSAGE);
resIndex = -1;
seqIndex = 0;
package jalview.gui;
import jalview.bin.Cache;
+import jalview.util.MessageManager;
import jalview.ws.seqfetcher.DbSourceProxy;
import java.awt.BorderLayout;
JButton getDatabaseSelectorButton()
{
- final JButton viewdbs = new JButton("--- Select Database ---");
+ final JButton viewdbs = new JButton(MessageManager.getString("action.select_ddbb"));
viewdbs.addActionListener(new ActionListener()
{
}
else
{
- if ((admt = dmt.getFirstLeaf()) != null
- && admt.getUserObject() != null)
- {
- // modify db selection to just first leaf.
- if (admt.getUserObject() instanceof DbSourceProxy)
- {
- srcs.add((DbSourceProxy) admt.getUserObject());
- }
- else
- {
- srcs.add(sfetcher.getSourceProxy(
- (String) admt.getUserObject()).get(0));
- }
- forcedFirstChild = true;
- }
+ srcs.add(sfetcher.getSourceProxy((String) dmt
+ .getUserObject()).get(0));
+ forcedFirstChild = true;
}
}
}
if (allowMultiSelections)
{
- dbstatus.setText("Selected "
- + srcs.size()
- + " database"
- + (srcs.size() == 1 ? "" : "s")
- + " to fetch from"
- + (srcs.size() > 0 ? " with " + x + " test quer"
- + (x == 1 ? "y" : "ies") : "."));
+ dbstatus.setText(MessageManager.formatMessage("label.selected_database_to_fetch_from", new String[]{Integer.valueOf(srcs.size()).toString(),(srcs.size() == 1 ? "" : "s"),(srcs.size() > 0 ? " with " + x + " test quer" + (x == 1 ? "y" : "ies") : ".")}));
dbstatex.setText(" ");
}
else
{
if (nm.length() > 0)
{
- dbstatus.setText("Database: " + nm);
+ dbstatus.setText(MessageManager.formatMessage("label.database_param",new String[]{nm}));
if (qr.length() > 0)
{
- dbstatex.setText("Example: " + qr);
+ dbstatex.setText(MessageManager.formatMessage("label.example_param", new String[]{qr}));
}
else
{
object.setVamsasModel(new jalview.schemabinding.version2.VamsasModel());
object.setCreationDate(new java.util.Date(System.currentTimeMillis()));
- object.setVersion(jalview.bin.Cache.getProperty("VERSION"));
+ object.setVersion(jalview.bin.Cache.getDefault("VERSION","Development Build"));
jalview.datamodel.AlignmentI jal = av.getAlignment();
ac.setMaxColour(acg.getMaxColour().getRGB());
ac.setMinColour(acg.getMinColour().getRGB());
+ ac.setPerSequence(acg.isSeqAssociated());
+ ac.setPredefinedColours(acg.isPredefinedColours());
view.setAnnotationColours(ac);
view.setBgColour("AnnotationColourGradient");
}
.getAnnotationColours().getColourScheme()),
view.getAnnotationColours().getAboveThreshold());
}
-
+ if (view.getAnnotationColours().hasPerSequence())
+ {
+ ((AnnotationColourGradient)cs).setSeqAssociated(view.getAnnotationColours().isPerSequence());
+ }
+ if (view.getAnnotationColours().hasPredefinedColours())
+ {
+ ((AnnotationColourGradient)cs).setPredefinedColours(view.getAnnotationColours().isPredefinedColours());
+ }
// Also use these settings for all the groups
if (al.getGroups() != null)
{
.getAlignment().getAlignmentAnnotation()[i],
sg.cs, view.getAnnotationColours()
.getAboveThreshold());
+ if (cs instanceof AnnotationColourGradient)
+ {
+ if (view.getAnnotationColours().hasPerSequence())
+ {
+ ((AnnotationColourGradient)cs).setSeqAssociated(view.getAnnotationColours().isPerSequence());
+ }
+ if (view.getAnnotationColours().hasPredefinedColours())
+ {
+ ((AnnotationColourGradient)cs).setPredefinedColours(view.getAnnotationColours().isPredefinedColours());
+ }
+ }
}
}
view.getHeight());
af.alignPanel.updateAnnotation(false, true); // recompute any autoannotation
reorderAutoannotation(af, al, autoAlan);
+ af.alignPanel.alignmentChanged();
return af;
}
import org.exolab.castor.xml.*;
import jalview.binding.*;
import jalview.schemes.*;
+import jalview.util.MessageManager;
import jalview.util.jarInputStreamProvider;
/**
System.err.println("Couldn't locate Jalview XML file : " + ex
+ "\n");
JOptionPane.showInternalMessageDialog(Desktop.desktop,
- "Couldn't locate " + file, "URL not found",
+ MessageManager.formatMessage("label.couldnt_locate", new String[]{file}),
+ MessageManager.getString("label.url_not_found"),
JOptionPane.WARNING_MESSAGE);
}
});
*/
package jalview.gui;
+import jalview.util.MessageManager;
+
import java.awt.Container;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
this.block = block;
ok.setOpaque(false);
- ok.setText("OK");
+ ok.setText(MessageManager.getString("action.ok"));
ok.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
}
});
cancel.setOpaque(false);
- cancel.setText("Cancel");
+ cancel.setText(MessageManager.getString("action.cancel"));
cancel.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
enabled.setToolTipText("<html>"
+ JvSwingUtils
- .wrapTooltip(((desc == null) ? "see further details by right-clicking"
+ .wrapTooltip(((desc == null || desc.trim().length()==0) ? "see further details by right-clicking"
: desc)
+ "<br><img src=\"" + linkImageURL + "\"/>")
+ "</html>");
}
else
{
- if (desc != null)
+ if (desc != null && desc.trim().length()>0)
{
enabled.setToolTipText("<html>"
+ JvSwingUtils.wrapTooltip(opt.getDescription())
}
- public void resetToDefault()
+
+ public void resetToDefault(boolean setDefaultParams)
{
enabled.setSelected(false);
- if (option.isRequired())
+ if (option.isRequired() || (setDefaultParams && option.getValue()!=null))
{
// Apply default value
selectOption(option, option.getValue());
initVal = (initEnabled) ? (String) val.getSelectedItem() : null;
}
}
-
+
}
public class ParamBox extends JPanel implements ChangeListener,
URL linkImageURL = getClass().getResource("/images/link.gif");
- Map<String, OptionBox> optSet = new Hashtable<String, OptionBox>();
+ Map<String, OptionBox> optSet = new java.util.LinkedHashMap<String, OptionBox>();
- Map<String, ParamBox> paramSet = new Hashtable<String, ParamBox>();
+ Map<String, ParamBox> paramSet = new java.util.LinkedHashMap<String, ParamBox>();
public Map<String, OptionBox> getOptSet()
{
import jalview.datamodel.*;
import jalview.jbgui.*;
+import jalview.util.MessageManager;
import jalview.viewmodel.PCAModel;
/**
final JPanel progressPanel = (JPanel) progressBars.get(new Long(id));
if (handler.canCancel())
{
- JButton cancel = new JButton("Cancel");
+ JButton cancel = new JButton(MessageManager.getString("action.cancel"));
final IProgressIndicator us = this;
cancel.addActionListener(new ActionListener()
{
import jalview.datamodel.*;
/**
- * DOCUMENT ME!
+ * Route datamodel/view update events for a sequence set to any display components involved
+ * TODO: JV3 refactor to abstract gui/view package
*
* @author $author$
* @version $Revision$
JMenuItem sequenceSelDetails = new JMenuItem();
SequenceI sequence;
-
+ JMenuItem createGroupMenuItem = new JMenuItem();
JMenuItem unGroupMenuItem = new JMenuItem();
JMenuItem outline = new JMenuItem();
}
SequenceGroup sg = ap.av.getSelectionGroup();
+ boolean isDefinedGroup = (sg!=null) ? ap.av.getAlignment().getGroups().contains(sg) : false;
if (sg != null && sg.getSize() > 0)
- {
+ {
groupName.setText("Name: " + sg.getName());
groupName.setText("Edit name and description of current group.");
editMenu.setVisible(false);
}
- if (!ap.av.getAlignment().getGroups().contains(sg))
+ if (!isDefinedGroup)
{
+ createGroupMenuItem.setVisible(true);
unGroupMenuItem.setVisible(false);
+ jMenu1.setText("Edit New Group");
+ } else {
+ createGroupMenuItem.setVisible(false);
+ unGroupMenuItem.setVisible(true);
+ jMenu1.setText("Edit Group");
}
if (seq == null)
unGroupMenuItem_actionPerformed();
}
});
+ createGroupMenuItem.setText("Create Group");
+ createGroupMenuItem.addActionListener(new java.awt.event.ActionListener()
+ {
+ public void actionPerformed(ActionEvent e)
+ {
+ createGroupMenuItem_actionPerformed();
+ }
+ });
outline.setText("Border colour");
outline.addActionListener(new java.awt.event.ActionListener()
groupMenu.add(editMenu);
groupMenu.add(outputMenu);
groupMenu.add(sequenceFeature);
+ groupMenu.add(createGroupMenuItem);
+ groupMenu.add(unGroupMenuItem);
groupMenu.add(jMenu1);
sequenceMenu.add(sequenceName);
sequenceMenu.add(sequenceDetails);
pdbMenu.add(enterPDB);
pdbMenu.add(discoverPDB);
jMenu1.add(groupName);
- jMenu1.add(unGroupMenuItem);
jMenu1.add(colourMenu);
jMenu1.add(showBoxes);
jMenu1.add(showText);
sequence.getAnnotation()[0], null,
AnnotationColourGradient.NO_THRESHOLD);
- acg.predefinedColours = true;
+ acg.setPredefinedColours(true);
sg.cs = acg;
refresh();
ap.av.setSelectionGroup(null);
refresh();
}
+ void createGroupMenuItem_actionPerformed()
+ {
+ getGroup(); // implicitly creates group - note - should apply defaults / use standard alignment window logic for this
+ refresh();
+ }
/**
* DOCUMENT ME!
import jalview.io.*;
import jalview.jbgui.*;
import jalview.schemes.*;
+import jalview.util.MessageManager;
/**
* DOCUMENT ME!
while (!valid)
{
if (JOptionPane.showInternalConfirmDialog(Desktop.desktop, link,
- "New sequence URL link", JOptionPane.OK_CANCEL_OPTION, -1,
+ MessageManager.getString("label.new_sequence_url_link"), JOptionPane.OK_CANCEL_OPTION, -1,
null) == JOptionPane.OK_OPTION)
{
if (link.checkValid())
if (index == -1)
{
JOptionPane.showInternalMessageDialog(Desktop.desktop,
- "No link selected!", "No link selected",
+ MessageManager.getString("label.no_link_selected"), MessageManager.getString("label.no_link_selected"),
JOptionPane.WARNING_MESSAGE);
return;
}
{
if (JOptionPane.showInternalConfirmDialog(Desktop.desktop, link,
- "New sequence URL link", JOptionPane.OK_CANCEL_OPTION, -1,
+ MessageManager.getString("label.new_sequence_url_link"), JOptionPane.OK_CANCEL_OPTION, -1,
null) == JOptionPane.OK_OPTION)
{
if (link.checkValid())
if (index == -1)
{
JOptionPane.showInternalMessageDialog(Desktop.desktop,
- "No link selected!", "No link selected",
+ MessageManager.getString("label.no_link_selected"), MessageManager.getString("label.no_link_selected"),
JOptionPane.WARNING_MESSAGE);
return;
}
package jalview.gui;
import java.util.*;
-
import java.awt.*;
import java.awt.event.*;
+
import javax.swing.*;
import jalview.api.RotatableCanvasI;
import jalview.datamodel.*;
import jalview.math.*;
+import jalview.util.MessageManager;
/**
* DOCUMENT ME!
if (points == null)
{
g.setFont(new Font("Verdana", Font.PLAIN, 18));
- g.drawString("Calculating PCA....", 20, getHeight() / 2);
+ g.drawString(MessageManager.getString("label.calculating_pca")+ "....", 20, getHeight() / 2);
}
else
{
import java.awt.*;
import java.awt.event.*;
+
import javax.swing.*;
import jalview.datamodel.*;
+import jalview.util.MessageManager;
/**
* DOCUMENT ME!
if (reveal != null && reveal[0] > startx && reveal[0] < endx)
{
- gg.drawString("Reveal Columns", reveal[0] * av.charWidth, 0);
+ gg.drawString(MessageManager.getString("label.reveal_columns"), reveal[0] * av.charWidth, 0);
}
}
import jalview.io.SequenceAnnotationReport;
import jalview.schemes.*;
import jalview.structure.*;
+import jalview.util.MessageManager;
/**
* DOCUMENT ME!
addMouseMotionListener(this);
addMouseListener(this);
addMouseWheelListener(this);
- ssm = StructureSelectionManager
- .getStructureSelectionManager(Desktop.instance);
+ ssm = av.getStructureSelectionManager();
ssm.addStructureViewerListener(this);
ssm.addSelectionListener(this);
}
{
SequenceI sequence = av.getAlignment().getSequenceAt(seqCanvas.cursorY);
- seqCanvas.cursorX = sequence.findIndex(getKeyboardNo1() - 1);
+ seqCanvas.cursorX = sequence.findIndex(getKeyboardNo1()) - 1;
scrollToVisible();
}
int getKeyboardNo1()
{
- if (keyboardNo1 == null)
- return 1;
- else
+ try {
+ if (keyboardNo1 != null)
{
int value = Integer.parseInt(keyboardNo1.toString());
keyboardNo1 = null;
return value;
}
+ } catch (Exception x)
+ {}
+ keyboardNo1 = null;
+ return 1;
}
int getKeyboardNo2()
{
- if (keyboardNo2 == null)
- return 1;
- else
- {
+ try {
+ if (keyboardNo2!=null){
int value = Integer.parseInt(keyboardNo2.toString());
keyboardNo2 = null;
return value;
}
+ } catch (Exception x)
+ {}
+ keyboardNo2 = null;
+ return 1;
}
/**
if (av.wrapAlignment && seq > av.getAlignment().getHeight())
{
JOptionPane.showInternalMessageDialog(Desktop.desktop,
- "Cannot edit annotations in wrapped view.",
- "Wrapped view - no edit", JOptionPane.WARNING_MESSAGE);
+ MessageManager.getString("label.cannot_edit_annotations_in_wrapped_view"),
+ MessageManager.getString("label.wrapped_view_no_edit"), JOptionPane.WARNING_MESSAGE);
return;
}
import jalview.datamodel.*;
import jalview.io.*;
import jalview.util.DBRefUtils;
+import jalview.util.MessageManager;
import jalview.ws.dbsources.das.api.DasSourceRegistryI;
import jalview.ws.seqfetcher.DbSourceProxy;
import java.awt.BorderLayout;
public void run()
{
JOptionPane.showInternalMessageDialog(Desktop.desktop, error,
- "Error Retrieving Data", JOptionPane.WARNING_MESSAGE);
+ MessageManager.getString("label.error_retrieving_data"), JOptionPane.WARNING_MESSAGE);
}
});
}
if (tree == null)
{
- g.drawString("Calculating tree....", 20, getHeight() / 2);
+ g.drawString(MessageManager.getString("label.calculating_tree") + "....", 20, getHeight() / 2);
}
else
{
{
aps[a].av.setSelectionGroup(null);
aps[a].av.getAlignment().deleteAllGroups();
- aps[a].av.sequenceColours = null;
+ aps[a].av.clearSequenceColours();
}
colourGroups();
}
import jalview.schemes.ColourSchemeI;
import jalview.schemes.ResidueProperties;
import jalview.schemes.UserColourScheme;
+import jalview.util.MessageManager;
import java.awt.Color;
import java.awt.Font;
if (schemeName.getText().trim().length() < 1)
{
JOptionPane.showInternalMessageDialog(Desktop.desktop,
- "User colour scheme must have a name!",
- "No name for colour scheme", JOptionPane.WARNING_MESSAGE);
+ MessageManager.getString("label.user_colour_scheme_must_have_name"),
+ MessageManager.getString("label.no_name_colour_scheme"), JOptionPane.WARNING_MESSAGE);
return;
}
{
int reply = JOptionPane.showInternalConfirmDialog(
Desktop.desktop,
- "Colour scheme " + schemeName.getText() + " exists."
- + "\nContinue saving colour scheme as "
- + schemeName.getText() + "?",
- "Duplicate scheme name", JOptionPane.YES_NO_OPTION);
+ MessageManager.formatMessage("label.colour_scheme_exists_overwrite", new String[]{schemeName.getText(),schemeName.getText()}),
+ MessageManager.getString("label.duplicate_scheme_name"), JOptionPane.YES_NO_OPTION);
if (reply != JOptionPane.YES_OPTION)
{
return;
*/
package jalview.gui;
+import jalview.util.MessageManager;
+
import java.io.*;
import java.net.*;
jalview.bin.Cache.log.info("Prompting user for questionnaire at "
+ qurl);
int reply = JOptionPane.showInternalConfirmDialog(Desktop.desktop,
- "There is a new Questionnaire available."
- + "Would you like to complete it now ?\n",
- "Jalview User Survey", JOptionPane.YES_NO_OPTION,
+ MessageManager.getString("label.jalview_new_questionnaire"),
+ MessageManager.getString("label.jalview_user_survey"), JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE);
if (reply == JOptionPane.YES_OPTION)
import javax.swing.text.html.StyleSheet;
import jalview.jbgui.*;
+import jalview.util.MessageManager;
import jalview.ws.WSClientI;
/**
switch (currentStatus)
{
case STATE_QUEUING:
- g.drawString(title.concat(" - queuing"), 60, 30);
+ g.drawString(title.concat(" - ").concat(MessageManager.getString("label.state_queueing")), 60, 30);
break;
case STATE_RUNNING:
- g.drawString(title.concat(" - running"), 60, 30);
+ g.drawString(title.concat(" - ").concat(MessageManager.getString("label.state_running")), 60, 30);
break;
case STATE_STOPPED_OK:
- g.drawString(title.concat(" - complete"), 60, 30);
+ g.drawString(title.concat(" - ").concat(MessageManager.getString("label.state_completed")), 60, 30);
break;
case STATE_CANCELLED_OK:
- g.drawString(title.concat(" - job cancelled!"), 60, 30);
+ g.drawString(title.concat(" - ").concat(MessageManager.getString("label.state_job_cancelled")), 60, 30);
break;
case STATE_STOPPED_ERROR:
- g.drawString(title.concat(" - job error!"), 60, 30);
+ g.drawString(title.concat(" - ").concat(MessageManager.getString("label.state_job_error")), 60, 30);
break;
case STATE_STOPPED_SERVERERROR:
- g.drawString(title.concat(" - Server Error! (try later)"), 60, 30);
+ g.drawString(title.concat(" - ").concat(MessageManager.getString("label.server_error_try_later")), 60, 30);
break;
}
final JPanel progressPanel = (JPanel) progressBars.get(new Long(id));
if (handler.canCancel())
{
- JButton cancel = new JButton("Cancel");
+ JButton cancel = new JButton(MessageManager.getString("action.cancel"));
final IProgressIndicator us = this;
cancel.addActionListener(new ActionListener()
{
import jalview.gui.OptsAndParamsPage.OptionBox;
import jalview.gui.OptsAndParamsPage.ParamBox;
+import jalview.util.MessageManager;
import jalview.ws.jws2.JabaParamStore;
import jalview.ws.jws2.JabaPreset;
import jalview.ws.jws2.Jws2Discoverer;
GridBagLayout gbl = new GridBagLayout();
SetNamePanel.setLayout(gbl);
- JLabel setNameLabel = new JLabel("Current parameter set name :");
+ JLabel setNameLabel = new JLabel(MessageManager.getString("label.current_parameter_set_name"));
setNameLabel.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
setNameInfo.add(setNameLabel);
@SuppressWarnings("unchecked")
private void updateTable(WsParamSetI p, List<ArgumentI> jobArgset)
{
+ boolean setDefaultParams=false;
+ if (lastParmSet == null)
+ {
+ isUserPreset = false;
+ // First call - so provide Service default settings
+ setName.setSelectedItem(lastSetName = SVC_DEF);
+ }
+ if (p==null && SVC_DEF.equals(""+setName.getSelectedItem()))
+ {
+ // indicate that service defaults should be set if available
+ setDefaultParams=true;
+ }
// populate table from default parameter set.
List<ArgumentI> args = paramStore.getServiceParameters();
// split to params and required arguments
{
int cw = 0;
+ boolean optset=false;
for (ArgumentI myarg : args)
- {
+ {
// Ideally, Argument would implement isRequired !
if (myarg instanceof ParameterI)
{
{
OptionI opt = (OptionI) myarg;
OptionBox ob = opanp.addOption(opt);
- ob.resetToDefault();
+ ob.resetToDefault(setDefaultParams);
if (MAX_OPTWIDTH < ob.getPreferredSize().width)
{
MAX_OPTWIDTH = ob.getPreferredSize().width;
// TODO: check if args should be unselected prior to resetting using the
// preset
}
- else
- {
- if (lastParmSet == null)
- {
- isUserPreset = false;
- // first call - so create a dummy name
-
- setName.setSelectedItem(lastSetName = SVC_DEF);
- }
- }
if (jobArgset != null)
{
import jalview.bin.Cache;
import jalview.jbgui.GWsPreferences;
+import jalview.util.MessageManager;
import jalview.ws.jws2.Jws2Discoverer;
import jalview.ws.rest.RestServiceDescription;
JTextField urltf = new JTextField(url, 40);
JPanel panel = new JPanel(new BorderLayout());
JPanel pane12 = new JPanel(new BorderLayout());
- pane12.add(new JLabel("URL: "), BorderLayout.CENTER);
+ pane12.add(new JLabel(MessageManager.getString("label.url")), BorderLayout.CENTER);
pane12.add(urltf, BorderLayout.EAST);
panel.add(pane12, BorderLayout.NORTH);
boolean valid = false;
{
valid = false;
JOptionPane.showInternalMessageDialog(Desktop.desktop,
- "Invalid URL !");
+ MessageManager.getString("label.invalid_url"));
}
}
if (valid && resp == JOptionPane.OK_OPTION)
StringBuffer colours = new StringBuffer();
StringBuffer graphLine = new StringBuffer();
StringBuffer rowprops = new StringBuffer();
- Hashtable graphGroup = new Hashtable();
+ Hashtable<Integer,String> graphGroup = new Hashtable<Integer,String>();
+ Hashtable<Integer, Object[]> graphGroup_refs = new Hashtable<Integer,Object[]>();
+ BitSet graphGroupSeen = new BitSet();
java.awt.Color color;
{
row = annotations[i];
- if (!row.visible && !row.hasScore())
+ if (!row.visible && !row.hasScore() && !(row.graphGroup>-1 && graphGroupSeen.get(row.graphGroup)))
{
continue;
}
color = null;
oneColour = true;
-
- if (row.sequenceRef == null)
- {
- if (refSeq != null)
- {
- text.append(newline);
- text.append("SEQUENCE_REF\tALIGNMENT");
- text.append(newline);
- }
-
- refSeq = null;
- }
-
- else
- {
- if (refSeq == null || refSeq != row.sequenceRef)
- {
- refSeq = row.sequenceRef;
- text.append(newline);
- text.append("SEQUENCE_REF\t");
- text.append(refSeq.getName());
- text.append(newline);
- }
- }
+
+ // mark any sequence references for the row
+ writeSequence_Ref(refSeq ,row.sequenceRef);
+ refSeq = row.sequenceRef;
// mark any group references for the row
- if (row.groupRef == null)
- {
-
- if (refGroup != null)
- {
- text.append(newline);
- text.append("GROUP_REF\tALIGNMENT");
- text.append(newline);
- }
-
- refGroup = null;
- }
- else
- {
- if (refGroup == null || refGroup != row.groupRef)
- {
- refGroup = row.groupRef;
- text.append(newline);
- text.append("GROUP_REF\t");
- text.append(refGroup.getName());
- text.append(newline);
- }
- }
+ writeGroup_Ref(refGroup, row.groupRef);
+ refGroup = row.groupRef;
boolean hasGlyphs = row.hasIcons, hasLabels = row.hasText, hasValues = row.hasScore, hasText = false;
// lookahead to check what the annotation row object actually contains.
if (row.graphGroup > -1)
{
- String key = String.valueOf(row.graphGroup);
+ graphGroupSeen.set(row.graphGroup);
+ Integer key = new Integer(row.graphGroup);
if (graphGroup.containsKey(key))
{
graphGroup.put(key, graphGroup.get(key) + "\t" + row.label);
+
}
else
{
+ graphGroup_refs.put(key, new Object[] { refSeq, refGroup});
graphGroup.put(key, row.label);
}
}
rowprops.append(row.centreColLabels);
rowprops.append(newline);
}
+ if (graphLine.length()>0) {
+ text.append(graphLine.toString());
+ graphLine.setLength(0);
+ }
}
text.append(newline);
text.append(colours.toString());
- text.append(graphLine.toString());
if (graphGroup.size() > 0)
{
- text.append("COMBINE\t");
- Enumeration en = graphGroup.elements();
- while (en.hasMoreElements())
- {
- text.append(en.nextElement());
+ SequenceI oldRefSeq = refSeq;
+ SequenceGroup oldRefGroup = refGroup;
+ for (Map.Entry<Integer, String> combine_statement:graphGroup.entrySet())
+ {
+ Object[] seqRefAndGroup=graphGroup_refs.get(combine_statement.getKey());
+
+ writeSequence_Ref(refSeq, (SequenceI)seqRefAndGroup[0]);
+ refSeq = (SequenceI)seqRefAndGroup[0];
+
+ writeGroup_Ref(refGroup, (SequenceGroup)seqRefAndGroup[1]);
+ refGroup = (SequenceGroup)seqRefAndGroup[1];
+ text.append("COMBINE\t");
+ text.append(combine_statement.getValue());
text.append(newline);
}
+ writeSequence_Ref(refSeq, oldRefSeq);
+ refSeq = oldRefSeq;
+
+ writeGroup_Ref(refGroup, oldRefGroup);
+ refGroup = oldRefGroup;
}
text.append(rowprops.toString());
}
return text.toString();
}
+ private Object writeGroup_Ref(SequenceGroup refGroup, SequenceGroup next_refGroup)
+ {
+ if (next_refGroup == null)
+ {
+
+ if (refGroup != null)
+ {
+ text.append(newline);
+ text.append("GROUP_REF\t");
+ text.append("ALIGNMENT");
+ text.append(newline);
+ }
+ return true;
+ }
+ else
+ {
+ if (refGroup == null || refGroup != next_refGroup)
+ {
+ text.append(newline);
+ text.append("GROUP_REF\t");
+ text.append(next_refGroup.getName());
+ text.append(newline);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private boolean writeSequence_Ref(SequenceI refSeq, SequenceI next_refSeq)
+ {
+
+ if (next_refSeq==null)
+ {
+ if (refSeq != null)
+ {
+ text.append(newline);
+ text.append("SEQUENCE_REF\t");
+ text.append("ALIGNMENT");
+ text.append(newline);
+ return true;
+ }
+ }
+ else
+ {
+ if (refSeq == null || refSeq != next_refSeq)
+ {
+ text.append(newline);
+ text.append("SEQUENCE_REF\t");
+ text.append(next_refSeq.getName());
+ text.append(newline);
+ return true;
+ }
+ }
+ return false;
+ }
+
public void printGroups(List<SequenceGroup> list)
{
SequenceI seqrep = null;
{
ex.printStackTrace();
System.out.println("Problem reading annotation file: " + ex);
+ if (nlinesread>0) {
+ System.out.println("Last read line "+nlinesread+": '"+lastread+"' (first 80 chars) ...");
+ }
return false;
}
return false;
}
-
+ long nlinesread=0;
+ String lastread="";
+ private static String GRAPHLINE="GRAPHLINE", COMBINE="COMBINE";
public boolean parseAnnotationFrom(AlignmentI al, BufferedReader in)
throws Exception
{
+ nlinesread = 0;
+ ArrayList<Object[]> combineAnnotation_calls = new ArrayList<Object[]>();
+ ArrayList<Object[]> deferredAnnotation_calls = new ArrayList<Object[]>();
boolean modified = false;
String groupRef = null;
Hashtable groupRefRows = new Hashtable();
boolean jvAnnotationFile = false;
while ((line = in.readLine()) != null)
{
+ nlinesread++;lastread = new String(line);
if (line.indexOf("#") == 0)
{
continue;
while ((line = in.readLine()) != null)
{
+ nlinesread++;lastread = new String(line);
if (line.indexOf("#") == 0
|| line.indexOf("JALVIEW_ANNOTATION") > -1
|| line.length() == 0)
continue;
}
- else if (token.equalsIgnoreCase("COMBINE"))
+ else if (token.equalsIgnoreCase(COMBINE))
{
- combineAnnotations(al, st);
+ // keep a record of current state and resolve groupRef at end
+ combineAnnotation_calls.add(new Object[] { st, refSeq, groupRef});
modified = true;
continue;
}
modified = true;
continue;
}
- else if (token.equalsIgnoreCase("GRAPHLINE"))
+ else if (token.equalsIgnoreCase(GRAPHLINE))
{
- addLine(al, st);
+ // resolve at end
+ deferredAnnotation_calls.add(new Object[] { GRAPHLINE, st, refSeq, groupRef});
modified = true;
continue;
}
// and set modification flag
modified = true;
}
- // Finally, resolve the groupRefs
+ // Resolve the groupRefs
+ Hashtable <String,SequenceGroup> groupRefLookup=new Hashtable<String,SequenceGroup>();
Enumeration en = groupRefRows.keys();
while (en.hasMoreElements())
{
matched = true;
Vector rowset = (Vector) groupRefRows.get(groupRef);
+ groupRefLookup.put(groupRef, theGroup);
if (rowset != null && rowset.size() > 0)
{
AlignmentAnnotation alan = null;
}
((Vector) groupRefRows.get(groupRef)).removeAllElements();
}
+ // process any deferred attribute settings for each context
+ for (Object[] _deferred_args : deferredAnnotation_calls)
+ {
+ if (_deferred_args[0] == GRAPHLINE)
+ {
+ addLine(al,
+ (StringTokenizer) _deferred_args[1], // st
+ (SequenceI) _deferred_args[2], // refSeq
+ (_deferred_args[3] == null) ? null : groupRefLookup
+ .get((String) _deferred_args[3]) // the reference
+ // group, or null
+ );
+ }
+ }
+
+ // finally, combine all the annotation rows within each context.
+ /**
+ * number of combine statements in this annotation file. Used to create new groups for combined annotation graphs without disturbing existing ones
+ */
+ int combinecount = 0;
+ for (Object[] _combine_args:combineAnnotation_calls) {
+ combineAnnotations(al,
+ ++combinecount,
+ (StringTokenizer) _combine_args[0], // st
+ (SequenceI) _combine_args[1], // refSeq
+ (_combine_args[2]==null) ? null : groupRefLookup.get((String)_combine_args[2]) // the reference group, or null
+ );
+ }
}
return modified;
}
}
}
- void combineAnnotations(AlignmentI al, StringTokenizer st)
+ void combineAnnotations(AlignmentI al, int combineCount, StringTokenizer st, SequenceI seqRef, SequenceGroup groupRef)
{
- int graphGroup = -1;
String group = st.nextToken();
// First make sure we are not overwriting the graphIndex
+ int graphGroup=0;
if (al.getAlignmentAnnotation() != null)
{
for (int i = 0; i < al.getAlignmentAnnotation().length; i++)
{
- if (al.getAlignmentAnnotation()[i].label.equalsIgnoreCase(group))
+ AlignmentAnnotation aa = al.getAlignmentAnnotation()[i];
+
+ if (aa.graphGroup>graphGroup)
+ {
+ // try to number graphGroups in order of occurence.
+ graphGroup=aa.graphGroup+1;
+ }
+ if (aa.sequenceRef==seqRef && aa.groupRef==groupRef && aa.label.equalsIgnoreCase(group))
{
- graphGroup = al.getAlignmentAnnotation()[i].graphGroup + 1;
- al.getAlignmentAnnotation()[i].graphGroup = graphGroup;
+ if (aa.graphGroup>-1)
+ {
+ graphGroup = aa.graphGroup;
+ } else {
+ if (graphGroup <= combineCount)
+ {
+ graphGroup=combineCount+1;
+ }
+ aa.graphGroup = graphGroup;
+ }
break;
}
}
group = st.nextToken();
for (int i = 0; i < al.getAlignmentAnnotation().length; i++)
{
- if (al.getAlignmentAnnotation()[i].label.equalsIgnoreCase(group))
+ AlignmentAnnotation aa = al.getAlignmentAnnotation()[i];
+ if (aa.sequenceRef==seqRef && aa.groupRef==groupRef && aa.label.equalsIgnoreCase(group))
{
- al.getAlignmentAnnotation()[i].graphGroup = graphGroup;
+ aa.graphGroup = graphGroup;
break;
}
}
}
}
- void addLine(AlignmentI al, StringTokenizer st)
+ void addLine(AlignmentI al, StringTokenizer st, SequenceI seqRef, SequenceGroup groupRef)
{
String group = st.nextToken();
AlignmentAnnotation annotation = null, alannot[] = al
.getAlignmentAnnotation();
+ float value = new Float(st.nextToken()).floatValue();
+ String label = st.hasMoreTokens() ? st.nextToken() : null;
+ java.awt.Color colour = null;
+ if (st.hasMoreTokens())
+ {
+ UserColourScheme ucs = new UserColourScheme(st.nextToken());
+ colour = ucs.findColour('A');
+ }
if (alannot != null)
{
for (int i = 0; i < alannot.length; i++)
{
- if (alannot[i].label.equalsIgnoreCase(group))
+ if (alannot[i].label.equalsIgnoreCase(group) && (seqRef==null || alannot[i].sequenceRef==seqRef) && (groupRef==null || alannot[i].groupRef==groupRef))
{
- annotation = alannot[i];
- break;
+ alannot[i].setThreshold(new GraphLine(value, label, colour));
}
}
}
{
return;
}
- float value = new Float(st.nextToken()).floatValue();
- String label = st.hasMoreTokens() ? st.nextToken() : null;
- java.awt.Color colour = null;
- if (st.hasMoreTokens())
- {
- UserColourScheme ucs = new UserColourScheme(st.nextToken());
- colour = ucs.findColour('A');
- }
-
- annotation.setThreshold(new GraphLine(value, label, colour));
}
void addGroup(AlignmentI al, StringTokenizer st)
* method
*/
public static final String[] WRITEABLE_FORMATS = new String[]
- { "BLC", "CLUSTAL", "FASTA", "MSF", "PileUp", "PIR", "PFAM", "AMSA" };
+ { "BLC", "CLUSTAL", "FASTA", "MSF", "PileUp", "PIR", "PFAM", "STH",
+ "AMSA" };
/**
* List of extensions corresponding to file format types in WRITABLE_FNAMES
* that are writable by the application.
*/
public static final String[] WRITABLE_EXTENSIONS = new String[]
- { "fa, fasta, fastq", "aln", "pfam", "msf", "pir", "blc", "amsa", "jar" };
+ { "fa, fasta, fastq", "aln", "pfam", "msf", "pir", "blc", "amsa", "jar",
+ "sto,stk" };
/**
* List of writable formats by the application. Order must correspond with the
* WRITABLE_EXTENSIONS list of formats.
*/
public static final String[] WRITABLE_FNAMES = new String[]
- { "Fasta", "Clustal", "PFAM", "MSF", "PIR", "BLC", "AMSA", "Jalview" };
+ { "Fasta", "Clustal", "PFAM", "MSF", "PIR", "BLC", "AMSA", "Jalview",
+ "STH" };
/**
* List of readable format file extensions by application in order
}
else if (format.equalsIgnoreCase("STH"))
{
- afile = new StockholmFile();
+ afile = new StockholmFile(alignment);
}
else if (format.equalsIgnoreCase("AMSA"))
{
{
System.out.println("Reading file: " + f);
AppletFormatAdapter afa = new AppletFormatAdapter();
- Runtime r = Runtime.getRuntime();
- System.gc();
- long memf = -r.totalMemory() + r.freeMemory();
- long t1 = -System.currentTimeMillis();
- Alignment al = afa.readFile(args[i], FILE,
- new IdentifyFile().Identify(args[i], FILE));
- t1 += System.currentTimeMillis();
- System.gc();
- memf += r.totalMemory() - r.freeMemory();
- if (al != null)
+ String fName = f.getName();
{
- System.out.println("Alignment contains " + al.getHeight()
- + " sequences and " + al.getWidth() + " columns.");
- try
+ Runtime r = Runtime.getRuntime();
+ System.gc();
+ long memf = -r.totalMemory() + r.freeMemory();
+ long t1 = -System.currentTimeMillis();
+ Alignment al = afa.readFile(args[i], FILE,
+ new IdentifyFile().Identify(args[i], FILE));
+ t1 += System.currentTimeMillis();
+ System.gc();
+ memf += r.totalMemory() - r.freeMemory();
+ if (al != null)
{
- System.out.println(new AppletFormatAdapter().formatSequences(
- "FASTA", al, true));
- } catch (Exception e)
+ System.out.println("Alignment contains " + al.getHeight()
+ + " sequences and " + al.getWidth() + " columns.");
+ try
+ {
+ System.out.println(new AppletFormatAdapter()
+ .formatSequences("FASTA", al, true));
+ } catch (Exception e)
+ {
+ System.err
+ .println("Couln't format the alignment for output as a FASTA file.");
+ e.printStackTrace(System.err);
+ }
+ }
+ else
{
- System.err
- .println("Couln't format the alignment for output as a FASTA file.");
- e.printStackTrace(System.err);
+ System.out.println("Couldn't read alignment");
}
+ System.out.println("Read took " + (t1 / 1000.0) + " seconds.");
+ System.out
+ .println("Difference between free memory now and before is "
+ + (memf / (1024.0 * 1024.0) * 1.0) + " MB");
}
- else
- {
- System.out.println("Couldn't read alignment");
- }
- System.out.println("Read took " + (t1 / 1000.0) + " seconds.");
- System.out
- .println("Difference between free memory now and before is "
- + (memf / (1024.0 * 1024.0) * 1.0) + " MB");
-
} catch (Exception e)
{
System.err.println("Exception when dealing with " + i
+ "'th argument: " + args[i] + "\n" + e);
}
+
}
else
{
}
return null;
}
+
}
import jalview.datamodel.*;
import jalview.gui.*;
+import jalview.util.MessageManager;
public class FileLoader implements Runnable
{
if (!protocol.equals(AppletFormatAdapter.PASTE))
alignFrame.setFileName(file, format);
-
- Desktop.addInternalFrame(alignFrame, title,
- AlignFrame.DEFAULT_WIDTH, AlignFrame.DEFAULT_HEIGHT);
+ if (raiseGUI)
+ {
+ // add the window to the GUI
+ // note - this actually should happen regardless of raiseGUI status in Jalview 3
+ // TODO: define 'virtual desktop' for benefit of headless scripts that perform queries to find the 'current working alignment'
+ Desktop.addInternalFrame(alignFrame, title,
+ AlignFrame.DEFAULT_WIDTH, AlignFrame.DEFAULT_HEIGHT);
+ }
try
{
public void run()
{
JOptionPane.showInternalMessageDialog(Desktop.desktop,
- errorMessage, "Error loading file",
+ errorMessage, MessageManager.getString("label.error_loading_file"),
JOptionPane.WARNING_MESSAGE);
}
});
public void run()
{
javax.swing.JOptionPane.showInternalMessageDialog(
- Desktop.desktop, "Encountered problems opening " + file
- + "!!", "File open error",
+ Desktop.desktop, MessageManager.formatMessage("label.problems_opening_file", new String[]{file}),
+ MessageManager.getString("label.file_open_error"),
javax.swing.JOptionPane.WARNING_MESSAGE);
}
});
import java.io.*;
import java.net.*;
+import java.util.zip.GZIPInputStream;
/**
* implements a random access wrapper around a particular datasource, for
}
if (!error)
{
+ if (fileStr.toLowerCase().endsWith(".gz"))
+ {
+ try
+ {
+ dataIn = tryAsGzipSource(new FileInputStream(fileStr));
+ dataName = fileStr;
+ return error;
+ } catch (Exception x)
+ {
+ warningMessage = "Failed to resolve as a GZ stream ("
+ + x.getMessage() + ")";
+ x.printStackTrace();
+ }
+ ;
+ }
+
dataIn = new BufferedReader(new FileReader(fileStr));
dataName = fileStr;
}
return error;
}
-
+ private BufferedReader tryAsGzipSource(InputStream inputStream) throws Exception
+ {
+ BufferedReader inData = new BufferedReader(new InputStreamReader(new GZIPInputStream(inputStream)));
+ inData.mark(2048);
+ inData.read();
+ inData.reset();
+ return inData;
+ }
private boolean checkURLSource(String fileStr) throws IOException,
MalformedURLException
{
errormessage = "URL NOT FOUND";
URL url = new URL(fileStr);
- dataIn = new BufferedReader(new InputStreamReader(url.openStream()));
+ //
+ // GZIPInputStream code borrowed from Aquaria (soon to be open sourced) via Kenny Sabir
+ Exception e=null;
+ if (fileStr.toLowerCase().endsWith(".gz")) {
+ try {
+ InputStream inputStream = url.openStream();
+ dataIn = tryAsGzipSource(inputStream);
+ dataName = fileStr;
+ return false;
+ } catch (Exception ex) {
+ e=ex;
+ }
+ }
+
+ try {
+ dataIn = new BufferedReader(new InputStreamReader(url.openStream()));
+ } catch (IOException q) {
+ if (e!=null)
+ {
+ throw new IOException("Failed to resolve GZIP stream", e);
+ }
+ throw q;
+ }
// record URL as name of datasource.
dataName = fileStr;
return false;
int nextcp = 0;
int ncp = cp;
+ boolean parsednodename=false;
while (majorsyms.searchFrom(nf, cp) && (Error == null))
{
int fcp = majorsyms.matchedFrom();
case '\'':
com.stevesoft.pat.Regex qnodename = new com.stevesoft.pat.Regex(
- "([^']|'')+'");
+ "'([^']|'')+'");
if (qnodename.searchFrom(nf, fcp))
{
int nl = qnodename.stringMatched().length();
- nodename = new String(qnodename.stringMatched().substring(0,
+ nodename = new String(qnodename.stringMatched().substring(1,
nl - 1));
- cp = fcp + nl + 1;
+ // unpack any escaped colons
+ com.stevesoft.pat.Regex xpandquotes = com.stevesoft.pat.Regex.perlCode("s/''/'/");
+ String widernodename = xpandquotes.replaceAll(nodename);
+ nodename=widernodename;
+ // jump to after end of quoted nodename
+ nextcp = fcp + nl + 1;
+ parsednodename=true;
}
else
{
com.stevesoft.pat.Regex ndist = new com.stevesoft.pat.Regex(
":([-0-9Ee.+]+)");
- if (uqnodename.search(fstring)
+ if (!parsednodename && uqnodename.search(fstring)
&& ((uqnodename.matchedFrom(1) == 0) || (fstring
.charAt(uqnodename.matchedFrom(1) - 1) != ':'))) // JBPNote
// HACK!
distance = DefDistance;
bootstrap = DefBootstrap;
commentString2 = null;
+ parsednodename=false;
}
if (nextcp == 0)
{
import com.stevesoft.pat.*;
import jalview.datamodel.*;
+import jalview.util.Format;
// import org.apache.log4j.*;
public class StockholmFile extends AlignFile
{
// static Logger logger = Logger.getLogger("jalview.io.StockholmFile");
+ StringBuffer out; // output buffer
+
+ AlignmentI al;
public StockholmFile()
{
}
+ /**
+ * Creates a new StockholmFile object for output.
+ */
+ public StockholmFile(AlignmentI al)
+ {
+ this.al = al;
+ }
+
public StockholmFile(String inFile, String type) throws IOException
{
super(inFile, type);
if (rend.search(line))
{
// End of the alignment, pass stuff back
-
this.noSeqs = seqs.size();
+
+ String seqdb,dbsource = null;
+ Regex pf = new Regex("PF[0-9]{5}(.*)"); // Finds AC for Pfam
+ Regex rf = new Regex("RF[0-9]{5}(.*)"); // Finds AC for Rfam
+ if (getAlignmentProperty("AC") != null)
+ {
+ String dbType = getAlignmentProperty("AC").toString();
+ if (pf.search(dbType))
+ {
+ // PFAM Alignment - so references are typically from Uniprot
+ dbsource = "PFAM";
+ }
+ else if (rf.search(dbType))
+ {
+ dbsource = "RFAM";
+ }
+ }
// logger.debug("Number of sequences: " + this.noSeqs);
Enumeration accs = seqs.keys();
while (accs.hasMoreElements())
String desc = (String) accAnnotations.get("DE");
seqO.setDescription((desc == null) ? "" : desc);
}
+
// Add DB References (if any)
if (accAnnotations != null && accAnnotations.containsKey("DR"))
{
String src = dbr.substring(0, dbr.indexOf(";"));
String acn = dbr.substring(dbr.indexOf(";") + 1);
jalview.util.DBRefUtils.parseToDbRef(seqO, src, "0", acn);
- // seqO.addDBRef(dbref);
}
}
- if (accAnnotations != null && accAnnotations.containsKey("SS"))
- {
- Vector v = (Vector) accAnnotations.get("SS");
- for (int i = 0; i < v.size(); i++)
+ if (accAnnotations != null && accAnnotations.containsKey("AC"))
+ {
+ if (dbsource != null)
{
- AlignmentAnnotation an = (AlignmentAnnotation) v.elementAt(i);
- seqO.addAlignmentAnnotation(an);
- // annotations.add(an);
- }
+ String dbr = (String) accAnnotations.get("AC");
+ if (dbr != null)
+ {
+ // we could get very clever here - but for now - just try to guess accession type from source of alignment plus structure of accession
+ guessDatabaseFor(seqO, dbr, dbsource);
+
+ }
+ }
+ // else - do what ? add the data anyway and prompt the user to specify what references these are ?
}
Hashtable features = null;
// TODO: map coding region to core jalview feature types
String type = i.nextElement().toString();
Hashtable content = (Hashtable) features.remove(type);
+
+ // add alignment annotation for this feature
+ String key = type2id(type);
+ if (key != null)
+ {
+ if (accAnnotations != null
+ && accAnnotations.containsKey(key))
+ {
+ Vector vv = (Vector) accAnnotations.get(key);
+ for (int ii = 0; ii < vv.size(); ii++)
+ {
+ AlignmentAnnotation an = (AlignmentAnnotation) vv
+ .elementAt(ii);
+ seqO.addAlignmentAnnotation(an);
+ }
+ }
+ }
+
Enumeration j = content.keys();
while (j.hasMoreElements())
{
}
ns += seq;
content.put(description, ns);
-
- if (type.equals("SS"))
+ Hashtable strucAnn;
+ if (seqAnn.containsKey(acc))
{
- Hashtable strucAnn;
- if (seqAnn.containsKey(acc))
- {
- strucAnn = (Hashtable) seqAnn.get(acc);
- }
- else
- {
- strucAnn = new Hashtable();
- }
-
- Vector newStruc = new Vector();
- parseAnnotationRow(newStruc, type, ns);
-
- strucAnn.put(type, newStruc);
- seqAnn.put(acc, strucAnn);
+ strucAnn = (Hashtable) seqAnn.get(acc);
}
+ else
+ {
+ strucAnn = new Hashtable();
+ }
+
+ Vector newStruc = new Vector();
+ parseAnnotationRow(newStruc, type, ns);
+ strucAnn.put(type, newStruc);
+ seqAnn.put(acc, strucAnn);
}
else
{
}
}
+ /**
+ * Demangle an accession string and guess the originating sequence database for a given sequence
+ * @param seqO sequence to be annotated
+ * @param dbr Accession string for sequence
+ * @param dbsource source database for alignment (PFAM or RFAM)
+ */
+ private void guessDatabaseFor(Sequence seqO, String dbr, String dbsource)
+ {
+ DBRefEntry dbrf=null;
+ List<DBRefEntry> dbrs=new ArrayList<DBRefEntry>();
+ String seqdb="Unknown",sdbac=""+dbr;
+ int st=-1,en=-1,p;
+ if ((st=sdbac.indexOf("/"))>-1)
+ {
+ String num,range=sdbac.substring(st+1);
+ sdbac = sdbac.substring(0,st);
+ if ((p=range.indexOf("-"))>-1)
+ {
+ p++;
+ if (p<range.length())
+ {
+ num = range.substring(p).trim();
+ try {
+ en = Integer.parseInt(num);
+ } catch (NumberFormatException x)
+ {
+ // could warn here that index is invalid
+ en = -1;
+ }
+ }
+ } else {
+ p=range.length();
+ }
+ num=range.substring(0,p).trim();
+ try {
+ st = Integer.parseInt(num);
+ } catch (NumberFormatException x)
+ {
+ // could warn here that index is invalid
+ st = -1;
+ }
+ }
+ if (dbsource.equals("PFAM")) {
+ seqdb = "UNIPROT";
+ if (sdbac.indexOf(".")>-1)
+ {
+ // strip of last subdomain
+ sdbac = sdbac.substring(0,sdbac.indexOf("."));
+ dbrf = jalview.util.DBRefUtils.parseToDbRef(seqO, seqdb, dbsource, sdbac);
+ if (dbrf!=null)
+ {
+ dbrs.add(dbrf);
+ }
+ }
+ dbrf = jalview.util.DBRefUtils.parseToDbRef(seqO, dbsource, dbsource, dbr);
+ if (dbr!=null)
+ {
+ dbrs.add(dbrf);
+ }
+ } else {
+ seqdb = "EMBL"; // total guess - could be ENA, or something else these days
+ if (sdbac.indexOf(".")>-1)
+ {
+ // strip off last subdomain
+ sdbac = sdbac.substring(0,sdbac.indexOf("."));
+ dbrf = jalview.util.DBRefUtils.parseToDbRef(seqO, seqdb, dbsource, sdbac);
+ if (dbrf!=null)
+ {
+ dbrs.add(dbrf);
+ }
+ }
+
+ dbrf = jalview.util.DBRefUtils.parseToDbRef(seqO, dbsource, dbsource, dbr);
+ if (dbrf!=null)
+ {
+ dbrs.add(dbrf);
+ }
+ }
+ if (st!=-1 && en!=-1)
+ {
+ for (DBRefEntry d:dbrs)
+ {
+ jalview.util.MapList mp = new jalview.util.MapList(new int[] { seqO.getStart(),seqO.getEnd()},new int[] { st,en},1,1);
+ jalview.datamodel.Mapping mping = new Mapping(mp);
+ d.setMap(mping);
+ }
+ }
+ }
+
protected static AlignmentAnnotation parseAnnotationRow(
Vector annotation, String label, String annots)
{
convert2 = closeparen.replaceAll(convert1);
annots = convert2;
- String type = (label.indexOf("_cons") == label.length() - 5) ? label
- .substring(0, label.length() - 5) : label;
+ String type = label;
+ if (label.contains("_cons"))
+ {
+ type = (label.indexOf("_cons") == label.length() - 5) ? label
+ .substring(0, label.length() - 5) : label;
+ }
boolean ss = false;
type = id2type(type);
if (type.equals("secondary structure"))
return annot;
}
- public static String print(SequenceI[] s)
+ public String print(SequenceI[] s)
{
- return "not yet implemented";
+ // find max length of id
+ int max = 0;
+ int maxid = 0;
+ int in = 0;
+ Hashtable dataRef = null;
+ while ((in < s.length) && (s[in] != null))
+ {
+ String tmp = printId(s[in]);
+ if (s[in].getSequence().length > max)
+ {
+ max = s[in].getSequence().length;
+ }
+
+ if (tmp.length() > maxid)
+ {
+ maxid = tmp.length();
+ }
+ if (s[in].getDBRef() != null)
+ {
+ for (int idb = 0; idb < s[in].getDBRef().length; idb++)
+ {
+ if (dataRef == null)
+ dataRef = new Hashtable();
+
+ String datAs1 = s[in].getDBRef()[idb].getSource().toString()
+ + " ; "
+ + s[in].getDBRef()[idb].getAccessionId().toString();
+ dataRef.put(tmp, datAs1);
+ }
+ }
+ in++;
+ }
+ maxid += 9;
+ int i = 0;
+
+ // output database type
+ if (al.getProperties() != null)
+ {
+ if (!al.getProperties().isEmpty())
+ {
+ Enumeration key = al.getProperties().keys();
+ Enumeration val = al.getProperties().elements();
+ while (key.hasMoreElements())
+ {
+ out.append("#=GF " + key.nextElement() + " " + val.nextElement());
+ out.append(newline);
+ }
+ }
+ }
+
+ // output database accessions
+ if (dataRef != null)
+ {
+ Enumeration en = dataRef.keys();
+ while (en.hasMoreElements())
+ {
+ Object idd = en.nextElement();
+ String type = (String) dataRef.remove(idd);
+ out.append(new Format("%-" + (maxid - 2) + "s").form("#=GS "
+ + idd.toString() + " "));
+ if (type.contains("PFAM") || type.contains("RFAM"))
+ {
+
+ out.append(" AC " + type.substring(type.indexOf(";") + 1));
+ }
+ else
+ {
+ out.append(" DR " + type + " ");
+ }
+ out.append(newline);
+ }
+ }
+
+ // output annotations
+ while (i < s.length && s[i] != null)
+ {
+ if (s[i].getDatasetSequence() != null)
+ {
+ SequenceI ds = s[i].getDatasetSequence();
+ AlignmentAnnotation[] alAnot;
+ Annotation[] ann;
+ Annotation annot;
+ alAnot = s[i].getAnnotation();
+ String feature = "";
+ if (alAnot != null)
+ {
+ for (int j = 0; j < alAnot.length; j++)
+ {
+ if (ds.getSequenceFeatures() != null)
+ {
+ feature = ds.getSequenceFeatures()[0].type;
+ }
+ String key = type2id(feature);
+
+ if (key == null)
+ continue;
+
+ // out.append("#=GR ");
+ out.append(new Format("%-" + maxid + "s").form("#=GR "
+ + printId(s[i]) + " " + key + " "));
+ ann = alAnot[j].annotations;
+ String seq = "";
+ for (int k = 0; k < ann.length; k++)
+ {
+ annot = ann[k];
+ String ch = (annot == null) ? Character.toString(s[i]
+ .getCharAt(k)) : annot.displayCharacter;
+ if (ch.length() == 0)
+ {
+ if (key.equals("SS"))
+ {
+ char ll = annot.secondaryStructure;
+ seq = (Character.toString(ll).equals(" ")) ? seq + "C"
+ : seq + ll;
+ }
+ else
+ {
+ seq += ".";
+ }
+ }
+ else if (ch.length() == 1)
+ {
+ seq += ch;
+ }
+ else if (ch.length() > 1)
+ {
+ seq += ch.charAt(1);
+ }
+ }
+ out.append(seq);
+ out.append(newline);
+ }
+ }
+ }
+
+ out.append(new Format("%-" + maxid + "s").form(printId(s[i]) + " "));
+ out.append(s[i].getSequenceAsString());
+ out.append(newline);
+ i++;
+ }
+
+ // alignment annotation
+ AlignmentAnnotation aa;
+ if (al.getAlignmentAnnotation() != null)
+ {
+ for (int ia = 0; ia < al.getAlignmentAnnotation().length; ia++)
+ {
+ aa = al.getAlignmentAnnotation()[ia];
+ if (aa.autoCalculated || !aa.visible)
+ {
+ continue;
+ }
+ String seq = "";
+ String label;
+
+ if (aa.label.equals("seq"))
+ label = "seq_cons";
+ else
+ label = type2id(aa.label.toLowerCase()) + "_cons";
+
+ if (label == null)
+ label = aa.label;
+
+ out.append(new Format("%-" + maxid + "s").form("#=GC " + label
+ + " "));
+ for (int j = 0; j < aa.annotations.length; j++)
+ {
+ String ch = (aa.annotations[j] == null) ? "-"
+ : aa.annotations[j].displayCharacter;
+ if (ch.length() == 0)
+ {
+ char ll = aa.annotations[j].secondaryStructure;
+ if (Character.toString(ll).equals(" "))
+ seq += "C";
+ else
+ seq += ll;
+ }
+ else if (ch.length() == 1)
+ {
+ seq += ch;
+ }
+ else if (ch.length() > 1)
+ {
+ seq += ch.charAt(1);
+ }
+ }
+ out.append(seq);
+ out.append(newline);
+ }
+ }
+ return out.toString();
}
public String print()
{
- return print(getSeqsAsArray());
+ out = new StringBuffer();
+ out.append("# STOCKHOLM 1.0");
+ out.append(newline);
+ print(getSeqsAsArray());
+
+ out.append("//");
+ out.append(newline);
+ return out.toString();
}
private static Hashtable typeIds = null;
+ id);
return id;
}
+
+ protected static String type2id(String type)
+ {
+ String key = null;
+ Enumeration e = typeIds.keys();
+ while (e.hasMoreElements())
+ {
+ Object ll = e.nextElement();
+ if (typeIds.get(ll).toString().equals(type))
+ {
+ key = (String) ll;
+ break;
+ }
+ }
+ if (key != null)
+ {
+ return (String) key;
+ }
+ System.err.println("Warning : Unknown Stockholm annotation type: "
+ + type);
+ return key;
+ }
/**
* //ssline is complete secondary structure line private AlignmentAnnotation
* addHelices(Vector annotation, String label, String ssline) {
package jalview.jbgui;
import jalview.schemes.ColourSchemeProperty;
+import jalview.util.MessageManager;
import java.awt.BorderLayout;
import java.awt.Color;
public JCheckBoxMenuItem showSeqFeaturesHeight = new JCheckBoxMenuItem();
JMenuItem deleteGroups = new JMenuItem();
+
+ JMenuItem createGroup = new JMenuItem();
+ JMenuItem unGroup = new JMenuItem();
JMenuItem delete = new JMenuItem();
int option = JOptionPane.showInternalConfirmDialog(
jalview.gui.Desktop.desktop,
- "Remove from default list?",
- "Remove user defined colour",
+ MessageManager.getString("label.remove_from_default_list"),
+ MessageManager.getString("label.remove_user_defined_colour"),
JOptionPane.YES_NO_OPTION);
if (option == JOptionPane.YES_OPTION)
{
invertSequenceMenuItem_actionPerformed(e);
}
});
- grpsFromSelection.setText("Make Groups for selection");
+ grpsFromSelection.setText("Make Groups For Selection");
grpsFromSelection.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(ActionEvent e)
deleteGroups_actionPerformed(e);
}
});
+ createGroup.setText("Create group");
+ createGroup.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
+ java.awt.event.KeyEvent.VK_G, Toolkit.getDefaultToolkit()
+ .getMenuShortcutKeyMask(), false));
+ createGroup.addActionListener(new java.awt.event.ActionListener()
+ {
+ public void actionPerformed(ActionEvent e)
+ {
+ createGroup_actionPerformed(e);
+ }
+ });
+ unGroup.setText("Remove Group");
+ unGroup.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
+ java.awt.event.KeyEvent.VK_G,Toolkit.getDefaultToolkit()
+ .getMenuShortcutKeyMask() | java.awt.event.KeyEvent.SHIFT_MASK, false));
+ unGroup.addActionListener(new java.awt.event.ActionListener()
+ {
+ public void actionPerformed(ActionEvent e)
+ {
+ unGroup_actionPerformed(e);
+ }
+ });
copy.setText("Copy");
copy.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
java.awt.event.KeyEvent.VK_C, Toolkit.getDefaultToolkit()
selectMenu.add(deselectAllSequenceMenuItem);
selectMenu.add(invertSequenceMenuItem);
selectMenu.add(invertColSel);
- selectMenu.add(deleteGroups);
+ selectMenu.add(createGroup);
+ selectMenu.add(unGroup);
selectMenu.add(grpsFromSelection);
+ selectMenu.add(deleteGroups);
// TODO - determine if the listenToViewSelections button is needed : see bug
// JAL-574
// selectMenu.addSeparator();
protected void deleteGroups_actionPerformed(ActionEvent e)
{
}
+
+ protected void createGroup_actionPerformed(ActionEvent e)
+ {
+ }
+
+ protected void unGroup_actionPerformed(ActionEvent e)
+ {
+ }
protected void copy_actionPerformed(ActionEvent e)
{
package jalview.jbgui;
import jalview.gui.JvSwingUtils;
+import jalview.util.MessageManager;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
name = new JTextArea(1, 12);
JvSwingUtils.mgAddtoLayout(cpanel,
- "Short descriptive name for service", new JLabel("Name:"),
+ "Short descriptive name for service", new JLabel(MessageManager.getString("label.name")),
name, "wrap");
action = new JComboBox();
JvSwingUtils
.mgAddtoLayout(
cpanel,
"What kind of function the service performs (e.g. alignment, analysis, search, etc).",
- new JLabel("Service Action:"), action, "wrap");
+ new JLabel(MessageManager.getString("label.service_action")), action, "wrap");
descr = new JTextArea(4, 60);
descrVp = new JScrollPane();
descrVp.setViewportView(descr);
.mgAddtoLayout(
cpanel,
"URL to post data to service. Include any special parameters needed here",
- new JLabel("POST URL:"), urlVp, "wrap");
+ new JLabel(MessageManager.getString("label.post_url")), urlVp, "wrap");
urlsuff = new JTextArea();
urlsuff.setColumns(60);
.mgAddtoLayout(
cpanel,
"Optional suffix added to URL when retrieving results from service",
- new JLabel("URL Suffix:"), urlsuff, "wrap");
+ new JLabel(MessageManager.getString("label.url_suffix")), urlsuff, "wrap");
// input options
// details.add(cpanel = new JPanel(), BorderLayout.CENTER);
// cpanel.setLayout(new FlowLayout());
- hSeparable = new JCheckBox("per Sequence");
+ hSeparable = new JCheckBox(MessageManager.getString("label.per_seq"));
hSeparable
.setToolTipText("<html>"
+ JvSwingUtils
}
});
- vSeparable = new JCheckBox("Results are vertically separable");
+ vSeparable = new JCheckBox(MessageManager.getString("label.result_vertically_separable"));
vSeparable
.setToolTipText("<html>"
+ JvSwingUtils
import java.awt.font.LineMetrics;
import java.awt.geom.AffineTransform;
import java.awt.image.ImageObserver;
+import java.util.BitSet;
import java.util.Hashtable;
import com.stevesoft.pat.Regex;
public class AnnotationRenderer
{
+ /**
+ * flag indicating if timing and redraw parameter info should be output
+ */
+ private final boolean debugRedraw;
public AnnotationRenderer()
{
- // TODO Auto-generated constructor stub
+ this(false);
+ }
+ /**
+ * Create a new annotation Renderer
+ * @param debugRedraw flag indicating if timing and redraw parameter info should be output
+ */
+ public AnnotationRenderer(boolean debugRedraw)
+ {
+ this.debugRedraw=debugRedraw;
}
public void drawStemAnnot(Graphics g, Annotation[] row_annotations,
* width of image to render in panel
*/
private int imgWidth;
-
+ /**
+ * offset to beginning of visible area
+ */
+ private int sOffset;
+ /**
+ * offset to end of visible area
+ */
+ private int visHeight;
+ /**
+ * indicate if the renderer should only render the visible portion of the annotation given the current view settings
+ */
+ private boolean useClip=true;
+ /**
+ * master flag indicating if renderer should ever try to clip. not enabled for jalview 2.8.1
+ */
+ private boolean canClip=false;
+
// public void updateFromAnnotationPanel(FontMetrics annotFM, AlignViewportI
// av)
public void updateFromAwtRenderPanel(AwtRenderPanelI annotPanel,
annotationPanel = annotPanel;
fadedImage = annotPanel.getFadedImage();
imgWidth = annotPanel.getFadedImageWidth();
+ // visible area for rendering
+ int[] bounds=annotPanel.getVisibleVRange();
+ if (bounds!=null)
+ {
+ sOffset = bounds[0];
+ visHeight = bounds[1];
+ if (visHeight==0)
+ {
+ useClip=false;
+ } else {
+ useClip=canClip;
+ }
+ } else {
+ useClip=false;
+ }
+
updateFromAlignViewport(av);
}
}
// TODO extend annotation row to enable dynamic and static profile data to
// be stored
- if (aa.groupRef == null && aa.sequenceRef == null && av_renderProfile)
+ if (aa.groupRef == null && aa.sequenceRef == null)
{
return AAFrequency.extractProfile(hconsensus[column],
av_ignoreGapsConsensus);
// to
// be stored
if (aa.groupRef == null && aa.sequenceRef == null
- && av_renderProfile && hStrucConsensus != null
+ && hStrucConsensus != null
&& hStrucConsensus.length > column)
{
return StructureFrequency.extractProfile(hStrucConsensus[column],
AlignViewportI av, Graphics g, int activeRow, int startRes,
int endRes)
{
+ long stime=System.currentTimeMillis();
boolean usedFaded = false;
// NOTES:
// AnnotationPanel needs to implement: ImageObserver, access to
updateFromAwtRenderPanel(annotPanel, av);
fm = g.getFontMetrics();
AlignmentAnnotation[] aa = av.getAlignment().getAlignmentAnnotation();
-
+ if (aa==null)
+ {
+ return false;
+ }
int x = 0, y = 0;
int column = 0;
char lastSS;
boolean centreColLabels, centreColLabelsDef = av
.getCentreColumnLabels();
boolean scaleColLabel = false;
- boolean[] graphGroupDrawn = new boolean[aa.length];
+ AlignmentAnnotation consensusAnnot=av.getAlignmentConsensusAnnotation(),structConsensusAnnot=av.getAlignmentStrucConsensusAnnotation();
+ boolean renderHistogram = true, renderProfile = true, normaliseProfile = false;
+
+ BitSet graphGroupDrawn = new BitSet();
int charOffset = 0; // offset for a label
float fmWidth, fmScaling = 1f; // scaling for a label to fit it into a
// column.
Font ofont = g.getFont();
// \u03B2 \u03B1
+ // debug ints
+ int yfrom=0,f_i=0,yto=0,f_to=0;
+ boolean clipst=false,clipend=false;
for (int i = 0; i < aa.length; i++)
{
AlignmentAnnotation row = aa[i];
+ {
+ // check if this is a consensus annotation row and set the display settings appropriately
+ // TODO: generalise this to have render styles for consensus/profile
+ // data
+ if (row.groupRef != null && row == row.groupRef.getConsensus())
+ {
+ renderHistogram = row.groupRef.isShowConsensusHistogram();
+ renderProfile = row.groupRef.isShowSequenceLogo();
+ normaliseProfile = row.groupRef.isNormaliseSequenceLogo();
+ }
+ else if (row == consensusAnnot || row == structConsensusAnnot)
+ {
+ renderHistogram = av_renderHistogram;
+ renderProfile = av_renderProfile;
+ normaliseProfile = av_normaliseProfile;
+ } else {
+ renderHistogram = true;
+ // don't need to set render/normaliseProfile since they are not currently used in any other annotation track renderer
+ }
+ }
Annotation[] row_annotations = row.annotations;
if (!row.visible)
{
scaleColLabel = row.scaleColLabel;
lastSS = ' ';
lastSSX = 0;
+
+ if (!useClip || ((y-charHeight)<visHeight && (y+row.height+charHeight*2)>=sOffset))
+ {// if_in_visible_region
+ if (!clipst)
+ {
+ clipst=true;
+ yfrom=y;
+ f_i=i;
+ }
+ yto = y;
+ f_to=i;
if (row.graph > 0)
{
- if (row.graphGroup > -1 && graphGroupDrawn[row.graphGroup])
- {
+ if (row.graphGroup > -1 && graphGroupDrawn.get(row.graphGroup)) {
continue;
}
{
if (row.graph == AlignmentAnnotation.LINE_GRAPH)
{
- if (row.graphGroup > -1 && !graphGroupDrawn[row.graphGroup])
+ if (row.graphGroup > -1 && !graphGroupDrawn.get(row.graphGroup))
{
+ // TODO: JAL-1291 revise rendering model so the graphGroup map is computed efficiently for all visible labels
float groupmax = -999999, groupmin = 9999999;
for (int gg = 0; gg < aa.length; gg++)
{
}
}
- graphGroupDrawn[row.graphGroup] = true;
+ graphGroupDrawn.set(row.graphGroup);
}
else
{
else if (row.graph == AlignmentAnnotation.BAR_GRAPH)
{
drawBarGraph(g, row, row_annotations, startRes, endRes,
- row.graphMin, row.graphMax, y);
+ row.graphMin, row.graphMax, y, renderHistogram,renderProfile,normaliseProfile);
}
}
-
+ } else {
+ if (clipst && !clipend)
+ {
+ clipend = true;
+ }
+ }// end if_in_visible_region
if (row.graph > 0 && row.hasText)
{
y += charHeight;
y += aa[i].height;
}
}
+ if (debugRedraw)
+ {
+ if (canClip)
+ {
+ if (clipst)
+ {
+ System.err.println("Start clip at : " + yfrom + " (index " + f_i
+ + ")");
+ }
+ if (clipend)
+ {
+ System.err.println("End clip at : " + yto + " (index " + f_to
+ + ")");
+ }
+ }
+ ;
+ System.err.println("Annotation Rendering time:"
+ + (System.currentTimeMillis() - stime));
+ }
+ ;
+
return !usedFaded;
}
public void drawBarGraph(Graphics g, AlignmentAnnotation _aa,
Annotation[] aa_annotations, int sRes, int eRes, float min,
- float max, int y)
+ float max, int y, boolean renderHistogram,boolean renderProfile,boolean normaliseProfile)
{
if (sRes > aa_annotations.length)
{
int column;
int aaMax = aa_annotations.length - 1;
- boolean renderHistogram = true, renderProfile = true, normaliseProfile = false;
- // if (aa.autoCalculated && aa.label.startsWith("Consensus"))
- {
- // TODO: generalise this to have render styles for consensus/profile data
- if (_aa.groupRef != null)
- {
- renderHistogram = _aa.groupRef.isShowConsensusHistogram();
- renderProfile = _aa.groupRef.isShowSequenceLogo();
- normaliseProfile = _aa.groupRef.isNormaliseSequenceLogo();
- }
- else
- {
- renderHistogram = av_renderHistogram;
- renderProfile = av_renderProfile;
- normaliseProfile = av_normaliseProfile;
- }
- }
while (x < eRes - sRes)
{
column = sRes + x;
*/
int getFadedImageWidth();
+ /**
+ * height of visible area on to the image - used to draw only what is visible.
+ * @return [start, end of visible region]
+ */
+ int[] getVisibleVRange();
+
}
-#Thu Sep 06 17:55:29 BST 2012
+#Thu Oct 17 10:35:33 BST 2013
jalview.schemabinding.version2.ThresholdLine=jalview.schemabinding.version2.descriptors.ThresholdLineDescriptor
jalview.schemabinding.version2.SequenceSetProperties=jalview.schemabinding.version2.descriptors.SequenceSetPropertiesDescriptor
jalview.schemabinding.version2.StructureState=jalview.schemabinding.version2.descriptors.StructureStateDescriptor
/*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8)
- * Copyright (C) 2012 J Procter, AM Waterhouse, LM Lui, J Engelhardt, G Barton, M Clamp, S Searle
- *
- * This file is part of Jalview.
- *
- * Jalview is free software: you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
- *
- * Jalview 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 GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with Jalview. If not, see <http://www.gnu.org/licenses/>.
+ * This class was automatically generated with
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
*/
+
package jalview.schemabinding.version2;
-//---------------------------------/
-//- Imported classes and packages -/
+ //---------------------------------/
+ //- Imported classes and packages -/
//---------------------------------/
import org.exolab.castor.xml.Marshaller;
*
* @version $Revision$ $Date$
*/
-public class AnnotationColours implements java.io.Serializable
-{
-
- // --------------------------/
- // - Class/Member Variables -/
- // --------------------------/
-
- /**
- * Field _aboveThreshold.
- */
- private int _aboveThreshold;
-
- /**
- * keeps track of state for field: _aboveThreshold
- */
- private boolean _has_aboveThreshold;
-
- /**
- * Field _annotation.
- */
- private java.lang.String _annotation;
-
- /**
- * Field _minColour.
- */
- private int _minColour;
-
- /**
- * keeps track of state for field: _minColour
- */
- private boolean _has_minColour;
-
- /**
- * Field _maxColour.
- */
- private int _maxColour;
-
- /**
- * keeps track of state for field: _maxColour
- */
- private boolean _has_maxColour;
-
- /**
- * Field _colourScheme.
- */
- private java.lang.String _colourScheme;
-
- /**
- * Field _threshold.
- */
- private float _threshold;
-
- /**
- * keeps track of state for field: _threshold
- */
- private boolean _has_threshold;
-
- // ----------------/
- // - Constructors -/
- // ----------------/
-
- public AnnotationColours()
- {
- super();
- }
-
- // -----------/
- // - Methods -/
- // -----------/
-
- /**
- */
- public void deleteAboveThreshold()
- {
- this._has_aboveThreshold = false;
- }
-
- /**
- */
- public void deleteMaxColour()
- {
- this._has_maxColour = false;
- }
-
- /**
- */
- public void deleteMinColour()
- {
- this._has_minColour = false;
- }
-
- /**
- */
- public void deleteThreshold()
- {
- this._has_threshold = false;
- }
-
- /**
- * Returns the value of field 'aboveThreshold'.
- *
- * @return the value of field 'AboveThreshold'.
- */
- public int getAboveThreshold()
- {
- return this._aboveThreshold;
- }
-
- /**
- * Returns the value of field 'annotation'.
- *
- * @return the value of field 'Annotation'.
- */
- public java.lang.String getAnnotation()
- {
- return this._annotation;
- }
-
- /**
- * Returns the value of field 'colourScheme'.
- *
- * @return the value of field 'ColourScheme'.
- */
- public java.lang.String getColourScheme()
- {
- return this._colourScheme;
- }
-
- /**
- * Returns the value of field 'maxColour'.
- *
- * @return the value of field 'MaxColour'.
- */
- public int getMaxColour()
- {
- return this._maxColour;
- }
-
- /**
- * Returns the value of field 'minColour'.
- *
- * @return the value of field 'MinColour'.
- */
- public int getMinColour()
- {
- return this._minColour;
- }
-
- /**
- * Returns the value of field 'threshold'.
- *
- * @return the value of field 'Threshold'.
- */
- public float getThreshold()
- {
- return this._threshold;
- }
-
- /**
- * Method hasAboveThreshold.
- *
- * @return true if at least one AboveThreshold has been added
- */
- public boolean hasAboveThreshold()
- {
- return this._has_aboveThreshold;
- }
-
- /**
- * Method hasMaxColour.
- *
- * @return true if at least one MaxColour has been added
- */
- public boolean hasMaxColour()
- {
- return this._has_maxColour;
- }
-
- /**
- * Method hasMinColour.
- *
- * @return true if at least one MinColour has been added
- */
- public boolean hasMinColour()
- {
- return this._has_minColour;
- }
-
- /**
- * Method hasThreshold.
- *
- * @return true if at least one Threshold has been added
- */
- public boolean hasThreshold()
- {
- return this._has_threshold;
- }
-
- /**
- * Method isValid.
- *
- * @return true if this object is valid according to the schema
- */
- public boolean isValid()
- {
- try
- {
- validate();
- } catch (org.exolab.castor.xml.ValidationException vex)
- {
- return false;
- }
- return true;
- }
-
- /**
- *
- *
- * @param out
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- */
- public void marshal(final java.io.Writer out)
- throws org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- Marshaller.marshal(this, out);
- }
-
- /**
- *
- *
- * @param handler
- * @throws java.io.IOException
- * if an IOException occurs during marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- */
- public void marshal(final org.xml.sax.ContentHandler handler)
- throws java.io.IOException,
- org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- Marshaller.marshal(this, handler);
- }
-
- /**
- * Sets the value of field 'aboveThreshold'.
- *
- * @param aboveThreshold
- * the value of field 'aboveThreshold'.
- */
- public void setAboveThreshold(final int aboveThreshold)
- {
- this._aboveThreshold = aboveThreshold;
- this._has_aboveThreshold = true;
- }
-
- /**
- * Sets the value of field 'annotation'.
- *
- * @param annotation
- * the value of field 'annotation'.
- */
- public void setAnnotation(final java.lang.String annotation)
- {
- this._annotation = annotation;
- }
-
- /**
- * Sets the value of field 'colourScheme'.
- *
- * @param colourScheme
- * the value of field 'colourScheme'.
- */
- public void setColourScheme(final java.lang.String colourScheme)
- {
- this._colourScheme = colourScheme;
- }
-
- /**
- * Sets the value of field 'maxColour'.
- *
- * @param maxColour
- * the value of field 'maxColour'.
- */
- public void setMaxColour(final int maxColour)
- {
- this._maxColour = maxColour;
- this._has_maxColour = true;
- }
-
- /**
- * Sets the value of field 'minColour'.
- *
- * @param minColour
- * the value of field 'minColour'.
- */
- public void setMinColour(final int minColour)
- {
- this._minColour = minColour;
- this._has_minColour = true;
- }
-
- /**
- * Sets the value of field 'threshold'.
- *
- * @param threshold
- * the value of field 'threshold'.
- */
- public void setThreshold(final float threshold)
- {
- this._threshold = threshold;
- this._has_threshold = true;
- }
-
- /**
- * Method unmarshal.
- *
- * @param reader
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- * @return the unmarshaled jalview.schemabinding.version2.AnnotationColours
- */
- public static jalview.schemabinding.version2.AnnotationColours unmarshal(
- final java.io.Reader reader)
- throws org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- return (jalview.schemabinding.version2.AnnotationColours) Unmarshaller
- .unmarshal(
- jalview.schemabinding.version2.AnnotationColours.class,
- reader);
- }
-
- /**
- *
- *
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- */
- public void validate() throws org.exolab.castor.xml.ValidationException
- {
- org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
- validator.validate(this);
- }
+public class AnnotationColours implements java.io.Serializable {
+
+
+ //--------------------------/
+ //- Class/Member Variables -/
+ //--------------------------/
+
+ /**
+ * Field _aboveThreshold.
+ */
+ private int _aboveThreshold;
+
+ /**
+ * keeps track of state for field: _aboveThreshold
+ */
+ private boolean _has_aboveThreshold;
+
+ /**
+ * Field _annotation.
+ */
+ private java.lang.String _annotation;
+
+ /**
+ * Field _minColour.
+ */
+ private int _minColour;
+
+ /**
+ * keeps track of state for field: _minColour
+ */
+ private boolean _has_minColour;
+
+ /**
+ * Field _maxColour.
+ */
+ private int _maxColour;
+
+ /**
+ * keeps track of state for field: _maxColour
+ */
+ private boolean _has_maxColour;
+
+ /**
+ * Field _colourScheme.
+ */
+ private java.lang.String _colourScheme;
+
+ /**
+ * Field _threshold.
+ */
+ private float _threshold;
+
+ /**
+ * keeps track of state for field: _threshold
+ */
+ private boolean _has_threshold;
+
+ /**
+ * Field _perSequence.
+ */
+ private boolean _perSequence;
+
+ /**
+ * keeps track of state for field: _perSequence
+ */
+ private boolean _has_perSequence;
+
+ /**
+ * Field _predefinedColours.
+ */
+ private boolean _predefinedColours;
+
+ /**
+ * keeps track of state for field: _predefinedColours
+ */
+ private boolean _has_predefinedColours;
+
+
+ //----------------/
+ //- Constructors -/
+ //----------------/
+
+ public AnnotationColours() {
+ super();
+ }
+
+
+ //-----------/
+ //- Methods -/
+ //-----------/
+
+ /**
+ */
+ public void deleteAboveThreshold(
+ ) {
+ this._has_aboveThreshold= false;
+ }
+
+ /**
+ */
+ public void deleteMaxColour(
+ ) {
+ this._has_maxColour= false;
+ }
+
+ /**
+ */
+ public void deleteMinColour(
+ ) {
+ this._has_minColour= false;
+ }
+
+ /**
+ */
+ public void deletePerSequence(
+ ) {
+ this._has_perSequence= false;
+ }
+
+ /**
+ */
+ public void deletePredefinedColours(
+ ) {
+ this._has_predefinedColours= false;
+ }
+
+ /**
+ */
+ public void deleteThreshold(
+ ) {
+ this._has_threshold= false;
+ }
+
+ /**
+ * Returns the value of field 'aboveThreshold'.
+ *
+ * @return the value of field 'AboveThreshold'.
+ */
+ public int getAboveThreshold(
+ ) {
+ return this._aboveThreshold;
+ }
+
+ /**
+ * Returns the value of field 'annotation'.
+ *
+ * @return the value of field 'Annotation'.
+ */
+ public java.lang.String getAnnotation(
+ ) {
+ return this._annotation;
+ }
+
+ /**
+ * Returns the value of field 'colourScheme'.
+ *
+ * @return the value of field 'ColourScheme'.
+ */
+ public java.lang.String getColourScheme(
+ ) {
+ return this._colourScheme;
+ }
+
+ /**
+ * Returns the value of field 'maxColour'.
+ *
+ * @return the value of field 'MaxColour'.
+ */
+ public int getMaxColour(
+ ) {
+ return this._maxColour;
+ }
+
+ /**
+ * Returns the value of field 'minColour'.
+ *
+ * @return the value of field 'MinColour'.
+ */
+ public int getMinColour(
+ ) {
+ return this._minColour;
+ }
+
+ /**
+ * Returns the value of field 'perSequence'.
+ *
+ * @return the value of field 'PerSequence'.
+ */
+ public boolean getPerSequence(
+ ) {
+ return this._perSequence;
+ }
+
+ /**
+ * Returns the value of field 'predefinedColours'.
+ *
+ * @return the value of field 'PredefinedColours'.
+ */
+ public boolean getPredefinedColours(
+ ) {
+ return this._predefinedColours;
+ }
+
+ /**
+ * Returns the value of field 'threshold'.
+ *
+ * @return the value of field 'Threshold'.
+ */
+ public float getThreshold(
+ ) {
+ return this._threshold;
+ }
+
+ /**
+ * Method hasAboveThreshold.
+ *
+ * @return true if at least one AboveThreshold has been added
+ */
+ public boolean hasAboveThreshold(
+ ) {
+ return this._has_aboveThreshold;
+ }
+
+ /**
+ * Method hasMaxColour.
+ *
+ * @return true if at least one MaxColour has been added
+ */
+ public boolean hasMaxColour(
+ ) {
+ return this._has_maxColour;
+ }
+
+ /**
+ * Method hasMinColour.
+ *
+ * @return true if at least one MinColour has been added
+ */
+ public boolean hasMinColour(
+ ) {
+ return this._has_minColour;
+ }
+
+ /**
+ * Method hasPerSequence.
+ *
+ * @return true if at least one PerSequence has been added
+ */
+ public boolean hasPerSequence(
+ ) {
+ return this._has_perSequence;
+ }
+
+ /**
+ * Method hasPredefinedColours.
+ *
+ * @return true if at least one PredefinedColours has been added
+ */
+ public boolean hasPredefinedColours(
+ ) {
+ return this._has_predefinedColours;
+ }
+
+ /**
+ * Method hasThreshold.
+ *
+ * @return true if at least one Threshold has been added
+ */
+ public boolean hasThreshold(
+ ) {
+ return this._has_threshold;
+ }
+
+ /**
+ * Returns the value of field 'perSequence'.
+ *
+ * @return the value of field 'PerSequence'.
+ */
+ public boolean isPerSequence(
+ ) {
+ return this._perSequence;
+ }
+
+ /**
+ * Returns the value of field 'predefinedColours'.
+ *
+ * @return the value of field 'PredefinedColours'.
+ */
+ public boolean isPredefinedColours(
+ ) {
+ return this._predefinedColours;
+ }
+
+ /**
+ * Method isValid.
+ *
+ * @return true if this object is valid according to the schema
+ */
+ public boolean isValid(
+ ) {
+ try {
+ validate();
+ } catch (org.exolab.castor.xml.ValidationException vex) {
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ *
+ *
+ * @param out
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ */
+ public void marshal(
+ final java.io.Writer out)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, out);
+ }
+
+ /**
+ *
+ *
+ * @param handler
+ * @throws java.io.IOException if an IOException occurs during
+ * marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ */
+ public void marshal(
+ final org.xml.sax.ContentHandler handler)
+ throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, handler);
+ }
+
+ /**
+ * Sets the value of field 'aboveThreshold'.
+ *
+ * @param aboveThreshold the value of field 'aboveThreshold'.
+ */
+ public void setAboveThreshold(
+ final int aboveThreshold) {
+ this._aboveThreshold = aboveThreshold;
+ this._has_aboveThreshold = true;
+ }
+
+ /**
+ * Sets the value of field 'annotation'.
+ *
+ * @param annotation the value of field 'annotation'.
+ */
+ public void setAnnotation(
+ final java.lang.String annotation) {
+ this._annotation = annotation;
+ }
+
+ /**
+ * Sets the value of field 'colourScheme'.
+ *
+ * @param colourScheme the value of field 'colourScheme'.
+ */
+ public void setColourScheme(
+ final java.lang.String colourScheme) {
+ this._colourScheme = colourScheme;
+ }
+
+ /**
+ * Sets the value of field 'maxColour'.
+ *
+ * @param maxColour the value of field 'maxColour'.
+ */
+ public void setMaxColour(
+ final int maxColour) {
+ this._maxColour = maxColour;
+ this._has_maxColour = true;
+ }
+
+ /**
+ * Sets the value of field 'minColour'.
+ *
+ * @param minColour the value of field 'minColour'.
+ */
+ public void setMinColour(
+ final int minColour) {
+ this._minColour = minColour;
+ this._has_minColour = true;
+ }
+
+ /**
+ * Sets the value of field 'perSequence'.
+ *
+ * @param perSequence the value of field 'perSequence'.
+ */
+ public void setPerSequence(
+ final boolean perSequence) {
+ this._perSequence = perSequence;
+ this._has_perSequence = true;
+ }
+
+ /**
+ * Sets the value of field 'predefinedColours'.
+ *
+ * @param predefinedColours the value of field
+ * 'predefinedColours'.
+ */
+ public void setPredefinedColours(
+ final boolean predefinedColours) {
+ this._predefinedColours = predefinedColours;
+ this._has_predefinedColours = true;
+ }
+
+ /**
+ * Sets the value of field 'threshold'.
+ *
+ * @param threshold the value of field 'threshold'.
+ */
+ public void setThreshold(
+ final float threshold) {
+ this._threshold = threshold;
+ this._has_threshold = true;
+ }
+
+ /**
+ * Method unmarshal.
+ *
+ * @param reader
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @return the unmarshaled
+ * jalview.schemabinding.version2.AnnotationColours
+ */
+ public static jalview.schemabinding.version2.AnnotationColours unmarshal(
+ final java.io.Reader reader)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ return (jalview.schemabinding.version2.AnnotationColours) Unmarshaller.unmarshal(jalview.schemabinding.version2.AnnotationColours.class, reader);
+ }
+
+ /**
+ *
+ *
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ */
+ public void validate(
+ )
+ throws org.exolab.castor.xml.ValidationException {
+ org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+ validator.validate(this);
+ }
}
/*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8)
- * Copyright (C) 2012 J Procter, AM Waterhouse, LM Lui, J Engelhardt, G Barton, M Clamp, S Searle
- *
- * This file is part of Jalview.
- *
- * Jalview is free software: you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
- *
- * Jalview 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 GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with Jalview. If not, see <http://www.gnu.org/licenses/>.
+ * This class was automatically generated with
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
*/
+
package jalview.schemabinding.version2.descriptors;
-//---------------------------------/
-//- Imported classes and packages -/
+ //---------------------------------/
+ //- Imported classes and packages -/
//---------------------------------/
import jalview.schemabinding.version2.AnnotationColours;
*
* @version $Revision$ $Date$
*/
-public class AnnotationColoursDescriptor extends
- org.exolab.castor.xml.util.XMLClassDescriptorImpl
-{
-
- // --------------------------/
- // - Class/Member Variables -/
- // --------------------------/
-
- /**
- * Field _elementDefinition.
- */
- private boolean _elementDefinition;
-
- /**
- * Field _nsPrefix.
- */
- private java.lang.String _nsPrefix;
-
- /**
- * Field _nsURI.
- */
- private java.lang.String _nsURI;
-
- /**
- * Field _xmlName.
- */
- private java.lang.String _xmlName;
-
- // ----------------/
- // - Constructors -/
- // ----------------/
-
- public AnnotationColoursDescriptor()
- {
- super();
- _nsURI = "www.jalview.org";
- _xmlName = "AnnotationColours";
- _elementDefinition = true;
- org.exolab.castor.xml.util.XMLFieldDescriptorImpl desc = null;
- org.exolab.castor.mapping.FieldHandler handler = null;
- org.exolab.castor.xml.FieldValidator fieldValidator = null;
- // -- initialize attribute descriptors
-
- // -- _aboveThreshold
- desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
- java.lang.Integer.TYPE, "_aboveThreshold", "aboveThreshold",
- org.exolab.castor.xml.NodeType.Attribute);
- handler = new org.exolab.castor.xml.XMLFieldHandler()
- {
- public java.lang.Object getValue(java.lang.Object object)
- throws IllegalStateException
- {
- AnnotationColours target = (AnnotationColours) object;
- if (!target.hasAboveThreshold())
- {
- return null;
+public class AnnotationColoursDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {
+
+
+ //--------------------------/
+ //- Class/Member Variables -/
+ //--------------------------/
+
+ /**
+ * Field _elementDefinition.
+ */
+ private boolean _elementDefinition;
+
+ /**
+ * Field _nsPrefix.
+ */
+ private java.lang.String _nsPrefix;
+
+ /**
+ * Field _nsURI.
+ */
+ private java.lang.String _nsURI;
+
+ /**
+ * Field _xmlName.
+ */
+ private java.lang.String _xmlName;
+
+
+ //----------------/
+ //- Constructors -/
+ //----------------/
+
+ public AnnotationColoursDescriptor() {
+ super();
+ _nsURI = "www.jalview.org";
+ _xmlName = "AnnotationColours";
+ _elementDefinition = true;
+ org.exolab.castor.xml.util.XMLFieldDescriptorImpl desc = null;
+ org.exolab.castor.mapping.FieldHandler handler = null;
+ org.exolab.castor.xml.FieldValidator fieldValidator = null;
+ //-- initialize attribute descriptors
+
+ //-- _aboveThreshold
+ desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_aboveThreshold", "aboveThreshold", org.exolab.castor.xml.NodeType.Attribute);
+ handler = new org.exolab.castor.xml.XMLFieldHandler() {
+ public java.lang.Object getValue( java.lang.Object object )
+ throws IllegalStateException
+ {
+ AnnotationColours target = (AnnotationColours) object;
+ if (!target.hasAboveThreshold()) { return null; }
+ return new java.lang.Integer(target.getAboveThreshold());
+ }
+ public void setValue( java.lang.Object object, java.lang.Object value)
+ throws IllegalStateException, IllegalArgumentException
+ {
+ try {
+ AnnotationColours target = (AnnotationColours) object;
+ // if null, use delete method for optional primitives
+ if (value == null) {
+ target.deleteAboveThreshold();
+ return;
+ }
+ target.setAboveThreshold( ((java.lang.Integer) value).intValue());
+ } catch (java.lang.Exception ex) {
+ throw new IllegalStateException(ex.toString());
+ }
+ }
+ public java.lang.Object newInstance(java.lang.Object parent) {
+ return null;
+ }
+ };
+ desc.setHandler(handler);
+ desc.setMultivalued(false);
+ addFieldDescriptor(desc);
+
+ //-- validation code for: _aboveThreshold
+ fieldValidator = new org.exolab.castor.xml.FieldValidator();
+ { //-- local scope
+ org.exolab.castor.xml.validators.IntValidator typeValidator;
+ typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+ fieldValidator.setValidator(typeValidator);
+ typeValidator.setMinInclusive(-2147483648);
+ typeValidator.setMaxInclusive(2147483647);
}
- return new java.lang.Integer(target.getAboveThreshold());
- }
-
- public void setValue(java.lang.Object object, java.lang.Object value)
- throws IllegalStateException, IllegalArgumentException
- {
- try
- {
- AnnotationColours target = (AnnotationColours) object;
- // if null, use delete method for optional primitives
- if (value == null)
- {
- target.deleteAboveThreshold();
- return;
- }
- target.setAboveThreshold(((java.lang.Integer) value).intValue());
- } catch (java.lang.Exception ex)
- {
- throw new IllegalStateException(ex.toString());
+ desc.setValidator(fieldValidator);
+ //-- _annotation
+ desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_annotation", "annotation", org.exolab.castor.xml.NodeType.Attribute);
+ desc.setImmutable(true);
+ handler = new org.exolab.castor.xml.XMLFieldHandler() {
+ public java.lang.Object getValue( java.lang.Object object )
+ throws IllegalStateException
+ {
+ AnnotationColours target = (AnnotationColours) object;
+ return target.getAnnotation();
+ }
+ public void setValue( java.lang.Object object, java.lang.Object value)
+ throws IllegalStateException, IllegalArgumentException
+ {
+ try {
+ AnnotationColours target = (AnnotationColours) object;
+ target.setAnnotation( (java.lang.String) value);
+ } catch (java.lang.Exception ex) {
+ throw new IllegalStateException(ex.toString());
+ }
+ }
+ public java.lang.Object newInstance(java.lang.Object parent) {
+ return null;
+ }
+ };
+ desc.setHandler(handler);
+ desc.setMultivalued(false);
+ addFieldDescriptor(desc);
+
+ //-- validation code for: _annotation
+ fieldValidator = new org.exolab.castor.xml.FieldValidator();
+ { //-- local scope
+ org.exolab.castor.xml.validators.StringValidator typeValidator;
+ typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+ fieldValidator.setValidator(typeValidator);
+ typeValidator.setWhiteSpace("preserve");
}
- }
-
- public java.lang.Object newInstance(java.lang.Object parent)
- {
- return null;
- }
- };
- desc.setHandler(handler);
- desc.setMultivalued(false);
- addFieldDescriptor(desc);
-
- // -- validation code for: _aboveThreshold
- fieldValidator = new org.exolab.castor.xml.FieldValidator();
- { // -- local scope
- org.exolab.castor.xml.validators.IntValidator typeValidator;
- typeValidator = new org.exolab.castor.xml.validators.IntValidator();
- fieldValidator.setValidator(typeValidator);
- typeValidator.setMinInclusive(-2147483648);
- typeValidator.setMaxInclusive(2147483647);
- }
- desc.setValidator(fieldValidator);
- // -- _annotation
- desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
- java.lang.String.class, "_annotation", "annotation",
- org.exolab.castor.xml.NodeType.Attribute);
- desc.setImmutable(true);
- handler = new org.exolab.castor.xml.XMLFieldHandler()
- {
- public java.lang.Object getValue(java.lang.Object object)
- throws IllegalStateException
- {
- AnnotationColours target = (AnnotationColours) object;
- return target.getAnnotation();
- }
-
- public void setValue(java.lang.Object object, java.lang.Object value)
- throws IllegalStateException, IllegalArgumentException
- {
- try
- {
- AnnotationColours target = (AnnotationColours) object;
- target.setAnnotation((java.lang.String) value);
- } catch (java.lang.Exception ex)
- {
- throw new IllegalStateException(ex.toString());
+ desc.setValidator(fieldValidator);
+ //-- _minColour
+ desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_minColour", "minColour", org.exolab.castor.xml.NodeType.Attribute);
+ handler = new org.exolab.castor.xml.XMLFieldHandler() {
+ public java.lang.Object getValue( java.lang.Object object )
+ throws IllegalStateException
+ {
+ AnnotationColours target = (AnnotationColours) object;
+ if (!target.hasMinColour()) { return null; }
+ return new java.lang.Integer(target.getMinColour());
+ }
+ public void setValue( java.lang.Object object, java.lang.Object value)
+ throws IllegalStateException, IllegalArgumentException
+ {
+ try {
+ AnnotationColours target = (AnnotationColours) object;
+ // if null, use delete method for optional primitives
+ if (value == null) {
+ target.deleteMinColour();
+ return;
+ }
+ target.setMinColour( ((java.lang.Integer) value).intValue());
+ } catch (java.lang.Exception ex) {
+ throw new IllegalStateException(ex.toString());
+ }
+ }
+ public java.lang.Object newInstance(java.lang.Object parent) {
+ return null;
+ }
+ };
+ desc.setHandler(handler);
+ desc.setMultivalued(false);
+ addFieldDescriptor(desc);
+
+ //-- validation code for: _minColour
+ fieldValidator = new org.exolab.castor.xml.FieldValidator();
+ { //-- local scope
+ org.exolab.castor.xml.validators.IntValidator typeValidator;
+ typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+ fieldValidator.setValidator(typeValidator);
+ typeValidator.setMinInclusive(-2147483648);
+ typeValidator.setMaxInclusive(2147483647);
}
- }
-
- public java.lang.Object newInstance(java.lang.Object parent)
- {
- return null;
- }
- };
- desc.setHandler(handler);
- desc.setMultivalued(false);
- addFieldDescriptor(desc);
-
- // -- validation code for: _annotation
- fieldValidator = new org.exolab.castor.xml.FieldValidator();
- { // -- local scope
- org.exolab.castor.xml.validators.StringValidator typeValidator;
- typeValidator = new org.exolab.castor.xml.validators.StringValidator();
- fieldValidator.setValidator(typeValidator);
- typeValidator.setWhiteSpace("preserve");
- }
- desc.setValidator(fieldValidator);
- // -- _minColour
- desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
- java.lang.Integer.TYPE, "_minColour", "minColour",
- org.exolab.castor.xml.NodeType.Attribute);
- handler = new org.exolab.castor.xml.XMLFieldHandler()
- {
- public java.lang.Object getValue(java.lang.Object object)
- throws IllegalStateException
- {
- AnnotationColours target = (AnnotationColours) object;
- if (!target.hasMinColour())
- {
- return null;
+ desc.setValidator(fieldValidator);
+ //-- _maxColour
+ desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_maxColour", "maxColour", org.exolab.castor.xml.NodeType.Attribute);
+ handler = new org.exolab.castor.xml.XMLFieldHandler() {
+ public java.lang.Object getValue( java.lang.Object object )
+ throws IllegalStateException
+ {
+ AnnotationColours target = (AnnotationColours) object;
+ if (!target.hasMaxColour()) { return null; }
+ return new java.lang.Integer(target.getMaxColour());
+ }
+ public void setValue( java.lang.Object object, java.lang.Object value)
+ throws IllegalStateException, IllegalArgumentException
+ {
+ try {
+ AnnotationColours target = (AnnotationColours) object;
+ // if null, use delete method for optional primitives
+ if (value == null) {
+ target.deleteMaxColour();
+ return;
+ }
+ target.setMaxColour( ((java.lang.Integer) value).intValue());
+ } catch (java.lang.Exception ex) {
+ throw new IllegalStateException(ex.toString());
+ }
+ }
+ public java.lang.Object newInstance(java.lang.Object parent) {
+ return null;
+ }
+ };
+ desc.setHandler(handler);
+ desc.setMultivalued(false);
+ addFieldDescriptor(desc);
+
+ //-- validation code for: _maxColour
+ fieldValidator = new org.exolab.castor.xml.FieldValidator();
+ { //-- local scope
+ org.exolab.castor.xml.validators.IntValidator typeValidator;
+ typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+ fieldValidator.setValidator(typeValidator);
+ typeValidator.setMinInclusive(-2147483648);
+ typeValidator.setMaxInclusive(2147483647);
}
- return new java.lang.Integer(target.getMinColour());
- }
-
- public void setValue(java.lang.Object object, java.lang.Object value)
- throws IllegalStateException, IllegalArgumentException
- {
- try
- {
- AnnotationColours target = (AnnotationColours) object;
- // if null, use delete method for optional primitives
- if (value == null)
- {
- target.deleteMinColour();
- return;
- }
- target.setMinColour(((java.lang.Integer) value).intValue());
- } catch (java.lang.Exception ex)
- {
- throw new IllegalStateException(ex.toString());
+ desc.setValidator(fieldValidator);
+ //-- _colourScheme
+ desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_colourScheme", "colourScheme", org.exolab.castor.xml.NodeType.Attribute);
+ desc.setImmutable(true);
+ handler = new org.exolab.castor.xml.XMLFieldHandler() {
+ public java.lang.Object getValue( java.lang.Object object )
+ throws IllegalStateException
+ {
+ AnnotationColours target = (AnnotationColours) object;
+ return target.getColourScheme();
+ }
+ public void setValue( java.lang.Object object, java.lang.Object value)
+ throws IllegalStateException, IllegalArgumentException
+ {
+ try {
+ AnnotationColours target = (AnnotationColours) object;
+ target.setColourScheme( (java.lang.String) value);
+ } catch (java.lang.Exception ex) {
+ throw new IllegalStateException(ex.toString());
+ }
+ }
+ public java.lang.Object newInstance(java.lang.Object parent) {
+ return null;
+ }
+ };
+ desc.setHandler(handler);
+ desc.setMultivalued(false);
+ addFieldDescriptor(desc);
+
+ //-- validation code for: _colourScheme
+ fieldValidator = new org.exolab.castor.xml.FieldValidator();
+ { //-- local scope
+ org.exolab.castor.xml.validators.StringValidator typeValidator;
+ typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+ fieldValidator.setValidator(typeValidator);
+ typeValidator.setWhiteSpace("preserve");
}
- }
-
- public java.lang.Object newInstance(java.lang.Object parent)
- {
- return null;
- }
- };
- desc.setHandler(handler);
- desc.setMultivalued(false);
- addFieldDescriptor(desc);
-
- // -- validation code for: _minColour
- fieldValidator = new org.exolab.castor.xml.FieldValidator();
- { // -- local scope
- org.exolab.castor.xml.validators.IntValidator typeValidator;
- typeValidator = new org.exolab.castor.xml.validators.IntValidator();
- fieldValidator.setValidator(typeValidator);
- typeValidator.setMinInclusive(-2147483648);
- typeValidator.setMaxInclusive(2147483647);
- }
- desc.setValidator(fieldValidator);
- // -- _maxColour
- desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
- java.lang.Integer.TYPE, "_maxColour", "maxColour",
- org.exolab.castor.xml.NodeType.Attribute);
- handler = new org.exolab.castor.xml.XMLFieldHandler()
- {
- public java.lang.Object getValue(java.lang.Object object)
- throws IllegalStateException
- {
- AnnotationColours target = (AnnotationColours) object;
- if (!target.hasMaxColour())
- {
- return null;
+ desc.setValidator(fieldValidator);
+ //-- _threshold
+ desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Float.TYPE, "_threshold", "threshold", org.exolab.castor.xml.NodeType.Attribute);
+ handler = new org.exolab.castor.xml.XMLFieldHandler() {
+ public java.lang.Object getValue( java.lang.Object object )
+ throws IllegalStateException
+ {
+ AnnotationColours target = (AnnotationColours) object;
+ if (!target.hasThreshold()) { return null; }
+ return new java.lang.Float(target.getThreshold());
+ }
+ public void setValue( java.lang.Object object, java.lang.Object value)
+ throws IllegalStateException, IllegalArgumentException
+ {
+ try {
+ AnnotationColours target = (AnnotationColours) object;
+ // if null, use delete method for optional primitives
+ if (value == null) {
+ target.deleteThreshold();
+ return;
+ }
+ target.setThreshold( ((java.lang.Float) value).floatValue());
+ } catch (java.lang.Exception ex) {
+ throw new IllegalStateException(ex.toString());
+ }
+ }
+ public java.lang.Object newInstance(java.lang.Object parent) {
+ return null;
+ }
+ };
+ desc.setHandler(handler);
+ desc.setMultivalued(false);
+ addFieldDescriptor(desc);
+
+ //-- validation code for: _threshold
+ fieldValidator = new org.exolab.castor.xml.FieldValidator();
+ { //-- local scope
+ org.exolab.castor.xml.validators.FloatValidator typeValidator;
+ typeValidator = new org.exolab.castor.xml.validators.FloatValidator();
+ fieldValidator.setValidator(typeValidator);
+ typeValidator.setMinInclusive((float) -3.4028235E38);
+ typeValidator.setMaxInclusive((float) 3.4028235E38);
}
- return new java.lang.Integer(target.getMaxColour());
- }
-
- public void setValue(java.lang.Object object, java.lang.Object value)
- throws IllegalStateException, IllegalArgumentException
- {
- try
- {
- AnnotationColours target = (AnnotationColours) object;
- // if null, use delete method for optional primitives
- if (value == null)
- {
- target.deleteMaxColour();
- return;
- }
- target.setMaxColour(((java.lang.Integer) value).intValue());
- } catch (java.lang.Exception ex)
- {
- throw new IllegalStateException(ex.toString());
+ desc.setValidator(fieldValidator);
+ //-- _perSequence
+ desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_perSequence", "perSequence", org.exolab.castor.xml.NodeType.Attribute);
+ handler = new org.exolab.castor.xml.XMLFieldHandler() {
+ public java.lang.Object getValue( java.lang.Object object )
+ throws IllegalStateException
+ {
+ AnnotationColours target = (AnnotationColours) object;
+ if (!target.hasPerSequence()) { return null; }
+ return (target.getPerSequence() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);
+ }
+ public void setValue( java.lang.Object object, java.lang.Object value)
+ throws IllegalStateException, IllegalArgumentException
+ {
+ try {
+ AnnotationColours target = (AnnotationColours) object;
+ // if null, use delete method for optional primitives
+ if (value == null) {
+ target.deletePerSequence();
+ return;
+ }
+ target.setPerSequence( ((java.lang.Boolean) value).booleanValue());
+ } catch (java.lang.Exception ex) {
+ throw new IllegalStateException(ex.toString());
+ }
+ }
+ public java.lang.Object newInstance(java.lang.Object parent) {
+ return null;
+ }
+ };
+ desc.setHandler(handler);
+ desc.setMultivalued(false);
+ addFieldDescriptor(desc);
+
+ //-- validation code for: _perSequence
+ fieldValidator = new org.exolab.castor.xml.FieldValidator();
+ { //-- local scope
+ org.exolab.castor.xml.validators.BooleanValidator typeValidator;
+ typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
+ fieldValidator.setValidator(typeValidator);
}
- }
-
- public java.lang.Object newInstance(java.lang.Object parent)
- {
- return null;
- }
- };
- desc.setHandler(handler);
- desc.setMultivalued(false);
- addFieldDescriptor(desc);
-
- // -- validation code for: _maxColour
- fieldValidator = new org.exolab.castor.xml.FieldValidator();
- { // -- local scope
- org.exolab.castor.xml.validators.IntValidator typeValidator;
- typeValidator = new org.exolab.castor.xml.validators.IntValidator();
- fieldValidator.setValidator(typeValidator);
- typeValidator.setMinInclusive(-2147483648);
- typeValidator.setMaxInclusive(2147483647);
- }
- desc.setValidator(fieldValidator);
- // -- _colourScheme
- desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
- java.lang.String.class, "_colourScheme", "colourScheme",
- org.exolab.castor.xml.NodeType.Attribute);
- desc.setImmutable(true);
- handler = new org.exolab.castor.xml.XMLFieldHandler()
- {
- public java.lang.Object getValue(java.lang.Object object)
- throws IllegalStateException
- {
- AnnotationColours target = (AnnotationColours) object;
- return target.getColourScheme();
- }
-
- public void setValue(java.lang.Object object, java.lang.Object value)
- throws IllegalStateException, IllegalArgumentException
- {
- try
- {
- AnnotationColours target = (AnnotationColours) object;
- target.setColourScheme((java.lang.String) value);
- } catch (java.lang.Exception ex)
- {
- throw new IllegalStateException(ex.toString());
+ desc.setValidator(fieldValidator);
+ //-- _predefinedColours
+ desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_predefinedColours", "predefinedColours", org.exolab.castor.xml.NodeType.Attribute);
+ handler = new org.exolab.castor.xml.XMLFieldHandler() {
+ public java.lang.Object getValue( java.lang.Object object )
+ throws IllegalStateException
+ {
+ AnnotationColours target = (AnnotationColours) object;
+ if (!target.hasPredefinedColours()) { return null; }
+ return (target.getPredefinedColours() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);
+ }
+ public void setValue( java.lang.Object object, java.lang.Object value)
+ throws IllegalStateException, IllegalArgumentException
+ {
+ try {
+ AnnotationColours target = (AnnotationColours) object;
+ // if null, use delete method for optional primitives
+ if (value == null) {
+ target.deletePredefinedColours();
+ return;
+ }
+ target.setPredefinedColours( ((java.lang.Boolean) value).booleanValue());
+ } catch (java.lang.Exception ex) {
+ throw new IllegalStateException(ex.toString());
+ }
+ }
+ public java.lang.Object newInstance(java.lang.Object parent) {
+ return null;
+ }
+ };
+ desc.setHandler(handler);
+ desc.setMultivalued(false);
+ addFieldDescriptor(desc);
+
+ //-- validation code for: _predefinedColours
+ fieldValidator = new org.exolab.castor.xml.FieldValidator();
+ { //-- local scope
+ org.exolab.castor.xml.validators.BooleanValidator typeValidator;
+ typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
+ fieldValidator.setValidator(typeValidator);
}
- }
-
- public java.lang.Object newInstance(java.lang.Object parent)
- {
- return null;
- }
- };
- desc.setHandler(handler);
- desc.setMultivalued(false);
- addFieldDescriptor(desc);
-
- // -- validation code for: _colourScheme
- fieldValidator = new org.exolab.castor.xml.FieldValidator();
- { // -- local scope
- org.exolab.castor.xml.validators.StringValidator typeValidator;
- typeValidator = new org.exolab.castor.xml.validators.StringValidator();
- fieldValidator.setValidator(typeValidator);
- typeValidator.setWhiteSpace("preserve");
+ desc.setValidator(fieldValidator);
+ //-- initialize element descriptors
+
}
- desc.setValidator(fieldValidator);
- // -- _threshold
- desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
- java.lang.Float.TYPE, "_threshold", "threshold",
- org.exolab.castor.xml.NodeType.Attribute);
- handler = new org.exolab.castor.xml.XMLFieldHandler()
- {
- public java.lang.Object getValue(java.lang.Object object)
- throws IllegalStateException
- {
- AnnotationColours target = (AnnotationColours) object;
- if (!target.hasThreshold())
- {
- return null;
- }
- return new java.lang.Float(target.getThreshold());
- }
- public void setValue(java.lang.Object object, java.lang.Object value)
- throws IllegalStateException, IllegalArgumentException
- {
- try
- {
- AnnotationColours target = (AnnotationColours) object;
- // if null, use delete method for optional primitives
- if (value == null)
- {
- target.deleteThreshold();
- return;
- }
- target.setThreshold(((java.lang.Float) value).floatValue());
- } catch (java.lang.Exception ex)
- {
- throw new IllegalStateException(ex.toString());
- }
- }
- public java.lang.Object newInstance(java.lang.Object parent)
- {
- return null;
- }
- };
- desc.setHandler(handler);
- desc.setMultivalued(false);
- addFieldDescriptor(desc);
+ //-----------/
+ //- Methods -/
+ //-----------/
- // -- validation code for: _threshold
- fieldValidator = new org.exolab.castor.xml.FieldValidator();
- { // -- local scope
- org.exolab.castor.xml.validators.FloatValidator typeValidator;
- typeValidator = new org.exolab.castor.xml.validators.FloatValidator();
- fieldValidator.setValidator(typeValidator);
- typeValidator.setMinInclusive((float) -3.4028235E38);
- typeValidator.setMaxInclusive((float) 3.4028235E38);
+ /**
+ * Method getAccessMode.
+ *
+ * @return the access mode specified for this class.
+ */
+ public org.exolab.castor.mapping.AccessMode getAccessMode(
+ ) {
+ return null;
}
- desc.setValidator(fieldValidator);
- // -- initialize element descriptors
-
- }
- // -----------/
- // - Methods -/
- // -----------/
-
- /**
- * Method getAccessMode.
- *
- * @return the access mode specified for this class.
- */
- public org.exolab.castor.mapping.AccessMode getAccessMode()
- {
- return null;
- }
-
- /**
- * Method getIdentity.
- *
- * @return the identity field, null if this class has no identity.
- */
- public org.exolab.castor.mapping.FieldDescriptor getIdentity()
- {
- return super.getIdentity();
- }
+ /**
+ * Method getIdentity.
+ *
+ * @return the identity field, null if this class has no
+ * identity.
+ */
+ public org.exolab.castor.mapping.FieldDescriptor getIdentity(
+ ) {
+ return super.getIdentity();
+ }
- /**
- * Method getJavaClass.
- *
- * @return the Java class represented by this descriptor.
- */
- public java.lang.Class getJavaClass()
- {
- return jalview.schemabinding.version2.AnnotationColours.class;
- }
+ /**
+ * Method getJavaClass.
+ *
+ * @return the Java class represented by this descriptor.
+ */
+ public java.lang.Class getJavaClass(
+ ) {
+ return jalview.schemabinding.version2.AnnotationColours.class;
+ }
- /**
- * Method getNameSpacePrefix.
- *
- * @return the namespace prefix to use when marshaling as XML.
- */
- public java.lang.String getNameSpacePrefix()
- {
- return _nsPrefix;
- }
+ /**
+ * Method getNameSpacePrefix.
+ *
+ * @return the namespace prefix to use when marshaling as XML.
+ */
+ public java.lang.String getNameSpacePrefix(
+ ) {
+ return _nsPrefix;
+ }
- /**
- * Method getNameSpaceURI.
- *
- * @return the namespace URI used when marshaling and unmarshaling as XML.
- */
- public java.lang.String getNameSpaceURI()
- {
- return _nsURI;
- }
+ /**
+ * Method getNameSpaceURI.
+ *
+ * @return the namespace URI used when marshaling and
+ * unmarshaling as XML.
+ */
+ public java.lang.String getNameSpaceURI(
+ ) {
+ return _nsURI;
+ }
- /**
- * Method getValidator.
- *
- * @return a specific validator for the class described by this
- * ClassDescriptor.
- */
- public org.exolab.castor.xml.TypeValidator getValidator()
- {
- return this;
- }
+ /**
+ * Method getValidator.
+ *
+ * @return a specific validator for the class described by this
+ * ClassDescriptor.
+ */
+ public org.exolab.castor.xml.TypeValidator getValidator(
+ ) {
+ return this;
+ }
- /**
- * Method getXMLName.
- *
- * @return the XML Name for the Class being described.
- */
- public java.lang.String getXMLName()
- {
- return _xmlName;
- }
+ /**
+ * Method getXMLName.
+ *
+ * @return the XML Name for the Class being described.
+ */
+ public java.lang.String getXMLName(
+ ) {
+ return _xmlName;
+ }
- /**
- * Method isElementDefinition.
- *
- * @return true if XML schema definition of this Class is that of a global
- * element or element with anonymous type definition.
- */
- public boolean isElementDefinition()
- {
- return _elementDefinition;
- }
+ /**
+ * Method isElementDefinition.
+ *
+ * @return true if XML schema definition of this Class is that
+ * of a global
+ * element or element with anonymous type definition.
+ */
+ public boolean isElementDefinition(
+ ) {
+ return _elementDefinition;
+ }
}
*/
package jalview.schemes;
+import jalview.analysis.Conservation;
import jalview.datamodel.AlignmentAnnotation;
import jalview.datamodel.AnnotatedCollectionI;
import jalview.datamodel.GraphLine;
import jalview.datamodel.SequenceI;
import java.awt.Color;
+import java.util.Hashtable;
import java.util.IdentityHashMap;
import java.util.Map;
ColourSchemeI colourScheme;
- public boolean predefinedColours = false;
+ private boolean predefinedColours = false;
- public boolean seqAssociated = false;
+ private boolean seqAssociated = false;
IdentityHashMap<SequenceI, AlignmentAnnotation> seqannot = null;
if (thresholdIsMinMax
&& annotation.threshold != null
&& aboveAnnotationThreshold == ABOVE_THRESHOLD
- && annotation.annotations[j].value > annotation.threshold.value)
+ && annotation.annotations[j].value >= annotation.threshold.value)
{
range = (annotation.annotations[j].value - annotation.threshold.value)
/ (annotation.graphMax - annotation.threshold.value);
}
else if (thresholdIsMinMax && annotation.threshold != null
&& aboveAnnotationThreshold == BELOW_THRESHOLD
- && annotation.annotations[j].value > annotation.graphMin)
+ && annotation.annotations[j].value >= annotation.graphMin)
{
range = (annotation.annotations[j].value - annotation.graphMin)
/ (annotation.threshold.value - annotation.graphMin);
{
currentColour = colourScheme.findColour(c, j, seq);
}
- else if (range != 0)
+ else
{
dr = rr * range + r1;
dg = gg * range + g1;
return currentColour;
}
+ public boolean isPredefinedColours()
+ {
+ return predefinedColours;
+ }
+
+ public void setPredefinedColours(boolean predefinedColours)
+ {
+ this.predefinedColours = predefinedColours;
+ }
+
public boolean isSeqAssociated()
{
return seqAssociated;
{
seqAssociated = sassoc;
}
+ @Override
+ public void setConsensus(Hashtable[] consensus)
+ {
+ if (colourScheme!=null)
+ {
+ colourScheme.setConsensus(consensus);
+ }
+ }
+ @Override
+ public void setConservation(Conservation cons)
+ {
+ if (colourScheme!=null)
+ {
+ colourScheme.setConservation(cons);
+ }
+ }
+ @Override
+ public void setConservationInc(int i)
+ {
+ if (colourScheme!=null)
+ {
+ colourScheme.setConservationInc(i);
+ }
+ }
}
public void refresh()
{
- if (lastrefresh != annotation._rnasecstr.hashCode()
+ if ((annotation._rnasecstr == null
+ || lastrefresh != annotation._rnasecstr.hashCode())
&& annotation.isValidStruc())
{
annotation.getRNAStruc();
return;
}
- currentAnnotation = av.getAlignment().getAlignmentAnnotation()[0];// annotations.getSelectedIndex()];
-
+ // This loop will find the first rna structure annotation by which to colour
+ // the sequences.
+ AlignmentAnnotation[] annotations = av.getAlignment().getAlignmentAnnotation();
+ for (int i = 0; i < annotations.length; i++) {
+
+ // is this a sensible way of determining type of annotation?
+ if (annotations[i].getRNAStruc() != null) {
+ currentAnnotation = annotations[i];
+ break;
+ }
+ }
+ if (currentAnnotation == null)
+ {
+ System.err.println("Jalview is about to try and colour by RNAHelices even"
+ + " though there are no RNA secondary structure annotations present!");
+ currentAnnotation = av.getAlignment().getAlignmentAnnotation()[0];// annotations.getSelectedIndex()];
+ }
+
RNAHelicesColour rhc = null;
rhc = new RNAHelicesColour(currentAnnotation);
package jalview.schemes;
import java.util.*;
+import java.util.List;
import java.awt.*;
codonHash.put("STOP", STOP);
}
- public static Hashtable codonHash2 = new Hashtable();
+ /**
+ * Nucleotide Ambiguity Codes
+ */
+ public static final Hashtable<String,String[]> ambiguityCodes=new Hashtable<String,String[]>();
+ /**
+ * Codon triplets with additional symbols for unambiguous codons that include ambiguity codes
+ */
+ public static final Hashtable<String,String> codonHash2 = new Hashtable<String,String>();
+
+ /**
+ * all ambiguity codes for a given base
+ */
+ public final static Hashtable<String,List<String>> _ambiguityCodes = new Hashtable<String,List<String>>();
+
static
{
+ /**
+ * 3.2. Purine (adenine or guanine): R
+ *
+ * R is the symbol previously recommended [1].
+ */
+ ambiguityCodes.put("R", new String[]
+ { "A", "G" });
+
+ /**
+ * 3.3. Pyrimidine (thymine or cytosine): Y
+ *
+ * Y is the symbol previously recommended [1].
+ */
+ ambiguityCodes.put("Y", new String[]
+ { "T", "C" });
+ /**
+ * 3.4. Adenine or thymine: W
+ *
+ * Although several diverse symbols have been used for this pair, (and for
+ * the reciprocal pair G+C), only two symbols have a rational basis, L and
+ * W: L derives from DNA density (light; G+C - heavy - would thus be H); W
+ * derives from the strength of the hydrogen bonding interaction between the
+ * base pairs (weak for A+T: G +C - strong - would thus be S). However, the
+ * system recommended for the three-base series (not-A = B, etc., see below,
+ * section 3.8) rules out H as this would be not-G. W is thus recommended.
+ */
+ ambiguityCodes.put("W", new String[]
+ { "A", "T" });
+ /**
+ * 3.5. Guanine or cytosine: S
+ *
+ * The choice of this symbol is discussed above in section 3.4.
+ */
+ ambiguityCodes.put("S", new String[]
+ { "G", "C" });
+ /**
+ * 3.6. Adenine or cytosine: M
+ *
+ * There are few common features between A and C. The presence of an NH2
+ * group in similar positions on both bases (Fig. 1) makes possible a
+ * logically derived symbol. A and N being ruled out, M (from aMino) is
+ * recommended.
+ *
+ *
+ * Fig. 1. Origin of the symbols M and K The four bases are drawn so as to
+ * show the relationship between adenine and cytosine on the one hand, which
+ * both have aMino groups at the ring position most distant from the point
+ * of attachment to the sugar, and between guanine and thymine on the other,
+ * which both have Keto groups at the corresponding position. The ring atoms
+ * are numbered as recommended [24-26], although for the present purpose
+ * this has the disadvantage of giving discordant numbers to the
+ * corresponding positions.
+ */
+ ambiguityCodes.put("M", new String[]
+ { "A", "C" });
+ /**
+ * 3.7. Guanine or thymine: K By analogy with A and C (section 3.6), both G
+ * and T have Keto groups in similar positions (Fig. 1).
+ */
+ ambiguityCodes.put("K", new String[]
+ { "G", "T" });
+ /**
+ * 3.8. Adenine or thymine or cytosine: H
+ *
+ * Not-G is the most simple means of memorising this combination and symbols
+ * logically related to G were examined. F and H would both be suitable, as
+ * the letters before and after G in the alphabet, but A would have no
+ * equivalent to F. The use of H has historical precedence [2].
+ */
+ ambiguityCodes.put("H", new String[]
+ { "A", "T", "C" });
+ /**
+ * 3.9. Guanine or cytosine or thymine: B
+ *
+ * Not-A as above (section 3.8).
+ */
+ ambiguityCodes.put("B", new String[]
+ { "G", "T", "C" });
+ /**
+ * 3.10. Guanine or adenine or cytosine: V
+ *
+ * Not-T by analogy with not-G (section 3.8) would be U but this is ruled
+ * out to eliminate confusion with uracil. V is the next logical choice.
+ * Note that T and U may in some cases be considered to be synonyms.
+ */
+ ambiguityCodes.put("V", new String[]
+ { "G", "A", "C" });
+ /**
+ * 3.11. Guanine or adenine or thymine: D
+ *
+ * Not-C as above (section 3.8).
+ */
+ ambiguityCodes.put("D", new String[]
+ { "G", "A", "T" });
+ /**
+ * 3.12. Guanine or adenine or thymine or cytosine: N
+ */
+ ambiguityCodes.put("R", new String[]
+ { "G", "A", "T", "C" });
+ // Now build codon translation table
codonHash2.put("AAA", "K");
codonHash2.put("AAG", "K");
codonHash2.put("AAC", "N");
codonHash2.put("AAT", "N");
- codonHash2.put("CAA", "E");
- codonHash2.put("CAG", "E");
+ codonHash2.put("CAA", "Q");
+ codonHash2.put("CAG", "Q");
codonHash2.put("CAC", "H");
codonHash2.put("CAT", "H");
- codonHash2.put("GAA", "Q");
- codonHash2.put("GAG", "Q");
+ codonHash2.put("GAA", "E");
+ codonHash2.put("GAG", "E");
codonHash2.put("GAC", "D");
codonHash2.put("GAT", "D");
codonHash2.put("TAT", "Y");
codonHash2.put("ACA", "T");
- codonHash2.put("AAG", "T");
codonHash2.put("ACC", "T");
codonHash2.put("ACT", "T");
+ codonHash2.put("ACG", "T");
codonHash2.put("CCA", "P");
codonHash2.put("CCG", "P");
codonHash2.put("TTC", "F");
codonHash2.put("TTT", "F");
+
+ buildAmbiguityCodonSet();
+ }
+
+ /**
+ * programmatic generation of codons including ambiguity codes
+ */
+ public static void buildAmbiguityCodonSet()
+ {
+ if (_ambiguityCodes.size() > 0)
+ {
+ System.err
+ .println("Ignoring multiple calls to buildAmbiguityCodonSet");
+ return;
+ }
+ // Invert the ambiguity code set
+ for (Map.Entry<String, String[]> acode : ambiguityCodes.entrySet())
+ {
+ for (String r : acode.getValue())
+ {
+ List<String> codesfor = _ambiguityCodes.get(r);
+ if (codesfor == null)
+ {
+ _ambiguityCodes.put(r, codesfor = new ArrayList<String>());
+ }
+ if (!codesfor.contains(acode.getKey()))
+ {
+ codesfor.add(acode.getKey());
+ }
+ else
+ {
+ System.err
+ .println("Inconsistency in the IUBMB ambiguity code nomenclature table: collision for "
+ + acode.getKey() + " in residue " + r);
+ }
+ }
+ }
+ // and programmatically add in the ambiguity codes that yield the same amino
+ // acid
+ String[] unambcodons = codonHash2.keySet().toArray(new String[codonHash2.size()]);
+ for (String codon : unambcodons)
+ {
+ String residue = codonHash2.get(codon);
+ String acodon[][] = new String[codon.length()][];
+ for (int i = 0, iSize = codon.length(); i < iSize; i++)
+ {
+ String _ac = "" + codon.charAt(i);
+ List<String> acodes = _ambiguityCodes.get(_ac);
+ if (acodes != null)
+ {
+ acodon[i] = acodes.toArray(new String[acodes.size()]);
+ }
+ else
+ {
+ acodon[i] = new String[]
+ {};
+ }
+ }
+ // enumerate all combinations and test for veracity of translation
+ int tpos[] = new int[codon.length()], cpos[] = new int[codon.length()];
+ for (int i = 0; i < tpos.length; i++)
+ {
+ tpos[i] = -1;
+ }
+ tpos[acodon.length - 1] = 0;
+ int ipos, j;
+ while (tpos[0] < acodon[0].length)
+ {
+ // make all codons for this combination
+ char allres[][] = new char[tpos.length][];
+ String _acodon = "";
+ char _anuc;
+ for (ipos = 0; ipos < tpos.length; ipos++)
+ {
+ if (acodon[ipos].length==0 || tpos[ipos] < 0)
+ {
+ _acodon += codon.charAt(ipos);
+ allres[ipos] = new char[]
+ { codon.charAt(ipos) };
+ }
+ else
+ {
+ _acodon += acodon[ipos][tpos[ipos]];
+ String[] altbase = ambiguityCodes.get(acodon[ipos][tpos[ipos]]);
+ allres[ipos] = new char[altbase.length];
+ j = 0;
+ for (String ab : altbase)
+ {
+ allres[ipos][j++] = ab.charAt(0);
+ }
+ }
+ }
+ // test all codons for this combination
+ for (ipos = 0; ipos < cpos.length; ipos++)
+ {
+ cpos[ipos] = 0;
+ }
+ boolean valid = true;
+ do
+ {
+ String _codon = "";
+ for (j = 0; j < cpos.length; j++)
+ {
+ _codon += allres[j][cpos[j]];
+ }
+ String tr = codonHash2.get(_codon);
+ if (valid = (tr!=null && tr.equals(residue)))
+ {
+ // advance to next combination
+ ipos = acodon.length - 1;
+ while (++cpos[ipos] >= allres[ipos].length && ipos > 0)
+ {
+ cpos[ipos] = 0;
+ ipos--;
+ }
+ }
+ } while (valid && cpos[0] < allres[0].length);
+ if (valid)
+ {
+ // Add this to the set of codons we will translate
+// System.out.println("Adding ambiguity codon: " + _acodon + " for "
+// + residue);
+ codonHash2.put(_acodon, residue);
+ }
+ else
+ {
+// System.err.println("Rejecting ambiguity codon: " + _acodon
+// + " for " + residue);
+ }
+ // next combination
+ ipos = acodon.length - 1;
+ while (++tpos[ipos] >= acodon[ipos].length && ipos > 0)
+ {
+ tpos[ipos] = -1;
+ ipos--;
+ }
+ }
+ }
+
}
static
public static String codonTranslate(String lccodon)
{
+ if (false)
+ {
+ return _codonTranslate(lccodon);
+ }
+ String cdn = codonHash2.get(lccodon.toUpperCase());
+ if (cdn!=null && cdn.equals("*"))
+ {
+ return "STOP";
+ }
+ return cdn;
+ }
+ public static String _codonTranslate(String lccodon)
+ {
String codon = lccodon.toUpperCase();
// all base ambiguity codes yield an 'X' amino acid residue
if (codon.indexOf('X') > -1 || codon.indexOf('N') > -1)
}
Hashtable mappingData = new Hashtable();
-
+ private static StructureSelectionManager nullProvider = null;
public static StructureSelectionManager getStructureSelectionManager(
StructureSelectionManagerProvider context)
{
+ if (context==null) {
+ if (nullProvider == null)
+ {
+ if (instances != null)
+ {
+ throw new Error(
+ "Implementation error. Structure selection manager's context is 'null'",
+ new NullPointerException("SSM context is null"));
+ }
+ else
+ {
+ nullProvider = new StructureSelectionManager();
+ }
+ return nullProvider;
+ }
+ }
if (instances == null)
{
instances = new java.util.IdentityHashMap<StructureSelectionManagerProvider, StructureSelectionManager>();
StructureSelectionManager instance = instances.get(context);
if (instance == null)
{
- instances.put(context, instance = new StructureSelectionManager());
+ if (nullProvider!=null)
+ {
+ instance = nullProvider;
+ } else {
+ instance = new StructureSelectionManager();
+ }
+ instances.put(context, instance);
}
return instance;
}
--- /dev/null
+package jalview.util;
+
+import java.text.MessageFormat;
+import java.util.Locale;
+import java.util.ResourceBundle;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+/**
+ *
+ * @author David Roldan Martinez
+ * @author Thomas Abeel
+ *
+ *
+ */
+public class MessageManager {
+
+ private static ResourceBundle rb;
+
+ private static Logger log=Logger.getLogger(MessageManager.class.getCanonicalName());
+
+ private static Locale loc;
+
+
+
+ static{
+ try {
+ /* Localize Java dialogs */
+ loc = Locale.getDefault();
+ // Locale.setDefault(loc);
+ /* Getting messages for GV */
+ log.info("Getting messages for lang: "+loc);
+ rb = ResourceBundle.getBundle("lang.Messages", loc);
+ if (log.isLoggable(Level.FINEST)) {
+ // this might take a while, so we only do it if it will be shown
+ log.finest("Language keys: "+rb.keySet());
+ }
+ } catch (Exception q) {
+ log.warning("Exception when initting Locale for i18n messages\n"+q.getMessage());
+ q.printStackTrace();
+ }
+ catch (Error v)
+ {
+ log.warning("Error when initting Locale for i18n messages\n"+v.getMessage());
+ v.printStackTrace();
+ }
+
+
+ }
+
+ public static String getString(String key){
+ String value = "[missing key] " + key;
+ try{
+ value = rb.getString(key);
+ }catch(Exception e){
+ log.warning("I18N missing: "+loc+"\t"+key);
+ }
+ return value;
+ }
+
+ public static Locale getLocale() {
+ return loc;
+ }
+ public static String formatMessage(String key, Object[] params){
+ return MessageFormat.format(rb.getString(key), params);
+ }
+}
import jalview.workers.ConsensusThread;
import jalview.workers.StrucConsensusThread;
+import java.awt.Color;
import java.util.ArrayList;
+import java.util.BitSet;
import java.util.Hashtable;
import java.util.List;
import java.util.Map;
if (autoCalculateStrucConsensus && strucConsensus == null
&& alignment.isNucleotide() && alignment.hasRNAStructure())
{
-
+ // secondary structure has been added - so init the consensus line
+ initRNAStructure();
}
// see note in mantis : issue number 8585
*
* @return null or the currently selected sequence region
*/
+ @Override
public SequenceGroup getSelectionGroup()
{
return selectionGroup;
* - group holding references to sequences in this alignment view
*
*/
+ @Override
public void setSelectionGroup(SequenceGroup sg)
{
selectionGroup = sg;
protected boolean showConsensus = true;
+ Hashtable sequenceColours;
+
/**
* Property change listener for changes in alignment
*
*
* @return array of references to sequence objects
*/
+ @Override
public SequenceI[] getSequenceSelection()
{
SequenceI[] sequences = null;
*
* @return String[]
*/
+ @Override
public jalview.datamodel.CigarArray getViewAsCigars(
boolean selectedRegionOnly)
{
* boolean true to just return the selected view
* @return AlignmentView
*/
+ @Override
public jalview.datamodel.AlignmentView getAlignmentView(
boolean selectedOnly)
{
* is true)
* @return AlignmentView
*/
+ @Override
public jalview.datamodel.AlignmentView getAlignmentView(
boolean selectedOnly, boolean markGroups)
{
*
* @return String[]
*/
+ @Override
public String[] getViewAsString(boolean selectedRegionOnly)
{
String[] selection = null;
{
if (!alignment.isNucleotide())
{
- if (showConservation)
- {
- if (conservation == null)
- {
- conservation = new AlignmentAnnotation("Conservation",
- "Conservation of total alignment less than "
- + getConsPercGaps() + "% gaps",
- new Annotation[1], 0f, 11f,
- AlignmentAnnotation.BAR_GRAPH);
- conservation.hasText = true;
- conservation.autoCalculated = true;
- alignment.addAnnotation(conservation);
- }
- }
- if (showQuality)
- {
- if (quality == null)
- {
- quality = new AlignmentAnnotation("Quality",
- "Alignment Quality based on Blosum62 scores",
- new Annotation[1], 0f, 11f,
- AlignmentAnnotation.BAR_GRAPH);
- quality.hasText = true;
- quality.autoCalculated = true;
- alignment.addAnnotation(quality);
- }
- }
+ initConservation();
+ initQuality();
}
else
{
- if (alignment.hasRNAStructure())
- {
- strucConsensus = new AlignmentAnnotation("StrucConsensus", "PID",
- new Annotation[1], 0f, 100f,
- AlignmentAnnotation.BAR_GRAPH);
- strucConsensus.hasText = true;
- strucConsensus.autoCalculated = true;
- }
+ initRNAStructure();
}
+ initConsensus();
+ }
+ }
- consensus = new AlignmentAnnotation("Consensus", "PID",
- new Annotation[1], 0f, 100f, AlignmentAnnotation.BAR_GRAPH);
- consensus.hasText = true;
- consensus.autoCalculated = true;
+ private void initConsensus()
+ {
- if (showConsensus)
+ consensus = new AlignmentAnnotation("Consensus", "PID",
+ new Annotation[1], 0f, 100f, AlignmentAnnotation.BAR_GRAPH);
+ consensus.hasText = true;
+ consensus.autoCalculated = true;
+
+ if (showConsensus)
+ {
+ alignment.addAnnotation(consensus);
+ }
+ }
+
+ private void initConservation()
+ {
+ if (showConservation)
+ {
+ if (conservation == null)
{
- alignment.addAnnotation(consensus);
- if (strucConsensus != null)
- {
- alignment.addAnnotation(strucConsensus);
- }
+ conservation = new AlignmentAnnotation("Conservation",
+ "Conservation of total alignment less than "
+ + getConsPercGaps() + "% gaps",
+ new Annotation[1], 0f, 11f,
+ AlignmentAnnotation.BAR_GRAPH);
+ conservation.hasText = true;
+ conservation.autoCalculated = true;
+ alignment.addAnnotation(conservation);
+ }
+ }
+ }
+ private void initQuality()
+ {
+ if (showQuality)
+ {
+ if (quality == null)
+ {
+ quality = new AlignmentAnnotation("Quality",
+ "Alignment Quality based on Blosum62 scores",
+ new Annotation[1], 0f, 11f,
+ AlignmentAnnotation.BAR_GRAPH);
+ quality.hasText = true;
+ quality.autoCalculated = true;
+ alignment.addAnnotation(quality);
}
}
}
+ private void initRNAStructure()
+ {
+ if (alignment.hasRNAStructure() && strucConsensus==null)
+ {
+ strucConsensus = new AlignmentAnnotation("StrucConsensus", "PID",
+ new Annotation[1], 0f, 100f,
+ AlignmentAnnotation.BAR_GRAPH);
+ strucConsensus.hasText = true;
+ strucConsensus.autoCalculated = true;
+ if (showConsensus)
+ {
+ alignment.addAnnotation(strucConsensus);
+ }
+ }
+ }
/*
* (non-Javadoc)
*
int charHeight = getCharHeight();
if (aa != null)
{
- boolean graphgrp[] = null;
+ BitSet graphgrp = new BitSet();
for (int i = 0; i < aa.length; i++)
{
if (aa[i] == null)
}
if (aa[i].graphGroup > -1)
{
- if (graphgrp == null)
- {
- graphgrp = new boolean[aa.length];
- }
- if (graphgrp[aa[i].graphGroup])
+ if (graphgrp.get(aa[i].graphGroup))
{
continue;
}
else
{
- graphgrp[aa[i].graphGroup] = true;
+ graphgrp.set(aa[i].graphGroup);
}
}
aa[i].height = 0;
oldrfs.clear();
}
+ @Override
+ public Color getSequenceColour(SequenceI seq)
+ {
+ Color sqc=Color.white;
+ if (sequenceColours != null)
+ {
+ sqc = (Color) sequenceColours.get(seq);
+ if (sqc == null) {
+ sqc = Color.white;
+ }
+ }
+ return sqc;
+ }
+
+ @Override
+ public void setSequenceColour(SequenceI seq, Color col)
+ {
+ if (sequenceColours == null)
+ {
+ sequenceColours = new Hashtable();
+ }
+
+ if (col == null)
+ {
+ sequenceColours.remove(seq);
+ }
+ else
+ {
+ sequenceColours.put(seq, col);
+ }
+ }
+
+ @Override
+ public void updateSequenceIdColours()
+ {
+ if (sequenceColours == null)
+ {
+ sequenceColours = new Hashtable();
+ }
+ for (SequenceGroup sg : alignment.getGroups())
+ {
+ if (sg.idColour != null)
+ {
+ for (SequenceI s : sg.getSequences(getHiddenRepSequences()))
+ {
+ sequenceColours.put(s, sg.idColour);
+ }
+ }
+ }
+ }
+
+ @Override
+ public void clearSequenceColours()
+ {
+ sequenceColours = null;
+ };
}
import jalview.datamodel.AlignmentAnnotation;
import jalview.datamodel.AlignmentI;
import jalview.datamodel.Annotation;
+import jalview.datamodel.SequenceI;
import jalview.schemes.ColourSchemeI;
import java.util.Hashtable;
public class ConsensusThread extends AlignCalcWorker implements
AlignCalcWorkerI
{
+ private long nseq=-1;
+
public ConsensusThread(AlignViewportI alignViewport,
AlignmentViewPanel alignPanel)
{
hconsensus = new Hashtable[aWidth];
try
{
- AAFrequency.calculate(alignment.getSequencesArray(), 0,
+ SequenceI aseqs[] = alignment.getSequencesArray();
+ nseq = aseqs.length;
+ AAFrequency.calculate(aseqs, 0,
alignment.getWidth(), hconsensus, true);
} catch (ArrayIndexOutOfBoundsException x)
{
{
AAFrequency.completeConsensus(consensus, hconsensus, 0,
hconsensus.length, alignViewport.getIgnoreGapsConsensus(),
- alignViewport.isShowSequenceLogo());
+ alignViewport.isShowSequenceLogo(), nseq);
}
}
}
import jalview.datamodel.AlignmentAnnotation;
import jalview.datamodel.AlignmentI;
import jalview.datamodel.Annotation;
+import jalview.datamodel.SequenceI;
public class StrucConsensusThread extends AlignCalcWorker implements
AlignCalcWorkerI
Hashtable[] hStrucConsensus;
+ private long nseq=-1;
+
@Override
public void run()
{
try
{
- jalview.analysis.StructureFrequency.calculate(
- alignment.getSequencesArray(), 0, alignment.getWidth(),
+ final SequenceI[] arr=
+ alignment.getSequencesArray();
+ nseq = arr.length;
+ jalview.analysis.StructureFrequency.calculate(arr, 0, alignment.getWidth(),
hStrucConsensus, true, rnaStruc);
} catch (ArrayIndexOutOfBoundsException x)
{
StructureFrequency.completeConsensus(strucConsensus, hStrucConsensus,
0, hStrucConsensus.length,
alignViewport.getIgnoreGapsConsensus(),
- alignViewport.isShowSequenceLogo());
+ alignViewport.isShowSequenceLogo(), nseq);
}
}
{
jalviewSourceI src = en.nextElement();
List<DbSourceProxy> sp = src.getSequenceSourceProxies();
- selsources.addAll(sp);
- if (sp.size() > 1)
+ if (sp != null)
{
- Cache.log.debug("Added many Db Sources for :" + src.getTitle());
+ selsources.addAll(sp);
+ if (sp.size() > 1)
+ {
+ Cache.log.debug("Added many Db Sources for :" + src.getTitle());
+ }
}
}
// select appropriate databases based on alignFrame context.
return "EMBL (CDS)";
}
+ @Override
+ public int getTier()
+ {
+ return 0;
+ }
+
}
{
return "EMBL"; // getDbSource();
}
+
+ @Override
+ public int getTier()
+ {
+ return 0;
+ }
}
{
return "GeneDB"; // getDbSource();
}
+ @Override
+ public int getTier()
+ {
+ return 0;
+ }
}
return "PDB"; // getDbSource();
}
+ @Override
+ public int getTier()
+ {
+ return 0;
+ }
}
return null;
}
+ @Override
+ public int getTier()
+ {
+ return 0;
+ }
}
return "PF03760";
}
+ @Override
+ public int getTier()
+ {
+ return 0;
+ }
}
return null;
}
+ @Override
+ public int getTier()
+ {
+ return 0;
+ }
}
return null;
}
+ @Override
+ public int getTier()
+ {
+ return 0;
+ }
}
{
return "Uniprot"; // getDbSource();
}
+
+ @Override
+ public int getTier()
+ {
+ return 0;
+ }
}
*/
boolean isNewerThan(jalviewSourceI jalviewSourceI);
+ /**
+ * test if the source is a reference source for the authority
+ * @return
+ */
+ boolean isReferenceSource();
+
}
protected MultipleConnectionPropertyProviderI connprops = null;
/**
+ * DAS sources are tier 1 - if we have a direct DB connection then we should prefer it
+ */
+ private int tier=1;
+
+ /**
* create a new DbSource proxy for a DAS 1 source
*
* @param dbnbame
throw new Exception("Source " + source.getTitle()
+ " does not support the sequence command.");
}
+ this.tier = 1+((jsrc.isLocal() || jsrc.isReferenceSource()) ? 0 : 1);
this.source = source;
this.dbname = dbname;
this.dbrefname = dbrefname.toUpperCase();
{
return coordsys;
}
+
+ @Override
+ public int getTier()
+ {
+ return tier;
+ }
}
{
// get local sources from properties and initialise the local source list
String local = jalview.bin.Cache.getProperty("DAS_LOCAL_SOURCE");
+
if (local != null)
{
+ int n = 1;
StringTokenizer st = new StringTokenizer(local, "\t");
while (st.hasMoreTokens())
{
String token = st.nextToken();
int bar = token.indexOf("|");
+ if (bar == -1)
+ {
+ System.err
+ .println("Warning: DAS user local source appears to have no nickname (expected a '|' followed by nickname)\nOffending definition: '"
+ + token + "'");
+ }
String url = token.substring(bar + 1);
boolean features = true, sequence = false;
if (url.startsWith("sequence:"))
// this source also serves sequences as well as features
sequence = true;
}
- createLocalSource(url, token.substring(0, bar), sequence,
- features);
+ try
+ {
+ if (bar > -1)
+ {
+ createLocalSource(url, token.substring(0, bar), sequence,
+ features);
+ }
+ else
+ {
+ createLocalSource(url, "User Source" + n, sequence, features);
+ }
+ } catch (Exception q)
+ {
+ System.err
+ .println("Unexpected exception when creating local source from '"
+ + token + "'");
+ q.printStackTrace();
+ }
+ n++;
}
}
}
return isLaterThan(getVersion().getCreated(), other.getVersion()
.getCreated());
}
+
+ @Override
+ public boolean isReferenceSource()
+ {
+ // TODO check source object for indication that we are the primary for a DAS coordinate system
+ return false;
+ }
}
import jalview.ws.jws2.dm.AAConSettings;
import jalview.ws.jws2.jabaws2.Jws2Instance;
import jalview.ws.params.WsParamSetI;
+import jalview.ws.uimodel.AlignAnalysisUIText;
import java.util.ArrayList;
import java.util.List;
initViewportParams();
}
- protected void initViewportParams()
- {
- ((jalview.gui.AlignViewport) alignViewport).setCalcIdSettingsFor(
- getCalcId(),
- new AAConSettings(true, service, this.preset,
- (arguments != null) ? JabaParamStore
- .getJwsArgsfromJaba(arguments) : null), true);
- }
-
- @Override
- public void updateParameters(WsParamSetI newpreset,
- java.util.List<Argument> newarguments)
- {
- super.updateParameters(newpreset, newarguments);
- initViewportParams();
- };
-
public String getServiceActionText()
{
return "calculating Amino acid consensus using AACon service";
}
}
+ @Override
public String getCalcId()
{
- return SequenceAnnotationWSClient.AAConCalcId;
+ return CALC_ID;
}
+ private static String CALC_ID="jabaws2.AACon";
- public static void removeAAConsAnnotation(AlignmentPanel alignPanel)
+ public static AlignAnalysisUIText getAlignAnalysisUITest()
{
- for (AlignmentAnnotation aa : alignPanel.getAlignment().findAnnotation(
- SequenceAnnotationWSClient.AAConCalcId))
- {
- alignPanel.getAlignment().deleteAnnotation(aa);
- }
+ return new AlignAnalysisUIText(
+ compbio.ws.client.Services.AAConWS.toString(),
+ jalview.ws.jws2.AAConClient.class, CALC_ID, false, true, true,
+ "AACon Calculations",
+ "When checked, AACon calculations are updated automatically.",
+ "Change AACon Settings...",
+ "Modify settings for AACon calculations.");
}
}
import compbio.data.sequence.ScoreManager.ScoreHolder;
import compbio.metadata.Argument;
-public class AADisorderClient extends JabawsAlignCalcWorker implements
+public class AADisorderClient extends JabawsCalcWorker implements
AlignCalcWorkerI
{
{
boolean sameGroup = false;
SequenceI dseq, aseq, seq = seqNames.get(seqId);
- int base = seq.getStart() - 1;
+ int base = seq.findPosition(start)-1;
aseq = seq;
while ((dseq = seq).getDatasetSequence() != null)
{
ScoreHolder scores = scoremanager.getAnnotationForSequence(seqId);
float last = Float.NaN, val = Float.NaN;
int lastAnnot = ourAnnot.size();
- for (Score scr : scores.scores)
- {
-
- if (scr.getRanges() != null && scr.getRanges().size() > 0)
+ if (scores!=null && scores.scores!=null) {
+ for (Score scr : scores.scores)
{
- Iterator<Float> vals = scr.getScores().iterator();
- // make features on sequence
- for (Range rn : scr.getRanges())
- {
- SequenceFeature sf;
- String[] type = featureTypeMap.get(scr.getMethod());
- if (type == null)
+ if (scr.getRanges() != null && scr.getRanges().size() > 0)
+ {
+ Iterator<Float> vals = scr.getScores().iterator();
+ // make features on sequence
+ for (Range rn : scr.getRanges())
{
- // create a default type for this feature
- type = new String[]
- { typeName + " (" + scr.getMethod() + ")",
- service.getActionText() };
+
+ SequenceFeature sf;
+ String[] type = featureTypeMap.get(scr.getMethod());
+ if (type == null)
+ {
+ // create a default type for this feature
+ type = new String[]
+ { typeName + " (" + scr.getMethod() + ")",
+ service.getActionText() };
+ }
+ if (vals.hasNext())
+ {
+ sf = new SequenceFeature(type[0], type[1],
+ base + rn.from, base + rn.to, val = vals.next()
+ .floatValue(), methodName);
+ }
+ else
+ {
+ sf = new SequenceFeature(type[0], type[1], null, base
+ + rn.from, base + rn.to, methodName);
+ }
+ dseq.addSequenceFeature(sf);
+ if (last != val && last != Float.NaN)
+ {
+ fc.put(sf.getType(), sf);
+ }
+ last = val;
+ dispFeatures = true;
}
- if (vals.hasNext())
+ }
+ else
+ {
+ if (scr.getScores().size() == 0)
{
- sf = new SequenceFeature(type[0], type[1], base + rn.from,
- base + rn.to, val = vals.next().floatValue(),
- methodName);
+ continue;
}
- else
+ AlignmentAnnotation annot = createAnnotationRowsForScores(
+ ourAnnot,
+ service.serviceType + " (" + scr.getMethod() + ")",
+ service.getServiceTypeURI() + "/" + scr.getMethod(),
+ aseq, base + 1, scr);
+ annot.graph = AlignmentAnnotation.LINE_GRAPH;
+ annot.visible = (annotTypeMap == null
+ || annotTypeMap.get(scr.getMethod()) == null || annotTypeMap
+ .get(scr.getMethod()).get(INVISIBLE) == null);
+ double[] thrsh = (annotTypeMap == null || annotTypeMap
+ .get(scr.getMethod()) == null) ? null
+ : (double[]) annotTypeMap.get(scr.getMethod()).get(
+ THRESHOLD);
+ if (annotTypeMap == null
+ || annotTypeMap.get(scr.getMethod()) == null
+ || annotTypeMap.get(scr.getMethod()).get(DONTCOMBINE) == null)
{
- sf = new SequenceFeature(type[0], type[1], null, base
- + rn.from, base + rn.to, methodName);
+ {
+ if (!sameGroup)
+ {
+ graphGroup++;
+ sameGroup = true;
+ }
+
+ annot.graphGroup = graphGroup;
+ }
}
- dseq.addSequenceFeature(sf);
- if (last != val && last != Float.NaN)
+
+ annot.description = "<html>" + service.getActionText()
+ + " - raw scores";
+ if (thrsh != null)
{
- fc.put(sf.getType(), sf);
+ String threshNote = (thrsh[0] > 0 ? "Above " : "Below ")
+ + thrsh[1] + " indicates disorder";
+ annot.threshold = new GraphLine((float) thrsh[1],
+ threshNote, Color.red);
+ annot.description += "<br/>" + threshNote;
}
- last = val;
- dispFeatures = true;
- }
- }
- else
- {
- if (scr.getScores().size() == 0)
- {
- continue;
- }
- AlignmentAnnotation annot = createAnnotationRowsForScores(
- ourAnnot, service.serviceType + " (" + scr.getMethod()
- + ")",
- service.getServiceTypeURI() + "/" + scr.getMethod(),
- aseq, base + 1, scr);
- annot.graph = AlignmentAnnotation.LINE_GRAPH;
- annot.visible = (annotTypeMap == null
- || annotTypeMap.get(scr.getMethod()) == null || annotTypeMap
- .get(scr.getMethod()).get(INVISIBLE) == null);
- double[] thrsh = (annotTypeMap == null || annotTypeMap.get(scr
- .getMethod()) == null) ? null : (double[]) annotTypeMap
- .get(scr.getMethod()).get(THRESHOLD);
- if (annotTypeMap == null
- || annotTypeMap.get(scr.getMethod()) == null
- || annotTypeMap.get(scr.getMethod()).get(DONTCOMBINE) == null)
- {
+ annot.description += "</html>";
+ Color col = new UserColourScheme(typeName)
+ .createColourFromName(typeName + scr.getMethod());
+ for (int p = 0, ps = annot.annotations.length; p < ps; p++)
{
- if (!sameGroup)
+ if (annot.annotations[p] != null)
{
- graphGroup++;
- sameGroup = true;
+ annot.annotations[p].colour = col;
}
-
- annot.graphGroup = graphGroup;
- }
- }
-
- annot.description = "<html>" + service.getActionText()
- + " - raw scores";
- if (thrsh != null)
- {
- String threshNote = (thrsh[0] > 0 ? "Above " : "Below ")
- + thrsh[1] + " indicates disorder";
- annot.threshold = new GraphLine((float) thrsh[1], threshNote,
- Color.red);
- annot.description += "<br/>" + threshNote;
- }
- annot.description += "</html>";
- Color col = new UserColourScheme(typeName)
- .createColourFromName(typeName + scr.getMethod());
- for (int p = 0, ps = annot.annotations.length; p < ps; p++)
- {
- if (annot.annotations[p] != null)
- {
- annot.annotations[p].colour = col;
}
+ annot._linecolour = col;
}
- annot._linecolour = col;
}
}
if (lastAnnot + 1 == ourAnnot.size())
import java.io.IOException;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Hashtable;
import java.util.List;
import java.util.StringTokenizer;
+import org.jmol.util.ArrayUtil;
import compbio.metadata.Argument;
import compbio.metadata.Option;
import compbio.metadata.Parameter;
public static List<ArgumentI> getJwsArgsfromJaba(List jabargs)
{
+ return getJwsArgsfromJaba(jabargs, true);
+ }
+
+ public static List<ArgumentI> getJwsArgsfromJaba(List jabargs,
+ boolean sortByOpt)
+ {
List<ArgumentI> rgs = new ArrayList<ArgumentI>();
+ List<String> rgnames = new ArrayList<String>();
for (Object rg : jabargs)
{
- ArgumentI narg = (rg instanceof Parameter) ? new JabaParameter(
- (Parameter) rg) : (rg instanceof Option) ? new JabaOption(
- (Option) rg) : null;
+ ArgumentI narg = null;
+ String nargstring = null;
+ if (rg instanceof Parameter)
+ {
+ narg = new JabaParameter((Parameter) rg);
+ nargstring = narg.getName(); // just sort by name for this
+ }
+ else if (rg instanceof Option)
+ {
+ narg = new JabaOption((Option) rg);
+ nargstring = (String) ((Option) rg).getOptionNames().get(0);
+ }
if (narg == null)
{
throw new Error(
else
{
rgs.add(narg);
+ rgnames.add(nargstring);
}
}
- return rgs;
+ if (!sortByOpt)
+ {
+ return rgs;
+ }
+ ArgumentI[] rgssort = rgs.toArray(new ArgumentI[rgs.size()]);
+ String[] rgssorton = rgnames.toArray(new String[rgs.size()]);
+ jalview.util.QuickSort.sort(rgssorton, rgssort);
+ ArgumentI tmp1;
+ int i=0;
+ while (rgssort.length-i>i)
+ {
+ tmp1=rgssort[rgssort.length-i-1];
+ rgssort[rgssort.length-i-1] = rgssort[i];
+ rgssort[i++]=tmp1;
+ }
+ return Arrays.asList(rgssort);
}
public static List getJabafromJwsArgs(List<ArgumentI> jwsargs)
import jalview.bin.Cache;
import jalview.ws.jws2.jabaws2.Jws2Instance;
+import jalview.ws.jws2.jabaws2.Jws2InstanceFactory;
import java.util.HashSet;
import java.util.Set;
{ Services.ClustalWS, Services.MuscleWS, Services.MafftWS,
Services.ProbconsWS, Services.TcoffeeWS, Services.AAConWS,
Services.DisemblWS, Services.GlobPlotWS, Services.IUPredWS,
- Services.JronnWS };
+ Services.JronnWS, Services.RNAalifoldWS };
/*
* (non-Javadoc)
jabasws2 = true;
srv_set = registry.getSupportedServices();
+
+ // dan test
+ System.out.println("registry.getSupportedServices: " + srv_set.toString());
+
svccategories = registry.getServiceCategories();
+
+ // dan test
+// System.out.println("registry.getServiceCategories: " + svccategories.toString());
}
} catch (Exception ex)
String description = registry.getServiceDescription(srv);
- svc = new Jws2Instance(jwsservers, srv.toString(),
+ svc = Jws2InstanceFactory.newJws2Instance(jwsservers, srv.toString(),
cat.name, description, service);
}
if (svc == null)
{
- svc = new Jws2Instance(jwsservers, srv.toString(),
+ svc = Jws2InstanceFactory.newJws2Instance(jwsservers, srv.toString(),
cat.name, "JABAWS 1 Alignment Service", service);
}
jws2Discoverer.addService(jwsservers, svc);
*/
package jalview.ws.jws2;
-import jalview.analysis.AlignSeq;
-import jalview.analysis.SeqsetUtils;
import jalview.api.AlignViewportI;
import jalview.api.AlignmentViewPanel;
-import jalview.datamodel.AlignmentAnnotation;
-import jalview.datamodel.AlignmentI;
-import jalview.datamodel.Annotation;
-import jalview.datamodel.SequenceI;
import jalview.gui.AlignFrame;
-import jalview.gui.IProgressIndicator;
-import jalview.workers.AlignCalcWorker;
-import jalview.ws.jws2.dm.JabaWsParamSet;
+import jalview.ws.jws2.dm.AAConSettings;
import jalview.ws.jws2.jabaws2.Jws2Instance;
import jalview.ws.params.WsParamSetI;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
import java.util.List;
-import java.util.Map;
-import compbio.data.msa.SequenceAnnotation;
-import compbio.data.sequence.FastaSequence;
-import compbio.data.sequence.Score;
-import compbio.data.sequence.ScoreManager;
import compbio.metadata.Argument;
-import compbio.metadata.ChunkHolder;
-import compbio.metadata.JobStatus;
-import compbio.metadata.JobSubmissionException;
-import compbio.metadata.Option;
-import compbio.metadata.ResultNotAvailableException;
-import compbio.metadata.WrongParameterException;
-public abstract class JabawsAlignCalcWorker extends AlignCalcWorker
+public abstract class JabawsAlignCalcWorker extends JabawsCalcWorker
{
- Jws2Instance service;
-
- @SuppressWarnings("unchecked")
- protected SequenceAnnotation aaservice;
-
- protected ScoreManager scoremanager;
-
- protected WsParamSetI preset;
-
- protected List<Argument> arguments;
public JabawsAlignCalcWorker(AlignViewportI alignViewport,
AlignmentViewPanel alignPanel)
{
super(alignViewport, alignPanel);
}
-
- IProgressIndicator guiProgress;
-
+
+
+
+
public JabawsAlignCalcWorker(Jws2Instance service, AlignFrame alignFrame,
WsParamSetI preset, List<Argument> paramset)
{
- this(alignFrame.getCurrentView(), alignFrame.alignPanel);
- this.guiProgress = alignFrame;
- this.preset = preset;
- this.arguments = paramset;
- this.service = service;
- aaservice = (SequenceAnnotation) service.service;
-
- }
-
- public WsParamSetI getPreset()
- {
- return preset;
- }
-
- public List<Argument> getArguments()
- {
- return arguments;
- }
-
- /**
- * reconfigure and restart the AAConClient. This method will spawn a new
- * thread that will wait until any current jobs are finished, modify the
- * parameters and restart the conservation calculation with the new values.
- *
- * @param newpreset
- * @param newarguments
- */
- public void updateParameters(final WsParamSetI newpreset,
- final List<Argument> newarguments)
- {
- preset = newpreset;
- arguments = newarguments;
- calcMan.startWorker(this);
- }
-
- public List<Option> getJabaArguments()
- {
- List<Option> newargs = new ArrayList<Option>();
- if (preset != null && preset instanceof JabaWsParamSet)
- {
- newargs.addAll(((JabaWsParamSet) preset).getjabaArguments());
- }
- if (arguments != null && arguments.size() > 0)
- {
- for (Argument rg : arguments)
- {
- if (Option.class.isAssignableFrom(rg.getClass()))
- {
- newargs.add((Option) rg);
- }
- }
- }
- return newargs;
- }
-
- @Override
- public void run()
- {
- if (aaservice == null)
- {
- return;
- }
- long progressId = -1;
-
- int serverErrorsLeft = 3;
-
- String rslt = "JOB NOT DEFINED";
- StringBuffer msg = new StringBuffer();
- try
- {
- if (checkDone())
- {
- return;
- }
- List<compbio.data.sequence.FastaSequence> seqs = getInputSequences(alignViewport
- .getAlignment());
-
- if (seqs == null)
- {
- calcMan.workerComplete(this);
- return;
- }
-
- AlignmentAnnotation[] aa = alignViewport.getAlignment()
- .getAlignmentAnnotation();
- if (guiProgress != null)
- {
- guiProgress.setProgressBar("JABA " + getServiceActionText(),
- progressId = System.currentTimeMillis());
- }
- if (preset == null && arguments == null)
- {
- rslt = aaservice.analize(seqs);
- }
- else
- {
- try
- {
- rslt = aaservice.customAnalize(seqs, getJabaArguments());
- } catch (WrongParameterException x)
- {
- throw new JobSubmissionException(
- "Invalid paremeter set. Check Jalview implementation.", x);
-
- }
- }
- boolean finished = false;
- long rpos = 0;
- do
- {
- JobStatus status = aaservice.getJobStatus(rslt);
- if (status.equals(JobStatus.FINISHED))
- {
- finished = true;
- }
- if (calcMan.isPending(this) && this instanceof AAConClient)
- {
- finished = true;
- // cancel this job and yield to the new job
- try
- {
- if (aaservice.cancelJob(rslt))
- {
- System.err.println("Cancelled AACon job: " + rslt);
- }
- else
- {
- System.err.println("FAILED TO CANCELL AACon job: " + rslt);
- }
-
- } catch (Exception x)
- {
-
- }
-
- return;
- }
- long cpos;
- ChunkHolder stats = null;
- do
- {
- cpos = rpos;
- boolean retry = false;
- do
- {
- try
- {
- stats = aaservice.pullExecStatistics(rslt, rpos);
- } catch (Exception x)
- {
-
- if (x.getMessage().contains(
- "Position in a file could not be negative!"))
- {
- // squash index out of bounds exception- seems to happen for
- // disorder predictors which don't (apparently) produce any
- // progress information and JABA server throws an exception
- // because progress length is -1.
- stats = null;
- }
- else
- {
- if (--serverErrorsLeft > 0)
- {
- retry = true;
- try
- {
- Thread.sleep(200);
- } catch (InterruptedException q)
- {
- }
- ;
- }
- else
- {
- throw x;
- }
- }
- }
- } while (retry);
- if (stats != null)
- {
- System.out.print(stats.getChunk());
- msg.append(stats);
- rpos = stats.getNextPosition();
- }
- } while (stats != null && rpos > cpos);
-
- if (!finished && status.equals(JobStatus.FAILED))
- {
- try
- {
- Thread.sleep(200);
- } catch (InterruptedException x)
- {
- }
- ;
- }
- } while (!finished);
- if (serverErrorsLeft > 0)
- {
- try
- {
- Thread.sleep(200);
- } catch (InterruptedException x)
- {
- }
- ;
- scoremanager = aaservice.getAnnotation(rslt);
- if (scoremanager != null)
- {
- jalview.bin.Cache.log
- .debug("Updating result annotation from Job " + rslt
- + " at " + service.getUri());
- updateResultAnnotation(true);
- ap.adjustAnnotationHeight();
- }
- }
- }
-
- catch (JobSubmissionException x)
- {
-
- System.err.println("submission error with " + getServiceActionText()
- + " :");
- x.printStackTrace();
- calcMan.workerCannotRun(this);
- } catch (ResultNotAvailableException x)
- {
- System.err.println("collection error:\nJob ID: " + rslt);
- x.printStackTrace();
- calcMan.workerCannotRun(this);
-
- } catch (OutOfMemoryError error)
- {
- calcMan.workerCannotRun(this);
-
- // consensus = null;
- // hconsensus = null;
- ap.raiseOOMWarning(getServiceActionText(), error);
- } catch (Exception x)
- {
- calcMan.workerCannotRun(this);
-
- // consensus = null;
- // hconsensus = null;
- System.err
- .println("Blacklisting worker due to unexpected exception:");
- x.printStackTrace();
- } finally
- {
-
- calcMan.workerComplete(this);
- if (ap != null)
- {
- calcMan.workerComplete(this);
- if (guiProgress != null && progressId != -1)
- {
- guiProgress.setProgressBar("", progressId);
- }
- ap.paintAlignment(true);
- }
- if (msg.length() > 0)
- {
- // TODO: stash message somewhere in annotation or alignment view.
- // code below shows result in a text box popup
- /*
- * jalview.gui.CutAndPasteTransfer cap = new
- * jalview.gui.CutAndPasteTransfer(); cap.setText(msg.toString());
- * jalview.gui.Desktop.addInternalFrame(cap,
- * "Job Status for "+getServiceActionText(), 600, 400);
- */
- }
- }
-
- }
-
- @Override
- public void updateAnnotation()
- {
- updateResultAnnotation(false);
+ super(service, alignFrame, preset, paramset);
}
- public abstract void updateResultAnnotation(boolean immediate);
-
- public abstract String getServiceActionText();
-
- boolean submitGaps = true;
-
- boolean alignedSeqs = true;
-
- boolean nucleotidesAllowed = false;
-
- boolean proteinAllowed = false;
-
/**
- * record sequences for mapping result back to afterwards
+ * Recover any existing parameters for this service
*/
- protected boolean bySequence = false;
-
- Map<String, SequenceI> seqNames;
-
- boolean[] gapMap;
-
- int realw;
-
- public List<FastaSequence> getInputSequences(AlignmentI alignment)
+ protected void initViewportParams()
{
- if (alignment == null || alignment.getWidth() <= 0
- || alignment.getSequences() == null
- // || (alignedSeqs && !alignment.isAligned() && !submitGaps)
- || alignment.isNucleotide() ? !nucleotidesAllowed
- : !proteinAllowed)
- {
- return null;
- }
- 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];
- for (SequenceI sq : ((List<SequenceI>) alignment.getSequences()))
- {
- if (sq.getEnd() - sq.getStart() > minlen - 1)
- {
- String newname = SeqsetUtils.unique_name(seqs.size() + 1);
- // make new input sequence with or without gaps
- if (seqNames != null)
- {
- seqNames.put(newname, sq);
- }
- FastaSequence seq;
- if (submitGaps)
- {
- seqs.add(seq = new compbio.data.sequence.FastaSequence(newname,
- sq.getSequenceAsString()));
- if (gapMap == null || gapMap.length < seq.getSequence().length())
- {
- boolean[] tg = gapMap;
- gapMap = new boolean[seq.getLength()];
- System.arraycopy(tg, 0, gapMap, 0, tg.length);
- for (int p = tg.length; p < gapMap.length; p++)
- {
- gapMap[p] = false; // init as a gap
- }
- }
- for (int apos : sq.gapMap())
- {
- gapMap[apos] = true; // aligned.
- }
- }
- else
- {
- seqs.add(seq = new compbio.data.sequence.FastaSequence(newname,
- AlignSeq.extractGaps(jalview.util.Comparison.GapChars,
- sq.getSequenceAsString())));
- }
- if (seq.getSequence().length() > ln)
- {
- ln = seq.getSequence().length();
- }
- }
- }
- if (alignedSeqs && submitGaps)
- {
- realw = 0;
- for (int i = 0; i < gapMap.length; i++)
- {
- if (gapMap[i])
- {
- realw++;
- }
- }
- // try real hard to return something submittable
- // TODO: some of AAcon measures need a minimum of two or three amino
- // acids at each position, and AAcon doesn't gracefully degrade.
- for (int p = 0; p < seqs.size(); p++)
- {
- FastaSequence sq = seqs.get(p);
- int l = sq.getSequence().length();
- // strip gapped columns
- char[] padded = new char[realw], orig = sq.getSequence()
- .toCharArray();
- for (int i = 0, pp = 0; i < realw; pp++)
- {
- if (gapMap[pp])
- {
- if (orig.length > pp)
- {
- padded[i++] = orig[pp];
- }
- else
- {
- padded[i++] = '-';
- }
- }
- }
- seqs.set(p, new compbio.data.sequence.FastaSequence(sq.getId(),
- new String(padded)));
- }
- }
- return seqs;
+ ((jalview.gui.AlignViewport) alignViewport).setCalcIdSettingsFor(
+ getCalcId(),
+ new AAConSettings(true, service, this.preset,
+ (arguments != null) ? JabaParamStore
+ .getJwsArgsfromJaba(arguments) : null), true);
}
/**
- * notify manager that we have started, and wait for a free calculation slot
*
- * @return true if slot is obtained and work still valid, false if another
- * thread has done our work for us.
+ * @return
*/
- boolean checkDone()
- {
- calcMan.notifyStart(this);
- ap.paintAlignment(false);
- while (!calcMan.notifyWorking(this))
- {
- if (calcMan.isWorking(this))
- {
- return true;
- }
- try
- {
- if (ap != null)
- {
- ap.paintAlignment(false);
- }
+ public abstract String getCalcId();
- Thread.sleep(200);
- } catch (Exception ex)
- {
- ex.printStackTrace();
- }
- }
- if (alignViewport.isClosed())
- {
- abortAndDestroy();
- return true;
- }
- return false;
- }
- protected void createAnnotationRowsForScores(
- List<AlignmentAnnotation> ourAnnot, String calcId, int alWidth,
- Score scr)
- {
- // simple annotation row
- AlignmentAnnotation annotation = alignViewport.getAlignment()
- .findOrCreateAnnotation(scr.getMethod(), calcId, true, null,
- null);
- if (alWidth == gapMap.length) // scr.getScores().size())
- {
- constructAnnotationFromScore(annotation, 0, alWidth, scr);
- ourAnnot.add(annotation);
- }
- }
- protected AlignmentAnnotation createAnnotationRowsForScores(
- List<AlignmentAnnotation> ourAnnot, String typeName,
- String calcId, SequenceI dseq, int base, Score scr)
- {
- System.out.println("Creating annotation on dseq:" + dseq.getStart()
- + " base is " + base + " and length=" + dseq.getLength()
- + " == " + scr.getScores().size());
- // AlignmentAnnotation annotation = new AlignmentAnnotation(
- // scr.getMethod(), typeName, new Annotation[]
- // {}, 0, -1, AlignmentAnnotation.LINE_GRAPH);
- // annotation.setCalcId(calcId);
- AlignmentAnnotation annotation = alignViewport.getAlignment()
- .findOrCreateAnnotation(typeName, calcId, false, dseq, null);
- constructAnnotationFromScore(annotation, 0, dseq.getLength(), scr);
- annotation.createSequenceMapping(dseq, base, false);
- annotation.adjustForAlignment();
- dseq.addAlignmentAnnotation(annotation);
- ourAnnot.add(annotation);
- return annotation;
- }
-
- private void constructAnnotationFromScore(AlignmentAnnotation annotation,
- int base, int alWidth, Score scr)
- {
- Annotation[] elm = new Annotation[alWidth];
- Iterator<Float> vals = scr.getScores().iterator();
- float m = 0f, x = 0f;
- for (int i = 0; vals.hasNext(); i++)
- {
- float val = vals.next().floatValue();
- if (i == 0)
- {
- m = val;
- x = val;
- }
- else
- {
- if (m > val)
- {
- m = val;
- }
- ;
- if (x < val)
- {
- 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);
- }
- annotation.annotations = elm;
- annotation.belowAlignment = true;
- if (x < 0)
- {
- x = 0;
- }
- x += (x - m) * 0.1;
- annotation.graphMax = x;
- annotation.graphMin = m;
- annotation.validateRangeAndDisplay();
- }
-
- protected void updateOurAnnots(List<AlignmentAnnotation> ourAnnot)
+ @Override
+ public void updateParameters(WsParamSetI newpreset, java.util.List<Argument> newarguments)
{
- List<AlignmentAnnotation> our = ourAnnots;
- ourAnnots = ourAnnot;
- AlignmentI alignment = alignViewport.getAlignment();
- if (our != null)
- {
- if (our.size() > 0)
- {
- for (AlignmentAnnotation an : our)
- {
- if (!ourAnnots.contains(an))
- {
- // remove the old annotation
- alignment.deleteAnnotation(an);
- }
- }
- }
- our.clear();
-
- ap.adjustAnnotationHeight();
- }
+ super.updateParameters(newpreset, newarguments);
+ initViewportParams();
}
}
--- /dev/null
+package jalview.ws.jws2;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import compbio.data.msa.SequenceAnnotation;
+import compbio.data.sequence.FastaSequence;
+import compbio.data.sequence.Score;
+import compbio.data.sequence.ScoreManager;
+import compbio.metadata.Argument;
+import compbio.metadata.ChunkHolder;
+import compbio.metadata.JobStatus;
+import compbio.metadata.JobSubmissionException;
+import compbio.metadata.Option;
+import compbio.metadata.ResultNotAvailableException;
+import compbio.metadata.WrongParameterException;
+import jalview.analysis.AlignSeq;
+import jalview.analysis.SeqsetUtils;
+import jalview.api.AlignViewportI;
+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;
+import jalview.gui.IProgressIndicator;
+import jalview.workers.AlignCalcWorker;
+import jalview.ws.jws2.dm.JabaWsParamSet;
+import jalview.ws.jws2.jabaws2.Jws2Instance;
+import jalview.ws.params.WsParamSetI;
+
+public abstract class JabawsCalcWorker extends AlignCalcWorker
+{
+
+ protected Jws2Instance service;
+ @SuppressWarnings("unchecked")
+ protected SequenceAnnotation aaservice;
+ protected ScoreManager scoremanager;
+ protected WsParamSetI preset;
+ protected List<Argument> arguments;
+ protected IProgressIndicator guiProgress;
+
+ public JabawsCalcWorker(AlignViewportI alignViewport,
+ AlignmentViewPanel alignPanel)
+ {
+ super(alignViewport, alignPanel);
+ }
+
+ public JabawsCalcWorker(Jws2Instance service, AlignFrame alignFrame,
+ WsParamSetI preset, List<Argument> paramset)
+ {
+ this(alignFrame.getCurrentView(), alignFrame.alignPanel);
+ this.guiProgress = alignFrame;
+ this.preset = preset;
+ this.arguments = paramset;
+ this.service = service;
+ aaservice = (SequenceAnnotation) service.service;
+
+ }
+
+ public WsParamSetI getPreset()
+ {
+ return preset;
+ }
+
+ public List<Argument> getArguments()
+ {
+ return arguments;
+ }
+
+ /**
+ * reconfigure and restart the AAConClient. This method will spawn a new
+ * thread that will wait until any current jobs are finished, modify the
+ * parameters and restart the conservation calculation with the new values.
+ *
+ * @param newpreset
+ * @param newarguments
+ */
+ public void updateParameters(final WsParamSetI newpreset, final List<Argument> newarguments)
+ {
+ preset = newpreset;
+ arguments = newarguments;
+ calcMan.startWorker(this);
+ }
+
+ public List<Option> getJabaArguments()
+ {
+ List<Option> newargs = new ArrayList<Option>();
+ if (preset != null && preset instanceof JabaWsParamSet)
+ {
+ newargs.addAll(((JabaWsParamSet) preset).getjabaArguments());
+ }
+ if (arguments != null && arguments.size() > 0)
+ {
+ for (Argument rg : arguments)
+ {
+ if (Option.class.isAssignableFrom(rg.getClass()))
+ {
+ newargs.add((Option) rg);
+ }
+ }
+ }
+ return newargs;
+ }
+
+ @Override
+ public void run()
+ {
+ if (aaservice == null)
+ {
+ return;
+ }
+ long progressId = -1;
+
+ int serverErrorsLeft = 3;
+
+ String rslt = "JOB NOT DEFINED";
+ StringBuffer msg = new StringBuffer();
+ try
+ {
+ if (checkDone())
+ {
+ return;
+ }
+ List<compbio.data.sequence.FastaSequence> seqs = getInputSequences(alignViewport
+ .getAlignment(), bySequence ? alignViewport.getSelectionGroup() : null);
+
+ if (seqs == null)
+ {
+ calcMan.workerComplete(this);
+ return;
+ }
+
+ AlignmentAnnotation[] aa = alignViewport.getAlignment()
+ .getAlignmentAnnotation();
+ if (guiProgress != null)
+ {
+ guiProgress.setProgressBar("JABA " + getServiceActionText(),
+ progressId = System.currentTimeMillis());
+ }
+ if (preset == null && arguments == null)
+ {
+ rslt = aaservice.analize(seqs);
+ }
+ else
+ {
+ try
+ {
+ rslt = aaservice.customAnalize(seqs, getJabaArguments());
+ } catch (WrongParameterException x)
+ {
+ throw new JobSubmissionException(
+ "Invalid parameter set. Check Jalview implementation.", x);
+
+ }
+ }
+ boolean finished = false;
+ long rpos = 0;
+ do
+ {
+ JobStatus status = aaservice.getJobStatus(rslt);
+ if (status.equals(JobStatus.FINISHED))
+ {
+ finished = true;
+ }
+ if (calcMan.isPending(this) && this instanceof AAConClient)
+ {
+ finished = true;
+ // cancel this job and yield to the new job
+ try
+ {
+ if (aaservice.cancelJob(rslt))
+ {
+ System.err.println("Cancelled AACon job: " + rslt);
+ }
+ else
+ {
+ System.err.println("FAILED TO CANCEL AACon job: " + rslt);
+ }
+
+ } catch (Exception x)
+ {
+
+ }
+
+ return;
+ }
+ long cpos;
+ ChunkHolder stats = null;
+ do
+ {
+ cpos = rpos;
+ boolean retry = false;
+ do
+ {
+ try
+ {
+ stats = aaservice.pullExecStatistics(rslt, rpos);
+ } catch (Exception x)
+ {
+
+ if (x.getMessage().contains(
+ "Position in a file could not be negative!"))
+ {
+ // squash index out of bounds exception- seems to happen for
+ // disorder predictors which don't (apparently) produce any
+ // progress information and JABA server throws an exception
+ // because progress length is -1.
+ stats = null;
+ }
+ else
+ {
+ if (--serverErrorsLeft > 0)
+ {
+ retry = true;
+ try
+ {
+ Thread.sleep(200);
+ } catch (InterruptedException q)
+ {
+ }
+ ;
+ }
+ else
+ {
+ throw x;
+ }
+ }
+ }
+ } while (retry);
+ if (stats != null)
+ {
+ System.out.print(stats.getChunk());
+ msg.append(stats);
+ rpos = stats.getNextPosition();
+ }
+ } while (stats != null && rpos > cpos);
+
+ if (!finished && status.equals(JobStatus.FAILED))
+ {
+ try
+ {
+ Thread.sleep(200);
+ } catch (InterruptedException x)
+ {
+ }
+ ;
+ }
+ } while (!finished);
+ if (serverErrorsLeft > 0)
+ {
+ try
+ {
+ Thread.sleep(200);
+ } catch (InterruptedException x)
+ {
+ }
+ ;
+ scoremanager = aaservice.getAnnotation(rslt);
+ if (scoremanager != null)
+ {
+ jalview.bin.Cache.log
+ .debug("Updating result annotation from Job " + rslt
+ + " at " + service.getUri());
+ updateResultAnnotation(true);
+ ap.adjustAnnotationHeight();
+ }
+ }
+ }
+
+ catch (JobSubmissionException x)
+ {
+
+ System.err.println("submission error with " + getServiceActionText()
+ + " :");
+ x.printStackTrace();
+ calcMan.workerCannotRun(this);
+ } catch (ResultNotAvailableException x)
+ {
+ System.err.println("collection error:\nJob ID: " + rslt);
+ x.printStackTrace();
+ calcMan.workerCannotRun(this);
+
+ } catch (OutOfMemoryError error)
+ {
+ calcMan.workerCannotRun(this);
+
+ // consensus = null;
+ // hconsensus = null;
+ ap.raiseOOMWarning(getServiceActionText(), error);
+ } catch (Exception x)
+ {
+ calcMan.workerCannotRun(this);
+
+ // consensus = null;
+ // hconsensus = null;
+ System.err
+ .println("Blacklisting worker due to unexpected exception:");
+ x.printStackTrace();
+ } finally
+ {
+
+ calcMan.workerComplete(this);
+ if (ap != null)
+ {
+ calcMan.workerComplete(this);
+ if (guiProgress != null && progressId != -1)
+ {
+ guiProgress.setProgressBar("", progressId);
+ }
+ ap.paintAlignment(true);
+ }
+ if (msg.length() > 0)
+ {
+ // TODO: stash message somewhere in annotation or alignment view.
+ // code below shows result in a text box popup
+ /*
+ * jalview.gui.CutAndPasteTransfer cap = new
+ * jalview.gui.CutAndPasteTransfer(); cap.setText(msg.toString());
+ * jalview.gui.Desktop.addInternalFrame(cap,
+ * "Job Status for "+getServiceActionText(), 600, 400);
+ */
+ }
+ }
+
+ }
+
+ @Override
+ public void updateAnnotation()
+ {
+ updateResultAnnotation(false);
+ }
+
+ public abstract void updateResultAnnotation(boolean immediate);
+
+ public abstract String getServiceActionText();
+
+ protected boolean submitGaps = true;
+ protected boolean alignedSeqs = true;
+ protected boolean nucleotidesAllowed = false;
+ protected boolean proteinAllowed = false;
+ /**
+ * record sequences for mapping result back to afterwards
+ */
+ protected boolean bySequence = false;
+ protected Map<String, SequenceI> seqNames;
+ protected boolean[] gapMap;
+ int realw;
+ int start,end;
+
+ public List<FastaSequence> getInputSequences(AlignmentI alignment, AnnotatedCollectionI inputSeqs)
+ {
+ if (alignment == null || alignment.getWidth() <= 0
+ || alignment.getSequences() == null
+ || 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 (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
+ if (seqNames != null)
+ {
+ seqNames.put(newname, sq);
+ }
+ FastaSequence seq;
+ if (submitGaps)
+ {
+ seqs.add(seq = new compbio.data.sequence.FastaSequence(newname,
+ sq.getSequenceAsString()));
+ if (gapMap == null || gapMap.length < seq.getSequence().length())
+ {
+ boolean[] tg = gapMap;
+ gapMap = new boolean[seq.getLength()];
+ System.arraycopy(tg, 0, gapMap, 0, tg.length);
+ for (int p = tg.length; p < gapMap.length; p++)
+ {
+ gapMap[p] = false; // init as a gap
+ }
+ }
+ for (int apos : sq.gapMap())
+ {
+ gapMap[apos] = true; // aligned.
+ }
+ }
+ else
+ {
+ seqs.add(seq = new compbio.data.sequence.FastaSequence(newname,
+ AlignSeq.extractGaps(jalview.util.Comparison.GapChars,
+ sq.getSequenceAsString(start,end+1))));
+ }
+ if (seq.getSequence().length() > ln)
+ {
+ ln = seq.getSequence().length();
+ }
+ }
+ }
+ if (alignedSeqs && submitGaps)
+ {
+ realw = 0;
+ for (int i = 0; i < gapMap.length; i++)
+ {
+ if (gapMap[i])
+ {
+ realw++;
+ }
+ }
+ // try real hard to return something submittable
+ // TODO: some of AAcon measures need a minimum of two or three amino
+ // acids at each position, and AAcon doesn't gracefully degrade.
+ for (int p = 0; p < seqs.size(); p++)
+ {
+ FastaSequence sq = seqs.get(p);
+ int l = sq.getSequence().length();
+ // strip gapped columns
+ char[] padded = new char[realw], orig = sq.getSequence()
+ .toCharArray();
+ for (int i = 0, pp = 0; i < realw; pp++)
+ {
+ if (gapMap[pp])
+ {
+ if (orig.length > pp)
+ {
+ padded[i++] = orig[pp];
+ }
+ else
+ {
+ padded[i++] = '-';
+ }
+ }
+ }
+ seqs.set(p, new compbio.data.sequence.FastaSequence(sq.getId(),
+ new String(padded)));
+ }
+ }
+ return seqs;
+ }
+
+ /**
+ * notify manager that we have started, and wait for a free calculation slot
+ *
+ * @return true if slot is obtained and work still valid, false if another
+ * thread has done our work for us.
+ */
+ boolean checkDone()
+ {
+ calcMan.notifyStart(this);
+ ap.paintAlignment(false);
+ while (!calcMan.notifyWorking(this))
+ {
+ if (calcMan.isWorking(this))
+ {
+ return true;
+ }
+ try
+ {
+ if (ap != null)
+ {
+ ap.paintAlignment(false);
+ }
+
+ Thread.sleep(200);
+ } catch (Exception ex)
+ {
+ ex.printStackTrace();
+ }
+ }
+ if (alignViewport.isClosed())
+ {
+ abortAndDestroy();
+ return true;
+ }
+ return false;
+ }
+
+ protected void createAnnotationRowsForScores(List<AlignmentAnnotation> ourAnnot, String calcId,
+ int alWidth, Score scr)
+ {
+ // simple annotation row
+ AlignmentAnnotation annotation = alignViewport.getAlignment()
+ .findOrCreateAnnotation(scr.getMethod(), calcId, true, null,
+ null);
+ if (alWidth == gapMap.length) // scr.getScores().size())
+ {
+ constructAnnotationFromScore(annotation, 0, alWidth, scr);
+ ourAnnot.add(annotation);
+ }
+ }
+
+ protected AlignmentAnnotation createAnnotationRowsForScores(List<AlignmentAnnotation> ourAnnot, String typeName,
+ String calcId, SequenceI dseq, int base, Score scr)
+ {
+ System.out.println("Creating annotation on dseq:" + dseq.getStart()
+ + " base is " + base + " and length=" + dseq.getLength()
+ + " == " + scr.getScores().size());
+ // AlignmentAnnotation annotation = new AlignmentAnnotation(
+ // scr.getMethod(), typeName, new Annotation[]
+ // {}, 0, -1, AlignmentAnnotation.LINE_GRAPH);
+ // annotation.setCalcId(calcId);
+ AlignmentAnnotation annotation = alignViewport.getAlignment()
+ .findOrCreateAnnotation(typeName, calcId, false, dseq, null);
+ constructAnnotationFromScore(annotation, 0, dseq.getLength(), scr);
+ annotation.createSequenceMapping(dseq, base, false);
+ annotation.adjustForAlignment();
+ dseq.addAlignmentAnnotation(annotation);
+ ourAnnot.add(annotation);
+ return annotation;
+ }
+
+ private void constructAnnotationFromScore(AlignmentAnnotation annotation, int base,
+ int alWidth, Score scr)
+ {
+ Annotation[] elm = new Annotation[alWidth];
+ Iterator<Float> vals = scr.getScores().iterator();
+ float m = 0f, x = 0f;
+ for (int i = 0; vals.hasNext(); i++)
+ {
+ float val = vals.next().floatValue();
+ if (i == 0)
+ {
+ m = val;
+ x = val;
+ }
+ else
+ {
+ if (m > val)
+ {
+ m = val;
+ }
+ ;
+ if (x < val)
+ {
+ 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);
+ }
+
+ annotation.annotations = elm;
+ annotation.belowAlignment = true;
+ if (x < 0)
+ {
+ x = 0;
+ }
+ x += (x - m) * 0.1;
+ annotation.graphMax = x;
+ annotation.graphMin = m;
+ annotation.validateRangeAndDisplay();
+ }
+
+ protected void updateOurAnnots(List<AlignmentAnnotation> ourAnnot)
+ {
+ List<AlignmentAnnotation> our = ourAnnots;
+ ourAnnots = ourAnnot;
+ AlignmentI alignment = alignViewport.getAlignment();
+ if (our != null)
+ {
+ if (our.size() > 0)
+ {
+ for (AlignmentAnnotation an : our)
+ {
+ if (!ourAnnots.contains(an))
+ {
+ // remove the old annotation
+ alignment.deleteAnnotation(an);
+ }
+ }
+ }
+ our.clear();
+
+ ap.adjustAnnotationHeight();
+ }
+ }
+
+}
import jalview.gui.JvSwingUtils;
import jalview.ws.WSMenuEntryProviderI;
import jalview.ws.jws2.jabaws2.Jws2Instance;
+import jalview.ws.params.ParamDatastoreI;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.util.Hashtable;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import java.util.StringTokenizer;
import java.util.Vector;
public void run()
{
+
if (running && oldthread != null && oldthread.isAlive())
{
if (!aborted)
Cache.log.debug("Old discovery thread has finished.");
}
running = true;
+
+ // first set up exclusion list if needed
+ final Set<String> ignoredServices = new HashSet<String>();
+ for (String ignored:jalview.bin.Cache.getDefault("IGNORED_JABAWS_SERVICETYPES", Services.JpredWS.toString()).split("\\|"))
+ {
+ ignoredServices.add(ignored);
+ }
+
+
changeSupport.firePropertyChange("services", services, new Vector());
oldthread = Thread.currentThread();
try
// for all possible services
for (Services sv : squery.JABAWS2SERVERS)
{
- svctypes.add(sv.toString());
+ if (!ignoredServices.contains(sv.toString()))
+ {
+ svctypes.add(sv.toString());
+ }
}
}
;
for (JabaWsServerQuery squery : qrys)
{
- finished = finished && !squery.isRunning();
+ if (squery.isRunning()){
+ finished=false;
+ }
}
if (aborted)
{
services = new Vector<Jws2Instance>();
for (Jws2Instance svc : svcs)
{
- services.add(svc);
+ if (!ignoredServices.contains(svc.serviceType))
+ {
+ services.add(svc);
+ }
}
}
}
services.add(service);
// retrieve the presets and parameter set and cache now
- service.getParamStore().getPresets();
+ ParamDatastoreI pds = service.getParamStore();
+ if (pds != null)
+ {
+ pds.getPresets();
+ }
service.hasParameters();
if (validServiceUrls == null)
{
*/
package jalview.ws.jws2;
+import java.net.MalformedURLException;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
{
copy.setName(option.getName());
copy.setDescription(option.getDescription());
+ copy.setBasicURL(option.getBasicURL());
copy.setFurtherDetails(option.getFurtherDetails());
copy.setRequired(option.isRequired());
List<String> names = option.getOptionNames();
--- /dev/null
+package jalview.ws.jws2;
+
+import jalview.api.AlignCalcWorkerI;
+import jalview.datamodel.AlignmentAnnotation;
+import jalview.datamodel.Annotation;
+import jalview.gui.AlignFrame;
+import jalview.ws.jws2.dm.AAConSettings;
+import jalview.ws.jws2.jabaws2.Jws2Instance;
+import jalview.ws.params.WsParamSetI;
+import jalview.ws.uimodel.AlignAnalysisUIText;
+
+import java.text.MessageFormat;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.TreeSet;
+import java.util.regex.Pattern;
+
+import compbio.data.sequence.RNAStructReader.AlifoldResult;
+import compbio.data.sequence.RNAStructScoreManager;
+import compbio.data.sequence.Range;
+import compbio.data.sequence.Score;
+import compbio.metadata.Argument;
+
+/**
+ * Client for the JABA RNA Alifold Service
+ * @author daluke - Daniel Barton
+ *
+ */
+
+public class RNAalifoldClient extends JabawsAlignCalcWorker implements
+ AlignCalcWorkerI
+{
+
+ String methodName;
+
+ AlignFrame af;
+
+ // keeps track of whether the RNAalifold result includes base contact
+ // probabilities
+ boolean bpScores;
+
+ public RNAalifoldClient(Jws2Instance sh, AlignFrame alignFrame,
+ WsParamSetI preset, List<Argument> paramset)
+ {
+ super(sh, alignFrame, preset, paramset);
+
+ //if (arguments == null)
+ // arguments = new ArrayList<Argument>();
+
+ af = alignFrame;
+ methodName = sh.serviceType;
+ alignedSeqs=true;
+ submitGaps=true;
+ nucleotidesAllowed = true;
+ proteinAllowed = false;
+ initViewportParams();
+ }
+
+ public String getCalcId()
+ {
+ return CALC_ID;
+ }
+ private static String CALC_ID="jalview.ws.jws2.RNAalifoldClient";
+
+ public static AlignAnalysisUIText getAlignAnalysisUITest()
+ {
+ return new AlignAnalysisUIText(
+ compbio.ws.client.Services.RNAalifoldWS.toString(),
+ jalview.ws.jws2.RNAalifoldClient.class,
+ CALC_ID,
+ true,
+ false,
+ true,
+ "RNAAliFold Prediction",
+ "When checked, RNA secondary structure predictions will be calculated for the alignment, and updated when edits are made.",
+ "Change RNAAliFold settings...",
+ "Modify settings for the RNAAliFold prediction. Use this to hide or show different results of the RNA calculation, and change RNA folding parameters");
+
+ }
+
+ @Override
+ public String getServiceActionText()
+ {
+ return "Submitting RNA alignment for Secondary Structure prediction using "
+ + "RNAalifold Service";
+ }
+
+ @Override
+ public void updateResultAnnotation(boolean immediate)
+ {
+
+ if (immediate || !calcMan.isWorking(this) && scoremanager != null)
+ {
+
+ List<AlignmentAnnotation> ourAnnot = new ArrayList<AlignmentAnnotation>();
+
+ // Unpack the ScoreManager
+ List<String> structs = ((RNAStructScoreManager) scoremanager)
+ .getStructs();
+ List<TreeSet<Score>> data = ((RNAStructScoreManager) scoremanager)
+ .getData();
+
+ // test to see if this data object contains base pair contacts
+ Score fscore = data.get(0).first();
+ this.bpScores = (fscore.getMethod()
+ .equals(AlifoldResult.contactProbabilities.toString()));
+
+ // add annotation for the consensus sequence alignment
+ createAnnotationRowforScoreHolder(ourAnnot, getCalcId(),
+ structs.get(0), null, null);
+
+ // Add annotations for the mfe Structure
+ createAnnotationRowforScoreHolder(ourAnnot, getCalcId(),
+ structs.get(1), data.get(1), null);
+
+ // decide whether to add base pair contact probability histogram
+ int count = 2;
+ if (bpScores)
+ {
+ createAnnotationRowforScoreHolder(ourAnnot, getCalcId(),
+ structs.get(2), data.get(0), data.get(2));
+ count++;
+ }
+
+ // Now loop for the rest of the Annotations (if there it isn't stochastic
+ // output
+ // only the centroid and MEA structures remain anyway)
+ for (int i = count; i < structs.size(); i++)
+ {
+ // The ensemble values should be displayed in the description of the
+ // first (or all?) Stochastic Backtrack Structures.
+ if (!data.get(i).first().getMethod()
+ .equals(AlifoldResult.ensembleValues.toString()))
+ {
+
+ createAnnotationRowforScoreHolder(ourAnnot, getCalcId(),
+ structs.get(i), data.get(i), null);
+ }
+ }
+
+ if (ourAnnot.size() > 0)
+ {
+
+ updateOurAnnots(ourAnnot);
+ ap.adjustAnnotationHeight();
+ }
+ }
+ }
+
+ protected void createAnnotationRowforScoreHolder(
+ List<AlignmentAnnotation> ourAnnot, String calcId, String struct,
+ TreeSet<Score> data, TreeSet<Score> descriptionData)
+ {
+ /*
+ * If contactProbability information is returned from RNAalifold it is
+ * stored in the first TreeSet<Score> object corresponding to the String Id
+ * which holds the consensus alignment. The method enumeration is then
+ * updated to AlifoldResult.contactProbabilties. This line recreates the
+ * same data object as was overwritten with the contact probabilites data.
+ */
+ if (data == null)
+ data = compbio.data.sequence.RNAStructReader
+ .newEmptyScore(AlifoldResult.consensusAlignment);
+
+ if (descriptionData == null)
+ descriptionData = data;
+
+ String[] typenameAndDescription = constructTypenameAndDescription(descriptionData
+ .first());
+ String typename = typenameAndDescription[0];
+ String description = typenameAndDescription[1];
+
+ AlignmentAnnotation annotation = alignViewport.getAlignment()
+ .findOrCreateAnnotation(typename, calcId, false, null, null);
+
+ constructAnnotationFromScoreHolder(annotation, struct, data);
+
+ /*
+ * update annotation description with the free Energy, frequency in ensemble
+ * or other data where appropriate.
+ *
+ * Doesnt deal with AlifoldResult.ensembleValues, the free energy of
+ * ensemble and frequency of mfe structure in ensemble. How to deal with
+ * these?
+ */
+ annotation.description = description;
+
+ annotation.belowAlignment = false;
+ // annotation.showAllColLabels = true;
+
+ alignViewport.getAlignment().validateAnnotation(annotation);
+ af.setMenusForViewport();
+
+ ourAnnot.add(annotation);
+ }
+
+ private AlignmentAnnotation constructAnnotationFromScoreHolder(
+ AlignmentAnnotation annotation, String struct, TreeSet<Score> data)
+ {
+ Annotation[] anns = new Annotation[struct.length()];
+
+ if (data != null
+ && data.size() > 1
+ && data.first().getMethod()
+ .equals(AlifoldResult.contactProbabilities.toString()))
+ {
+
+ // The base pair probabilities are stored in a set in scoreholder. we want
+ // a map
+ LinkedHashMap<Range, Float> basePairs = new LinkedHashMap<Range, Float>();
+ for (Score score : data)
+ {
+ // The Score objects contain a set of size one containing the range and
+ // an ArrayList<float> of size one containing the probabilty
+ basePairs.put(score.getRanges().first(), new Float(score
+ .getScores().get(0)));
+ }
+
+ for (int i = 0,ri=0,iEnd=struct.length();i<iEnd; i++,ri++)
+ {
+ if (gapMap!=null)
+ {
+ // skip any gapped columns in the input data
+ while (!gapMap[ri])
+ {
+ ri++;
+ }
+ }
+ // Return all the contacts associated with position i
+ LinkedHashMap<Range, Float> contacts = isContact(basePairs, i + 1);
+
+ String description = "";
+ float prob = 0f;
+
+ if (contacts.size() == 0)
+ {
+ description = "No Data";
+ }
+ else
+ {
+ for (Range contact : contacts.keySet())
+ {
+ float t = contacts.get(contact);
+ if (t > prob)
+ prob = t;
+ description += Integer.toString(contact.from) + "->"
+ + Integer.toString(contact.to) + ": "
+ + Float.toString(t) + "% | ";
+ }
+ }
+
+ anns[ri] = new Annotation(struct.substring(i, i + 1), description,
+ isSS(struct.charAt(i)), prob);
+ }
+ }
+ else if (data == null || data.size() == 1)
+ {
+ for (int i = 0,ri=0,iEnd=struct.length();i<iEnd; i++,ri++)
+ {
+ if (gapMap!=null)
+ {
+ // skip any gapped columns in the input data
+ while (!gapMap[ri])
+ {
+ ri++;
+ }
+ }
+ anns[ri] = new Annotation(struct.substring(i, i + 1), "",
+ isSS(struct.charAt(i)), Float.NaN);
+ }
+
+ annotation.graph = 0; // No graph
+ }
+
+ annotation.annotations = anns;
+
+ return annotation;
+ }
+
+ private String[] constructTypenameAndDescription(Score score)
+ {
+ String description = "";
+ String typename = "";
+ String datatype = score.getMethod();
+
+ // Look up java switch syntax and use one here
+ if (datatype.equals(AlifoldResult.mfeStructure.toString()))
+ {
+
+ description = MessageFormat.format(
+ "Minimum Free Energy Structure. Energy: {0} = {1} + {2}",
+ score.getScores().get(0), score.getScores().get(1), score
+ .getScores().get(2));
+ typename = "MFE Structure";
+ }
+ else if (datatype.equals(AlifoldResult.contactProbabilityStructure
+ .toString()))
+ {
+ description = MessageFormat
+ .format("Base Pair Contact Probabilities. "
+ + "Energy of Ensemble: {0} Frequency of Ensemble: {1}",
+ score.getScores().get(0), score.getScores().get(1));
+ typename = "Contact Probabilities";
+ }
+ else if (datatype.equals(AlifoldResult.centroidStructure.toString()))
+ {
+ description = MessageFormat.format(
+ "Centroid Structure. Energy: {0} = {1} + {2}", score
+ .getScores().get(0), score.getScores().get(1), score
+ .getScores().get(2));
+ typename = "Centroid Structure";
+ }
+ else if (datatype.equals(AlifoldResult.stochBTStructure.toString()))
+ {
+ if (score.getScores().size() > 0)
+ {
+ description = MessageFormat.format("Probability: {0} Energy: {1}",
+ score.getScores().get(0), score.getScores().get(1));
+ }
+ else
+ description = "Stochastic Backtrack Structure";
+ }
+ else if (datatype.equals(AlifoldResult.MEAStucture.toString()))
+ {
+ description = MessageFormat.format(
+ "Maximum Expected Accuracy Values: '{' {0} MEA={1} '}", score
+ .getScores().get(0), score.getScores().get(1));
+ typename = "MEA Structure";
+ }
+ else if (datatype.equals(AlifoldResult.consensusAlignment.toString()))
+ {
+ typename = "RNAalifold Consensus";
+ description = "Consensus Alignment Produced by RNAalifold";
+ }
+ else
+ {
+ typename = datatype;
+ description = typename;
+ }
+
+ return new String[]
+ { typename, description };
+ }
+
+ // Check whether, at position i there is a base contact and return all the
+ // contacts at this position. Should be in order of descending probability.
+ private LinkedHashMap<Range, Float> isContact(
+ LinkedHashMap<Range, Float> basePairs, int i)
+ {
+ LinkedHashMap<Range, Float> contacts = new LinkedHashMap<Range, Float>();
+
+ for (Range contact : basePairs.keySet())
+ {
+ // finds the contacts associtated with position i ordered by the natural
+ // ordering of the Scores TreeSet in ScoreManager which is, descending
+ // probability
+ if (contact.from == i || contact.to == i)
+ contacts.put(contact, basePairs.get(contact));
+ }
+
+ return contacts;
+ }
+
+ private char isSS(char chr)
+ {
+ String regex = "\\(|\\)|\\{|\\}|\\[|\\]";
+ char ss = (Pattern.matches(regex, Character.toString(chr))) ? 'S' : ' ';
+ return ss;
+ }
+}
import jalview.ws.jws2.dm.AAConSettings;
import jalview.ws.jws2.jabaws2.Jws2Instance;
import jalview.ws.params.WsParamSetI;
+import jalview.ws.uimodel.AlignAnalysisUIText;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
*/
public class SequenceAnnotationWSClient extends Jws2Client
{
-
- public static final String AAConCalcId = "jabaws2.AACon";
-
/**
* initialise a client so its attachWSMenuEntry method can be called.
*/
initSequenceAnnotationWSClient(sh, alignFrame, preset, editParams);
}
+ // dan think. Do I need to change this method to run RNAalifold through the GUI
+
public void initSequenceAnnotationWSClient(final Jws2Instance sh,
AlignFrame alignFrame, WsParamSetI preset, boolean editParams)
{
- if (alignFrame.getViewport().getAlignment().isNucleotide())
- {
- JOptionPane.showMessageDialog(Desktop.desktop, sh.serviceType
- + " can only be used\nfor amino acid alignments.",
- "Wrong type of sequences!", JOptionPane.WARNING_MESSAGE);
- return;
-
- }
- if (sh.action.toLowerCase().contains("conservation"))
+ // dan changed! dan test. comment out if conditional
+// if (alignFrame.getViewport().getAlignment().isNucleotide())
+// {
+// JOptionPane.showMessageDialog(Desktop.desktop, sh.serviceType
+// + " can only be used\nfor amino acid alignments.",
+// "Wrong type of sequences!", JOptionPane.WARNING_MESSAGE);
+// return;
+//
+// }
+ AlignAnalysisUIText aaui = sh.getAlignAnalysisUI();
+ if (aaui!=null)
{
+ Class clientClass = aaui.getClient();
+
// Build an AACon style client - take alignment, return annotation for
// columns
List<AlignCalcWorkerI> clnts = alignFrame.getViewport()
.getCalcManager()
- .getRegisteredWorkersOfClass(AAConClient.class);
+ .getRegisteredWorkersOfClass(clientClass);
+ JabawsAlignCalcWorker worker;
if (clnts == null || clnts.size() == 0)
{
if (!processParams(sh, editParams))
{
return;
}
- AAConClient worker;
+ try {
+ worker = (JabawsAlignCalcWorker) (clientClass.getConstructor(
+ new Class[] { Jws2Instance.class,
+ AlignFrame.class, WsParamSetI.class,
+ List.class }).newInstance(new Object[] { sh, alignFrame, this.preset, paramset}));
+ } catch (Exception x)
+ {
+ x.printStackTrace();
+ throw new Error("Implementation error",x);
+ }
alignFrame
.getViewport()
.getCalcManager()
.registerWorker(
- worker = new AAConClient(sh, alignFrame,
- this.preset, paramset));
+ worker);
alignFrame.getViewport().getCalcManager().startWorker(worker);
}
else
{
- AAConClient worker = (AAConClient) clnts.get(0);
+ worker = (JabawsAlignCalcWorker) clnts.get(0);
if (editParams)
{
paramset = worker.getArguments();
// invalid parameters)
alignFrame.getViewport().getCalcManager().workerMayRun(worker);
worker.updateParameters(this.preset, paramset);
-
}
}
if (sh.action.toLowerCase().contains("disorder"))
.startWorker(
new AADisorderClient(sh, alignFrame, preset, paramset));
}
-
}
public SequenceAnnotationWSClient(AAConSettings fave,
public void attachWSMenuEntry(JMenu wsmenu, final Jws2Instance service,
final AlignFrame alignFrame)
{
- if (service.serviceType.equals(compbio.ws.client.Services.AAConWS
- .toString()))
- {
- registerAAConWSInstance(wsmenu, service, alignFrame);
+ if (registerAAConWSInstance(wsmenu, service, alignFrame)) {
+ // Alignment dependent analysis calculation WS gui
return;
}
boolean hasparams = service.hasParameters();
}
}
- private final String AAconToggle = "AACon Calculations",
- AAconToggleTooltip = "When checked, AACon calculations are updated automatically.",
- AAeditSettings = "Change AACon Settings...",
- AAeditSettingsTooltip = "Modify settings for AACon calculations.";
-
- private void registerAAConWSInstance(final JMenu wsmenu,
+
+ private boolean registerAAConWSInstance(final JMenu wsmenu,
final Jws2Instance service, final AlignFrame alignFrame)
{
- // register this in the AACon settings set
+ final AlignAnalysisUIText aaui = service.getAlignAnalysisUI(); // null ; // AlignAnalysisUIText.aaConGUI.get(service.serviceType.toString());
+ if (aaui==null)
+ {
+ // not an instantaneous calculation GUI type service
+ return false;
+ }
+ // create the instaneous calculation GUI bits and update state if existing GUI elements already present
+
JCheckBoxMenuItem _aaConEnabled = null;
for (int i = 0; i < wsmenu.getItemCount(); i++)
{
JMenuItem item = wsmenu.getItem(i);
if (item instanceof JCheckBoxMenuItem
- && item.getText().equals(AAconToggle))
+ && item.getText().equals(aaui.getAAconToggle()))
{
_aaConEnabled = (JCheckBoxMenuItem) item;
}
{
List<AlignCalcWorkerI> aaconClient = alignFrame.getViewport()
.getCalcManager()
- .getRegisteredWorkersOfClass(AAConClient.class);
+ .getRegisteredWorkersOfClass(aaui.getClient());
if (aaconClient != null && aaconClient.size() > 0)
{
- AAConClient worker = (AAConClient) aaconClient.get(0);
+ JabawsAlignCalcWorker worker = (JabawsAlignCalcWorker) aaconClient.get(0);
if (!worker.service.hosturl.equals(service.hosturl))
{
// javax.swing.SwingUtilities.invokeLater(new Runnable()
// @Override
// public void run()
{
- removeCurrentAAConWorkerFor(alignFrame);
- buildCurrentAAConWorkerFor(alignFrame, service);
+ removeCurrentAAConWorkerFor(aaui, alignFrame);
+ buildCurrentAAConWorkerFor(aaui, alignFrame, service);
}
}// );
}
if (_aaConEnabled == null)
{
final JCheckBoxMenuItem aaConEnabled = new JCheckBoxMenuItem(
- AAconToggle);
- wsmenu.addMenuListener(new MenuListener()
- {
+ aaui.getAAconToggle());
+ aaConEnabled.setToolTipText("<html><p>"
+ + JvSwingUtils.wrapTooltip(aaui.getAAconToggleTooltip() + "</p>")
+ + "</html>");
+ aaConEnabled.addActionListener(new ActionListener()
+ {
@Override
- public void menuSelected(MenuEvent arg0)
+ public void actionPerformed(ActionEvent arg0)
{
- wsmenu.setEnabled(!alignFrame.getViewport().getAlignment()
- .isNucleotide());
List<AlignCalcWorkerI> aaconClient = alignFrame.getViewport()
.getCalcManager()
- .getRegisteredWorkersOfClass(AAConClient.class);
+ .getRegisteredWorkersOfClass(aaui.getClient());
if (aaconClient != null && aaconClient.size() > 0)
{
- aaConEnabled.setSelected(true);
+ removeCurrentAAConWorkerFor(aaui, alignFrame);
}
else
{
- aaConEnabled.setSelected(false);
+ buildCurrentAAConWorkerFor(aaui, alignFrame);
+
}
}
- @Override
- public void menuDeselected(MenuEvent arg0)
- {
- // TODO Auto-generated method stub
-
- }
+ });
+ wsmenu.add(aaConEnabled);
+ final JMenuItem modifyParams = new JMenuItem(aaui.getAAeditSettings());
+ modifyParams.setToolTipText("<html><p>"
+ + JvSwingUtils.wrapTooltip(aaui.getAAeditSettingsTooltip() + "</p>")
+ + "</html>");
+ modifyParams.addActionListener(new ActionListener()
+ {
@Override
- public void menuCanceled(MenuEvent arg0)
+ public void actionPerformed(ActionEvent arg0)
{
- // TODO Auto-generated method stub
-
+ showAAConAnnotationSettingsFor(aaui, alignFrame);
}
});
- aaConEnabled.setToolTipText("<html><p>"
- + JvSwingUtils.wrapTooltip(AAconToggleTooltip + "</p>")
- + "</html>");
- aaConEnabled.addActionListener(new ActionListener()
+ wsmenu.add(modifyParams);
+ wsmenu.addMenuListener(new MenuListener()
{
+
@Override
- public void actionPerformed(ActionEvent arg0)
+ public void menuSelected(MenuEvent arg0)
{
+ // TODO: refactor to the implementing class.
+ if (alignFrame.getViewport().getAlignment()
+ .isNucleotide() ? aaui.isNa() : aaui.isPr()) {
+ aaConEnabled.setEnabled(true);
+ modifyParams.setEnabled(true);
+ }
+ else {
+ aaConEnabled.setEnabled(false);
+ modifyParams.setEnabled(false);
+ }
List<AlignCalcWorkerI> aaconClient = alignFrame.getViewport()
.getCalcManager()
- .getRegisteredWorkersOfClass(AAConClient.class);
+ .getRegisteredWorkersOfClass(aaui.getClient());
if (aaconClient != null && aaconClient.size() > 0)
{
- removeCurrentAAConWorkerFor(alignFrame);
+ aaConEnabled.setSelected(true);
}
else
{
- buildCurrentAAConWorkerFor(alignFrame);
-
+ aaConEnabled.setSelected(false);
}
}
- });
- wsmenu.add(aaConEnabled);
- JMenuItem modifyParams = new JMenuItem(AAeditSettings);
- modifyParams.setToolTipText("<html><p>"
- + JvSwingUtils.wrapTooltip(AAeditSettingsTooltip + "</p>")
- + "</html>");
- modifyParams.addActionListener(new ActionListener()
- {
+ @Override
+ public void menuDeselected(MenuEvent arg0)
+ {
+ // TODO Auto-generated method stub
+
+ }
@Override
- public void actionPerformed(ActionEvent arg0)
+ public void menuCanceled(MenuEvent arg0)
{
- showAAConAnnotationSettingsFor(alignFrame);
+ // TODO Auto-generated method stub
+
}
});
- wsmenu.add(modifyParams);
}
+ return true;
}
- private static void showAAConAnnotationSettingsFor(AlignFrame alignFrame)
+ private static void showAAConAnnotationSettingsFor(final AlignAnalysisUIText aaui, AlignFrame alignFrame)
{
/*
* preferred settings Whether AACon is automatically recalculated Which
*/
// could actually do a class search for this too
AAConSettings fave = (AAConSettings) alignFrame.getViewport()
- .getCalcIdSettingsFor(AAConCalcId);
+ .getCalcIdSettingsFor(aaui.getCalcId());
if (fave == null)
{
- fave = createDefaultAAConSettings();
+ fave = createDefaultAAConSettings(aaui);
}
new SequenceAnnotationWSClient(fave, alignFrame, true);
}
- private static void buildCurrentAAConWorkerFor(AlignFrame alignFrame)
+ private static void buildCurrentAAConWorkerFor(final AlignAnalysisUIText aaui, AlignFrame alignFrame)
{
- buildCurrentAAConWorkerFor(alignFrame, null);
+ buildCurrentAAConWorkerFor(aaui, alignFrame, null);
}
- private static void buildCurrentAAConWorkerFor(AlignFrame alignFrame,
+ private static void buildCurrentAAConWorkerFor(final AlignAnalysisUIText aaui, AlignFrame alignFrame,
Jws2Instance service)
{
/*
* AACon server to use What parameters to use
*/
AAConSettings fave = (AAConSettings) alignFrame.getViewport()
- .getCalcIdSettingsFor(AAConCalcId);
+ .getCalcIdSettingsFor(aaui.getCalcId());
if (fave == null)
{
- fave = createDefaultAAConSettings(service);
+ fave = createDefaultAAConSettings(aaui, service);
}
else
{
new SequenceAnnotationWSClient(fave, alignFrame, false);
}
- private static AAConSettings createDefaultAAConSettings()
+ private static AAConSettings createDefaultAAConSettings(AlignAnalysisUIText aaui)
{
- return createDefaultAAConSettings(null);
+ return createDefaultAAConSettings(aaui, null);
}
- private static AAConSettings createDefaultAAConSettings(
+ private static AAConSettings createDefaultAAConSettings(AlignAnalysisUIText aaui,
Jws2Instance service)
{
if (service != null)
{
// get the default service for AACon
service = Jws2Discoverer.getDiscoverer().getPreferredServiceFor(null,
- compbio.ws.client.Services.AAConWS.toString());
+ aaui.getServiceType());
}
if (service == null)
{
return new AAConSettings(true, service, null, null);
}
- private static void removeCurrentAAConWorkerFor(AlignFrame alignFrame)
+ private static void removeCurrentAAConWorkerFor(AlignAnalysisUIText aaui, AlignFrame alignFrame)
{
alignFrame.getViewport().getCalcManager()
- .removeRegisteredWorkersOfClass(AAConClient.class);
+ .removeRegisteredWorkersOfClass(aaui.getClient());
}
}
import jalview.ws.jws2.ParameterUtils;
import jalview.ws.params.OptionI;
+import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;
@Override
public URL getFurtherDetails()
{
- return opt.getFurtherDetails();
+ try {
+ return new URL(opt.getBasicURL().toExternalForm()+"/"+opt.getFurtherDetails());
+ }
+ catch (NullPointerException q) {}
+ catch (MalformedURLException q)
+ {
+
+ }
+ return null;
}
@Override
public String docUrl;
+ /**
+ *
+ * @param hosturl Service endpoint
+ * @param serviceType Category for this service's analysis
+ * @param action text describing their action that service performs (eg 'aligning', 'analysing')
+ * @param description Description from JABAWS registry
+ * @param service JABAWS registry ID for service
+ */
public Jws2Instance(String hosturl, String serviceType, String action,
String description, JABAService service)
{
: null));
} catch (Exception ex)
{
+ System.err.println("Unexpected exception creating JabaParamStore.");
+ ex.printStackTrace();
}
}
{
return "java:" + serviceType;
}
+ jalview.ws.uimodel.AlignAnalysisUIText aaui;
+ public jalview.ws.uimodel.AlignAnalysisUIText getAlignAnalysisUI()
+ {
+ return aaui;
+ }
}
--- /dev/null
+package jalview.ws.jws2.jabaws2;
+
+import java.util.HashMap;
+
+import compbio.data.msa.JABAService;
+
+import jalview.ws.jws2.AAConClient;
+import jalview.ws.jws2.RNAalifoldClient;
+import jalview.ws.uimodel.AlignAnalysisUIText;
+
+public class Jws2InstanceFactory
+{
+ private static HashMap<String, AlignAnalysisUIText> aaConGUI;
+ private static String category_rewrite(String cat_name)
+ {
+ return (cat_name != null && cat_name.equals("Prediction")) ? "Secondary Structure Prediction" : cat_name;
+ }
+ private static void init()
+ {
+ if (aaConGUI == null)
+ {
+ aaConGUI = new HashMap<String, AlignAnalysisUIText>();
+ aaConGUI.put(compbio.ws.client.Services.AAConWS.toString(),
+ AAConClient.getAlignAnalysisUITest());
+ aaConGUI.put(compbio.ws.client.Services.RNAalifoldWS.toString(),
+ RNAalifoldClient.getAlignAnalysisUITest());
+ }
+ }
+
+ /**
+ * construct a service instance and configure it with any additional
+ * properties needed so Jalview can access it correctly
+ *
+ * @param jwsservers
+ * @param serviceType
+ * @param name
+ * @param description
+ * @param service
+ * @return
+ */
+ public static Jws2Instance newJws2Instance(String jwsservers,
+ String serviceType, String name, String description,
+ JABAService service)
+ {
+ init();
+ Jws2Instance svc = new Jws2Instance(jwsservers, serviceType, category_rewrite(name),
+ description, service);
+
+ svc.aaui = aaConGUI.get(serviceType.toString());
+ return svc;
+ }
+
+}
public RestClient(RestServiceDescription service2, AlignFrame alignFrame)
{
+ this(service2, alignFrame, false);
+ }
+ boolean headless = false;
+ public RestClient(RestServiceDescription service2, AlignFrame alignFrame, boolean nogui)
+ {
service = service2;
af = alignFrame;
av = alignFrame.getViewport();
+ headless = nogui;
constructJob();
}
* informative name for results
*/
public String viewTitle;
-
protected void constructJob()
{
service.setInvolvesFlags();
if (jobsthread.isValid())
{
- setWebserviceInfo(false);
- wsInfo.setthisService(this);
- jobsthread.setWebServiceInfo(wsInfo);
+ setWebserviceInfo(headless);
+ if (!headless) {
+ wsInfo.setthisService(this);
+ jobsthread.setWebServiceInfo(wsInfo);
+ }
jobsthread.start();
}
else
// get sequences for the alignmentI
// get groups trimmed to alignment columns
// get any annotation trimmed to start/end columns, too.
-
+ squniq = jalview.analysis.SeqsetUtils.uniquify(_input.getSequencesArray(), true);
// prepare input
// form alignment+groups+annotation,preprocess and then record references
// for formatters
ArrayList<InputType> alinp = new ArrayList<InputType>();
int paramsWithData = 0;
+ // TODO: JAL-715 - generalise the following validation logic for all parameter types
// we cheat for moment - since we know a-priori what data is available and
// what inputs we have implemented so far
for (Map.Entry<String, InputType> prm : rsd.inputParams.entrySet())
}
else
{
- // TODO: move validation of input data to SeqGroupIndexVector
- if ((prm.getValue() instanceof SeqGroupIndexVector)
- && (_input.getGroups() != null && _input.getGroups()
- .size() >= prm.getValue().min))
+ if (prm.getValue() instanceof SeqGroupIndexVector
+ && _input.getGroups() != null
+ && _input.getGroups().size() >= -1 + prm.getValue().min)
{
+ // the test above is not rigorous but fixes JAL-1298, since submission will fail if the partition set doesn't contain at least one partition
alinp.add(prm.getValue());
}
else
return valid;
}
- public static void main(String argv[])
- {
- // test separator list
- try
- {
- assert (separatorListToArray("foo=',',min='foo',max='1,2,3',fa=','",
- ",").length == 4);
- if (separatorListToArray("minsize='2', sep=','", ",").length == 2)
- {
- assert (false);
- }
-
- } catch (AssertionError x)
- {
- System.err.println("separatorListToArray is faulty.");
- }
- if (argv.length == 0)
- {
- if (!testRsdExchange("Test using default Shmmr service",
- RestClient.makeShmmrRestClient().service))
- {
- System.err.println("default test failed.");
- }
- else
- {
- System.err.println("default test passed.");
- }
- }
- else
- {
- int i = 0, p = 0;
- for (String svc : argv)
- {
- p += testRsdExchange("Test " + (++i), svc) ? 1 : 0;
- }
- System.err.println("" + p + " out of " + i + " tests passed.");
-
- }
- }
-
- private static boolean testRsdExchange(String desc, String servicestring)
- {
- try
- {
- RestServiceDescription newService = new RestServiceDescription(
- servicestring);
- if (!newService.isValid())
- {
- throw new Error("Failed to create service from '" + servicestring
- + "'.\n" + newService.getInvalidMessage());
- }
- return testRsdExchange(desc, newService);
- } catch (Throwable x)
- {
- System.err.println("Failed for service (" + desc + "): "
- + servicestring);
- x.printStackTrace();
- return false;
- }
- }
-
- private static boolean testRsdExchange(String desc,
- RestServiceDescription service)
- {
- try
- {
- String fromservicetostring = service.toString();
- RestServiceDescription newService = new RestServiceDescription(
- fromservicetostring);
- if (!newService.isValid())
- {
- throw new Error("Failed to create service from '"
- + fromservicetostring + "'.\n"
- + newService.getInvalidMessage());
- }
-
- if (!service.equals(newService))
- {
- System.err.println("Failed for service (" + desc + ").");
- System.err.println("Original service and parsed service differ.");
- System.err.println("Original: " + fromservicetostring);
- System.err.println("Parsed : " + newService.toString());
- return false;
- }
- } catch (Throwable x)
- {
- System.err.println("Failed for service (" + desc + "): "
- + service.toString());
- x.printStackTrace();
- return false;
- }
- return true;
- }
-
/**
* covenience method to generate the id and sequence string vector from a set
* of seuqences using each sequence's getName() and getSequenceAsString()
// assume that alignment is properly ordered so groups form consecutive
// blocks
ArrayList<int[]> gl = new ArrayList<int[]>();
- int p = 0;
+ int p = 0,lowest=al.getHeight(), highest=0;
List<SequenceGroup> sgs;
synchronized (sgs = al.getGroups())
{
for (SequenceI sq : sg.getSequencesInOrder(al))
{
p = al.findIndex(sq);
+ if (lowest>p)
+ {
+ lowest=p;
+ }
+ if (highest<p)
+ {
+ highest=p;
+ }
if (se == null)
{
se = new int[]
// remaining group ? - these might be at the start or the end
if (gl.size() > 0)
{
- int[] tail = gl.get(0);
- if (tail[0] > 0)
+ if (lowest-1>minsize)
{
- if (1 + tail[0] > minsize)
- {
- gl.add(0, new int[]
- { 0, tail[0] - 1 });
- }
- else
- {
- // lets be intelligent here - if the remaining sequences aren't enough
- // to make a final group, then don't make one.
- // throw new
- // NoValidInputDataException("Group from remaining ungrouped sequences in input contains less than "+minsize+" sequences.");
- }
+ gl.add(0, new int[]
+ { 0, lowest-2});
}
- else
+ if ((al.getHeight()-1-highest)>minsize)
{
- tail = gl.get(gl.size() - 1);
- if (1 + tail[1] < al.getHeight())
- {
- if (al.getHeight() - (1 + tail[1]) > minsize)
- {
- gl.add(new int[]
- { tail[1] + 1, al.getHeight() - 1 });
- }
- else
- {
- // lets be intelligent here - if the remaining sequences aren't
- // enough to make a final group, then don't make one.
- // throw new
- // NoValidInputDataException("Group from remaining ungrouped sequences in input contains less than "+minsize+" sequences.");
- }
- }
+ gl.add(new int[] { highest+1, al.getHeight()-1});
}
}
else
DbSourceProxy[] l = dblist.values().toArray(new DbSourceProxy[0]);
int i = 0;
String[] nm = new String[l.length];
+ // make sure standard dbs appear first, followed by reference das sources, followed by anything else.
for (DbSourceProxy s : l)
{
- nm[i++] = s.getDbName().toLowerCase();
+ nm[i++] = ""+s.getTier()+s.getDbName().toLowerCase();
}
jalview.util.QuickSort.sort(nm, l);
dbs = new ArrayList<DbSourceProxy>();
* @return true if the source has this property
*/
public boolean isA(Object dbsourceproperty);
+
+ /**
+ * Tier for this data source
+ *
+ * @return 0 - primary datasource, 1 - das primary source, 2 - secondary
+ */
+ public int getTier();
}
--- /dev/null
+package jalview.ws.uimodel;
+
+import java.util.HashMap;
+
+public class AlignAnalysisUIText
+{
+
+ private String serviceType;
+
+ public String getServiceType()
+ {
+ return serviceType;
+ }
+
+ private Class client;
+
+ private String calcId;
+
+ public String getCalcId()
+ {
+ return calcId;
+ }
+
+ private String AAconToggle, AAconToggleTooltip, AAeditSettings,
+ AAeditSettingsTooltip;
+
+ private boolean isNa;
+
+ public boolean isNa()
+ {
+ return isNa;
+ }
+
+ public boolean isPr()
+ {
+ return isPr;
+ }
+
+ public boolean isAA()
+ {
+ return isAA;
+ }
+
+ private boolean isPr;
+
+ private boolean isAA;
+
+ public AlignAnalysisUIText(String serviceType, Class<?> client,
+ String calcId, boolean acceptNucl, boolean acceptProt,
+ boolean acceptGaps, String toggle, String toggleTooltip,
+ String settings, String settingsTooltip)
+ {
+ this.serviceType = serviceType;
+ this.calcId = calcId;
+ isNa = acceptNucl;
+ isPr = acceptProt;
+ isAA = acceptGaps;
+ this.client = client;
+ this.AAconToggle = toggle;
+ this.AAconToggleTooltip = toggleTooltip;
+ this.AAeditSettings = settings;
+ this.AAeditSettingsTooltip = settingsTooltip;
+ }
+
+ public Class getClient()
+ {
+ return client;
+ }
+
+ public void setClient(Class client)
+ {
+ this.client = client;
+ }
+
+ public String getAAconToggle()
+ {
+ return AAconToggle;
+ }
+
+ public void setAAconToggle(String aAconToggle)
+ {
+ AAconToggle = aAconToggle;
+ }
+
+ public String getAAconToggleTooltip()
+ {
+ return AAconToggleTooltip;
+ }
+
+ public void setAAconToggleTooltip(String aAconToggleTooltip)
+ {
+ AAconToggleTooltip = aAconToggleTooltip;
+ }
+
+ public String getAAeditSettings()
+ {
+ return AAeditSettings;
+ }
+
+ public void setAAeditSettings(String aAeditSettings)
+ {
+ AAeditSettings = aAeditSettings;
+ }
+
+ public String getAAeditSettingsTooltip()
+ {
+ return AAeditSettingsTooltip;
+ }
+
+ public void setAAeditSettingsTooltip(String aAeditSettingsTooltip)
+ {
+ AAeditSettingsTooltip = aAeditSettingsTooltip;
+ }
+
+}
\ No newline at end of file
--- /dev/null
+package jalview.analysis;
+
+import static org.junit.Assert.*;
+import jalview.datamodel.ColumnSelection;
+
+import java.io.IOException;
+
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+public class DnaTranslation
+{
+
+ private static String JAL_1312_example_align_fasta = ">B.FR.83.HXB2_LAI_IIIB_BRU_K03455/45-306\n"
+ + "ATGGGAAAAAATTCGGTTAAGGCCAGGGGGAAAGAAAAAATATAAATTAAAACATATAGTATGGGCAAGCAG\n"
+ + "GGAGCTAGAACGATTCGCAGTTAATCCTGGCCTGTTAGAAACATCAGAAGGCTGTAGACAAATACTGGGACA\n"
+ + "GCTACAACCATCCCTTCAGACAGGATCAGAAGAACTTAGATCATTATATAATACAGTAGCAACCCTCTATTG\n"
+ + "TGTGCATCAAAGGATAGAGATAAAAGACACCAAGGAAGCTTTAGAC\n"
+ + ">gi|27804621|gb|AY178912.1|/1-259\n"
+ + "-TGGGAGAA-ATTCGGTT-CGGCCAGGGGGAAAGAAAAAATATCAGTTAAAACATATAGTATGGGCAAGCAG\n"
+ + "AGAGCTAGAACGATTCGCAGTTAACCCTGGCCTTTTAGAGACATCACAAGGCTGTAGACAAATACTGGGACA\n"
+ + "GCTACAACCATCCCTTCAGACAGGATCAGAAGAACTTAAATCATTATATAATACAGTAGCAACCCTCTATTG\n"
+ + "TGTTCATCAAAGGATAGATATAAAAGACACCAAGGAAGCTTTAGAT\n"
+ + ">gi|27804623|gb|AY178913.1|/1-259\n"
+ + "-TGGGAGAA-ATTCGGTT-CGGCCAGGGGGAAAGAAAAAATATCAGTTAAAACATATAGTATGGGCAAGCAG\n"
+ + "AGAGCTAGAACGATTCGCAGTTAACCCTGGCCTTTTAGAGACATCACAAGGCTGTAGACAAATACTGGAACA\n"
+ + "GCTACAACCATCCCTTCAGACAGGATCAGAAGAACTTAAATCATTATATAATACAGTAGCAACCCTCTATTG\n"
+ + "TGTTCATCAAAGGATAGATGTAAAAGACACCAAGGAAGCTTTAGAT\n"
+ + ">gi|27804627|gb|AY178915.1|/1-260\n"
+ + "-TGGGAAAA-ATTCGGTTAAGGCCAGGGGGAAAGAAAAAATATAAGTTAAAACATATAGTATGGGCAAGCAG\n"
+ + "GGAGCTAGAACGATTCGCAGTTAACCCTGGCCTGTTAGAAACATCAGAAGGTTGTAGACAAATATTGGGACA\n"
+ + "GCTACAACCATCCCTTGAGACAGGATCAGAAGAACTTAAATCATTATWTAATACCATAGCAGTCCTCTATTG\n"
+ + "TGTACATCAAAGGATAGATATAAAAGACACCAAGGAAGCTTTAGAG\n"
+ + ">gi|27804631|gb|AY178917.1|/1-261\n"
+ + "-TGGGAAAAAATTCGGTTGAGGCCAGGGGGAAAGAAAAAATATAAGTTAAAACATATAGTATGGGCAAGCAG\n"
+ + "GGAGCTAGAACGATTCGCAGTCAACCCTGGCCTGTTAGAAACACCAGAAGGCTGTAGACAAATACTGGGACA\n"
+ + "GCTACAACCGTCCCTTCAGACAGGATCGGAAGAACTTAAATCATTATATAATACAGTAGCAACCCTCTATTG\n"
+ + "TGTGCATCAAAGGATAGATGTAAAAGACACCAAGGAGGCTTTAGAC\n"
+ + ">gi|27804635|gb|AY178919.1|/1-261\n"
+ + "-TGGGAGAGAATTCGGTTACGGCCAGGAGGAAAGAAAAAATATAAATTGAAACATATAGTATGGGCAGGCAG\n"
+ + "AGAGCTAGATCGATTCGCAGTCAATCCTGGCCTGTTAGAAACATCAGAAGGCTGCAGACAGATATTGGGACA\n"
+ + "GCTACAACCGTCCCTTAAGACAGGATCAGAAGAACTTAAATCATTATATAATACAGTAGCAACCCTCTATTG\n"
+ + "TGTACATCAAAGGATAGATGTAAAAGACACCAAGGAAGCTTTAGAT\n"
+ + ">gi|27804641|gb|AY178922.1|/1-261\n"
+ + "-TGGGAGAAAATTCGGTTACGGCCAGGGGGAAAGAAAAGATATAAGTTAAAACATATAGTATGGGCAAGCAG\n"
+ + "GGAGCTAGAACGATTCGCAGTCAACCCTGGCCTGTTAGAAACATCAGAAGGCTGCAGACAAATACTGGGACA\n"
+ + "GTTACACCCATCCCTTCATACAGGATCAGAAGAACTTAAATCATTATATAATACAGTAGCAACCCTCTATTG\n"
+ + "TGTGCATCAAAGGATAGAAGTAAAAGACACCAAGGAAGCTTTAGAC\n"
+ + ">gi|27804647|gb|AY178925.1|/1-261\n"
+ + "-TGGGAAAAAATTCGGTTAAGGCCAGGGGGAAAGAAAAAATATCAATTAAAACATGTAGTATGGGCAAGCAG\n"
+ + "GGAACTAGAACGATTCGCAGTTAATCCTGGCCTGTTAGAAACATCAGAAGGCTGTAGACAAATATTGGGACA\n"
+ + "GCTACAACCATCCCTTCAGACAGGATCAGAGGAACTTAAATCATTATTTAATACAGTAGCAGTCCTCTATTG\n"
+ + "TGTACATCAAAGAATAGATGTAAAAGACACCAAGGAAGCTCTAGAA\n"
+ + ">gi|27804649|gb|AY178926.1|/1-261\n"
+ + "-TGGGAAAAAATTCGGTTAAGGCCAGGGGGAAAGAAAAAATATAAGTTAAAACATATAGTATGGGCAAGCAG\n"
+ + "GGAGCTAGAACGATTCGCGGTCAATCCTGGCCTGTTAGAAACATCAGAAGGCTGTAGACAACTACTGGGACA\n"
+ + "GTTACAACCATCCCTTCAGACAGGATCAGAAGAACTCAAATCATTATATAATACAATAGCAACCCTCTATTG\n"
+ + "TGTGCATCAAAGGATAGAGATAAAAGACACCAAGGAAGCCTTAGAT\n"
+ + ">gi|27804653|gb|AY178928.1|/1-261\n"
+ + "-TGGGAAAGAATTCGGTTAAGGCCAGGGGGAAAGAAACAATATAAATTAAAACATATAGTATGGGCAAGCAG\n"
+ + "GGAGCTAGACCGATTCGCACTTAACCCCGGCCTGTTAGAAACATCAGAAGGCTGTAGACAAATATTGGGACA\n"
+ + "GCTACAATCGTCCCTTCAGACAGGATCAGAAGAACTTAGATCACTATATAATACAGTAGCAGTCCTCTATTG\n"
+ + "TGTGCATCAAAAGATAGATGTAAAAGACACCAAGGAAGCCTTAGAC\n"
+ + ">gi|27804659|gb|AY178931.1|/1-261\n"
+ + "-TGGGAAAAAATTCGGTTACGGCCAGGAGGAAAGAAAAGATATAAATTAAAACATATAGTATGGGCAAGCAG\n"
+ + "GGAGCTAGAACGATTYGCAGTTAATCCTGGCCTTTTAGAAACAGCAGAAGGCTGTAGACAAATACTGGGACA\n"
+ + "GCTACAACCATCCCTTCAGACAGGATCAGAAGAACTTAAATCATTATATAATACAGTAGCAACCCTCTATTG\n"
+ + "TGTACATCAAAGGATAGAGATAAAAGACACCAAGGAAGCTTTAGAA\n";
+
+
+ @Test
+ public void translationWithUntranslatableCodonsTest()
+ {
+ // Corner case for this test is the presence of codons after codons that
+ // were not translated.
+ jalview.datamodel.AlignmentI alf = null;
+ try
+ {
+ alf = new jalview.io.FormatAdapter().readFile(JAL_1312_example_align_fasta,
+ jalview.io.FormatAdapter.PASTE, "FASTA");
+ } catch (IOException x)
+ {
+ x.printStackTrace();
+ fail("Unexpected IOException (" + x.getMessage()
+ + ") - check test environment");
+ }
+ {
+ // full translation
+ ColumnSelection cs = new jalview.datamodel.ColumnSelection();
+ assertNotNull("Couldn't do a full width translation of test data.",
+ jalview.analysis.Dna.CdnaTranslate(
+ alf.getSequencesArray(),
+ cs.getVisibleSequenceStrings(0, alf.getWidth(),
+ alf.getSequencesArray()), new int[]
+ { 0, alf.getWidth() - 1 }, alf.getGapCharacter(),
+ null, alf.getWidth(), null));
+ }
+ int vwidth = 15; // translate in 15 base stretches
+ for (int ipos = 0; ipos + vwidth < alf.getWidth(); ipos += vwidth)
+ {
+ ColumnSelection cs = new jalview.datamodel.ColumnSelection();
+ if (ipos > 0)
+ {
+ cs.hideColumns(0, ipos - 1);
+ }
+ cs.hideColumns(ipos + vwidth, alf.getWidth());
+ int[] vcontigs = cs.getVisibleContigs(0, alf.getWidth());
+ String[] sel = cs.getVisibleSequenceStrings(0, alf.getWidth(),
+ alf.getSequencesArray());
+ jalview.datamodel.AlignmentI transAlf = jalview.analysis.Dna
+ .CdnaTranslate(alf.getSequencesArray(), sel, vcontigs,
+ alf.getGapCharacter(), null, alf.getWidth(), null);
+
+ assertTrue("Translation failed (ipos=" + ipos
+ + ") No alignment data.", transAlf != null);
+ assertTrue("Translation failed (ipos=" + ipos + ") Empty algnment.",
+ transAlf.getHeight() > 0);
+ assertTrue("Translation failed (ipos=" + ipos + ") Translated "
+ + transAlf.getHeight() + " sequences from " + alf.getHeight()
+ + " sequences", alf.getHeight() == transAlf.getHeight());
+ }
+
+ }
+}
--- /dev/null
+package jalview.bin;
+
+import static org.junit.Assert.*;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.InputStreamReader;
+
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+public class CommandLineOperations
+{
+
+ @BeforeClass
+ public static void setUpBeforeClass() throws Exception
+ {
+ }
+
+ @AfterClass
+ public static void tearDownAfterClass() throws Exception
+ {
+ }
+/***
+ * from http://stackoverflow.com/questions/808276/how-to-add-a-timeout-value-when-using-javas-runtime-exec
+ * @author jimp
+ *
+ */
+private static class Worker extends Thread {
+ private final Process process;
+ private Integer exit;
+ private Worker(Process process) {
+ this.process = process;
+ }
+ public void run() {
+ try {
+ exit = process.waitFor();
+ } catch (InterruptedException ignore) {
+ return;
+ }
+ }
+}
+ @Test
+ public void testHeadlessModeEPS() throws Exception
+ {
+ String[] headlessArgs=new String[] { "nodisplay","headless","nogui"};
+ for (String _harg:headlessArgs)
+ {
+ boolean _switch=false,withAwt=false;
+ do {
+ if (_switch)
+ {
+ withAwt=true;
+ }
+ _switch=true;
+ String jalview_input = "examples/uniref50.fa";
+ String jalview_output = "test_uniref50_out.eps";
+ String cmd = "java "+(withAwt ? "-Djava.awt.headless=true":"")+" -Djava.ext.dirs=./lib -classpath ./classes jalview.bin.Jalview -"+_harg+" -open "+ jalview_input + " -eps " + jalview_output;
+ String harg = _harg+(withAwt ? "-Djava.awt.headless=true":" NO AWT.HEADLESS");
+ System.out.println("Testing with Headless argument: '"+harg+"'\n###############Jalview CMD: " + cmd);
+ Process ls2_proc = Runtime.getRuntime().exec(cmd);
+ BufferedReader outputReader = new BufferedReader(new InputStreamReader(ls2_proc.getInputStream()));
+
+ BufferedReader errorReader = new BufferedReader(new InputStreamReader(ls2_proc.getErrorStream()));
+ Worker worker = new Worker(ls2_proc);
+ worker.start();
+ worker.join(9000);
+ System.out.println("Output: ");
+ String ln=null;
+ while ((ln=outputReader.readLine())!=null) {
+ System.out.println(ln);
+ }
+
+ System.out.println("Error: " );
+ while ((ln=errorReader.readLine())!=null) {
+ System.out.println(ln);
+ }
+ assertTrue("Didn't create an output EPS file.["+harg+"]", new File("test_uniref50_out.eps").exists());
+ assertTrue("Didn't create an EPS file with any content["+harg+"]", new File("test_uniref50_out.eps").length()>4096);
+ if (worker.exit == null){
+ worker.interrupt();
+ Thread.currentThread().interrupt();
+ ls2_proc.destroy();
+ fail("Jalview did not exit after EPS generation (try running test again to verify - timeout at 9000ms). ["+harg+"]");
+ }
+ } while (!withAwt);
+ }
+ }
+
+}
--- /dev/null
+package jalview.gui;
+
+import static org.junit.Assert.*;
+import jalview.bin.Cache;
+
+import java.awt.Component;
+import java.awt.Dimension;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseListener;
+
+import javax.swing.JDesktopPane;
+import javax.swing.JFrame;
+import javax.swing.JInternalFrame;
+import javax.swing.JMenu;
+import javax.swing.JMenuItem;
+import javax.swing.JPanel;
+import javax.swing.JTextArea;
+
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+public class JAL1353bugdemo
+{
+
+ @BeforeClass
+ public static void setUpBeforeClass() throws Exception
+ {
+ }
+
+ @AfterClass
+ public static void tearDownAfterClass() throws Exception
+ {
+ }
+ volatile boolean finish=false;
+
+ @Test
+ public void test()
+ {
+ Cache.initLogger();
+ // final Desktop foo = new Desktop();
+ final JFrame cfoo = new JFrame("Crash Java");
+ final JDesktopPane foo=new JDesktopPane();
+ foo.setPreferredSize(new Dimension(600,800));
+ cfoo.setSize(600, 800);
+ final JInternalFrame cont = new JInternalFrame("My Frame");
+ JTextArea evt;
+ cont.setPreferredSize(new Dimension(400, 300));
+ cont.add(evt=new JTextArea("Click here and drag text over this window to freeze java.\n\nThis is a dummy string. See teh dummy string go.\nThis is a dummy string. See teh dummy string go.\nThis is a dummy string. See teh dummy string go.\nThis is a dummy string. See teh dummy string go.\nThis is a dummy string. See teh dummy string go.\nThis is a dummy string. See teh dummy string go.\nThis is a dummy string. See teh dummy string go.\nThis is a dummy string. See teh dummy string go.\nThis is a dummy string. See teh dummy string go.\nThis is a dummy string. See teh dummy string go.\nThis is a dummy string. See teh dummy string go.\nThis is a dummy string. See teh dummy string go.\nThis is a dummy string. See teh dummy string go.\n"));
+ cont.pack();
+ foo.add("A frame",cont);
+ foo.setVisible(true);
+ foo.setEnabled(true);
+ foo.doLayout();
+ cfoo.add(foo);
+ final JMenu jm = new JMenu("Do");
+ JMenuItem jmi=new JMenuItem("this");
+ jm.add(jmi);
+ evt.addMouseListener(new MouseListener()
+ {
+
+ @Override
+ public void mouseReleased(MouseEvent e)
+ {
+ }
+
+ @Override
+ public void mousePressed(MouseEvent e)
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void mouseExited(MouseEvent e)
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void mouseEntered(MouseEvent e)
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void mouseClicked(MouseEvent e)
+ {
+// JFrame parent = new JFrame();
+// parent.setBounds(foo.getBounds());
+// JPanel oo = new JPanel();
+// parent.add(oo);
+// oo.setVisible(true);
+// parent.setVisible(true);
+ EditNameDialog end =new EditNameDialog("Sequence Name", "Sequence Description","label 1", "Label 2", "Try and drag between the two text fields", foo);//);cont.getRootPane());
+ assert(end!=null);
+ finish=true;
+ }
+ });
+ cont.setVisible(true);
+
+ jmi.addActionListener(new ActionListener()
+ {
+
+ @Override
+ public void actionPerformed(ActionEvent arg0)
+ {
+ EditNameDialog end =new EditNameDialog("Sequence Name", "Sequence Description","label 1", "Label 2", "Try and drag between the two text fields", cont);
+ assert(end!=null);
+ finish=true;
+ }
+ });
+ foo.setVisible(true);
+ cfoo.setVisible(true);
+ while (!finish)
+ {
+ try {
+ Thread.sleep(100);
+ } catch (InterruptedException x) {}
+ }
+ }
+
+}
--- /dev/null
+package jalview.io;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+import jalview.datamodel.AlignmentI;
+
+import java.io.File;
+
+import org.junit.Test;
+
+public class AnnotationFileIOTest
+{
+
+ static String TestFiles[][] = {{ "Test example annotation import/export","examples/uniref50.fa", "examples/testdata/example_annot_file.jva" }
+ ,{"Test multiple combine annotation statements import/export","examples/uniref50.fa", "examples/testdata/test_combine_annot.jva"}
+ ,{"Test multiple combine annotation statements with sequence_ref import/export","examples/uniref50.fa", "examples/testdata/uniref50_iupred.jva"}};
+
+ @Test
+ public void exampleAnnotationFileIO() throws Exception
+ {
+ for (String[] testPair:TestFiles)
+ {
+ testAnnotationFileIO(testPair[0], new File(testPair[1]), new File(testPair[2]));
+ }
+ }
+
+ public static AlignmentI readAlignmentFile(File f)
+ {
+ System.out.println("Reading file: " + f);
+ String ff = f.getPath();
+ try
+ {
+ FormatAdapter rf = new FormatAdapter();
+
+ AlignmentI al = rf.readFile(ff, AppletFormatAdapter.FILE,
+ new IdentifyFile().Identify(ff, AppletFormatAdapter.FILE));
+
+ // make sure dataset is initialised ? not sure about this
+ for (int i = 0; i < al.getSequencesArray().length; ++i)
+ {
+ al.getSequenceAt(i).setDatasetSequence(al.getSequenceAt(i).createDatasetSequence());
+ }
+ assertNotNull("Couldn't read supplied alignment data.", al);
+ return al;
+ } catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ fail("Couln't read the alignment in file '"+f.toString()+"'");
+ return null;
+ }
+ /**
+ * test alignment data in given file can be imported, exported and reimported
+ * with no dataloss
+ *
+ * @param f
+ * - source datafile (IdentifyFile.identify() should work with it)
+ * @param ioformat
+ * - label for IO class used to write and read back in the data from
+ * f
+ */
+ public static void testAnnotationFileIO(String testname, File f, File annotFile)
+ {
+ System.out.println("Test: "+testname+"\nReading annotation file '"+annotFile+"' onto : " + f);
+ String af = annotFile.getPath();
+ try
+ {
+ AlignmentI al = readAlignmentFile(f);
+
+ assertTrue("Test "+testname+"\nAlignment was not annotated - annotation file not imported.",new AnnotationFile().readAnnotationFile(al, af, FormatAdapter.FILE));
+
+ String anfileout = new AnnotationFile().printAnnotations(al.getAlignmentAnnotation(), al.getGroups(), al.getProperties());
+ assertTrue("Test "+testname+"\nAlignment annotation file was not regenerated. Null string",anfileout!=null);
+ assertTrue("Test "+testname+"\nAlignment annotation file was not regenerated. Empty string",anfileout.length()>"JALVIEW_ANNOTATION".length());
+
+ System.out.println("Output annotation file:\n"+anfileout+"\n<<EOF\n");
+
+ AlignmentI al_new = readAlignmentFile(f);
+ assertTrue("Test "+testname+"\nregenerated annotation file did not annotate alignment.",new AnnotationFile().readAnnotationFile(al_new, anfileout, FormatAdapter.PASTE));
+
+ // test for consistency in io
+ StockholmFileTest.testAlignmentEquivalence(al, al_new);
+ return;
+ } catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ fail("Test "+testname+"\nCouldn't complete Annotation file roundtrip input/output/input test for '"+annotFile+"'.");
+ }
+}
--- /dev/null
+/**
+ *
+ */
+package jalview.io;
+
+import static org.junit.Assert.*;
+
+import java.io.File;
+import java.io.IOException;
+
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+/**
+ * @author jimp
+ *
+ */
+public class FileIOTester
+{
+
+ /**
+ * @throws java.lang.Exception
+ */
+ @BeforeClass
+ public static void setUpBeforeClass() throws Exception
+ {
+ }
+
+ /**
+ * @throws java.lang.Exception
+ */
+ @AfterClass
+ public static void tearDownAfterClass() throws Exception
+ {
+ }
+ final static File ALIGN_FILE = new File("test/jalview/io/test_gz_fasta.gz");
+ final static File NOTGZALIGN_FILE = new File("test/jalview/io/test_gz_fasta_notgz.gz");
+
+ private void assertValidFasta(String src, FileParse fp)
+ {
+ assertTrue("Couldn't resolve "+src+" as a valid file",fp.isValid());
+ String type = new IdentifyFile().Identify(fp);
+ assertTrue("Gzipped data from '"+src+"' identified as '"+type+"'",type.equalsIgnoreCase("FASTA"));
+ }
+ @Test
+ public void testGzipIo() throws IOException
+ {
+ String uri;
+ FileParse fp = new FileParse(uri=ALIGN_FILE.getAbsoluteFile().toURI().toString(),AppletFormatAdapter.URL);
+ assertValidFasta(uri, fp);
+ }
+
+ @Test
+ public void testGziplocalFileIO() throws IOException
+ {
+ String filepath;
+ FileParse fp = new FileParse(filepath=ALIGN_FILE.getAbsoluteFile().toString(), AppletFormatAdapter.FILE);
+ assertValidFasta(filepath, fp);
+ }
+ @Test
+ public void testNonGzipURLIO() throws IOException
+ {
+ String uri;
+ FileParse fp = new FileParse(uri=NOTGZALIGN_FILE.getAbsoluteFile().toURI().toString(),AppletFormatAdapter.URL);
+ assertValidFasta(uri, fp);
+ }
+ @Test
+ public void testNonGziplocalFileIO() throws IOException
+ {
+ String filepath;
+ FileParse fp = new FileParse(filepath=NOTGZALIGN_FILE.getAbsoluteFile().toString(), AppletFormatAdapter.FILE);
+ assertValidFasta(filepath, fp);
+ }
+}
--- /dev/null
+/**
+ *
+ */
+package jalview.io;
+
+import static org.junit.Assert.*;
+
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.Vector;
+
+import jalview.analysis.NJTree;
+import jalview.analysis.SequenceIdMatcher;
+import jalview.datamodel.SequenceI;
+import jalview.datamodel.SequenceNode;
+
+import org.jmol.util.ArrayUtil;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.junit.runners.Parameterized.Parameters;
+
+/**
+ * @author jimp
+ *
+ */
+@RunWith(Parameterized.class)
+public class NewickFileTests
+{
+
+ @Parameters
+ public static Collection data()
+ {
+ return Arrays
+ .asList(new Object[][]
+ {
+
+ new String[]
+ {
+ "Simple uniref50 newick",
+ "(((FER_BRANA:128.0,FER3_RAPSA:128.0):50.75,FER_CAPAA:178.75):121.94443,(Q93Z60_ARATH:271.45456,((O80429_MAIZE:183.0,FER1_MAIZE:183.0):30.5,((Q7XA98_TRIPR:90.0,FER1_PEA:90.0):83.32143,(((FER2_ARATH:64.0,FER1_ARATH:64.0):94.375,(FER1_SPIOL:124.5,FER1_MESCR:124.5):33.875):6.4166718,((Q93XJ9_SOLTU:33.5,FER1_SOLLC:33.5):49.0,FER_CAPAN:82.5):82.29167):8.529755):40.178574):57.95456):29.239868);" },
+ new String[]
+ {
+ "Tree with quotes",
+ "('Syn_PROSU-1_IIh_3d(CA4)|CK_Syn_PROSU-1_1907':1.0638313,'Syn_MINOS11_5.3_3d(CA4)|CK_Syn_MINOS11_750':1.063831);" },
+ new String[]
+ {
+ "Tree with double escaped comma in node",
+ "('Syn_PROSU-1_IIh_3d(CA4)|CK_Syn_PROSU-1_1907':1.0638313,'Syn_MINOS11_5.3_3d(CA4)''|CK_Syn_MINOS11_750':1.063831);" } });
+ };
+
+ String name, testTree;
+
+ public NewickFileTests(String _name, String _testTree)
+ {
+ this.name = _name;
+ this.testTree = _testTree;
+ }
+
+ /**
+ * @throws java.lang.Exception
+ */
+ @BeforeClass
+ public static void setUpBeforeClass() throws Exception
+ {
+ }
+
+ @Test
+ public void testTreeIO() throws Exception
+ {
+ String stage = "Init", treename = " '" + name + "' :";
+ try
+ {
+ stage = "Parsing testTree " + treename;
+ System.out.println(treename + "\n" + testTree);
+ NewickFile nf = new NewickFile(testTree, FormatAdapter.PASTE);
+ nf.parse();
+ assertTrue(stage + "Invalid Tree '" + nf.getWarningMessage() + "'",
+ nf.isValid());
+ SequenceNode tree = nf.getTree();
+ assertTrue(stage + "Null Tree", tree != null);
+ stage = "Creating newick file from testTree " + treename;
+ String gentree = new NewickFile(tree).print(nf.HasBootstrap(),
+ nf.HasDistances());
+ assertTrue(stage + "Empty string generated", gentree != null
+ && gentree.trim().length() > 0);
+ stage = "Parsing regenerated testTree " + treename;
+ NewickFile nf_regen = new NewickFile(gentree, FormatAdapter.PASTE);
+ nf_regen.parse();
+ assertTrue(
+ stage + "Newick file is invalid ('"
+ + nf_regen.getWarningMessage() + "')",
+ nf_regen.isValid());
+ SequenceNode tree_regen = nf.getTree();
+ assertTrue(stage + "Null Tree", tree_regen != null);
+ stage = "Compare original and generated tree" + treename;
+
+ Vector oseqs, nseqs;
+ oseqs = new NJTree(new SequenceI[0], nf).findLeaves(nf.getTree(),
+ new Vector());
+ assertTrue(stage + "No nodes in original tree.", oseqs.size() > 0);
+ SequenceI[] olsqs = new SequenceI[oseqs.size()];
+ for (int i = 0, iSize = oseqs.size(); i < iSize; i++)
+ {
+ olsqs[i] = (SequenceI) ((SequenceNode) oseqs.get(i)).element();
+ }
+ nseqs = (Vector) new NJTree(new SequenceI[0], nf_regen).findLeaves(
+ nf_regen.getTree(), new Vector());
+ assertTrue(stage + "No nodes in regerated tree.", nseqs.size() > 0);
+ SequenceI[] nsqs = new SequenceI[nseqs.size()];
+ for (int i = 0, iSize = nseqs.size(); i < iSize; i++)
+ {
+ nsqs[i] = (SequenceI) ((SequenceNode) nseqs.get(i)).element();
+ }
+ assertTrue(stage + " Different number of leaves (original "
+ + olsqs.length + " and regen " + nsqs.length + ")",
+ olsqs.length == nsqs.length);
+ SequenceIdMatcher omatcher = new SequenceIdMatcher(olsqs), nmatcher = new SequenceIdMatcher(
+ nsqs);
+
+ SequenceI[] osmatches = omatcher.findIdMatch(nsqs);
+ SequenceI[] nsmatches = nmatcher.findIdMatch(olsqs);
+ String warns = "";
+ for (int i = 0, iSize = nseqs.size(); i < iSize; i++)
+ {
+ if (nsmatches[i] == null)
+ {
+ warns += "\noriginal sequence ID '" + olsqs[i].getName()
+ + "' wasn't found in regenerated set.";
+ }
+ if (osmatches[i] == null)
+ {
+ warns += "\nregenerated sequence ID '" + nsqs[i].getName()
+ + "' wasn't found in original set.";
+ }
+ }
+
+ if (warns.length() > 0)
+ {
+ fail(stage + warns);
+ }
+ } catch (Exception x)
+ {
+ throw (new Exception(stage + "Exception raised", x));
+ }
+ }
+
+ /**
+ * @throws java.lang.Exception
+ */
+ @AfterClass
+ public static void tearDownAfterClass() throws Exception
+ {
+ }
+
+}
--- /dev/null
+package jalview.io;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import jalview.datamodel.Alignment;
+import jalview.datamodel.AlignmentAnnotation;
+import jalview.datamodel.AlignmentI;
+import jalview.datamodel.Annotation;
+import jalview.datamodel.SequenceFeature;
+import jalview.datamodel.SequenceI;
+
+import java.io.File;
+import java.util.BitSet;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.junit.Test;
+
+public class StockholmFileTest
+{
+
+ static String PfamFile = "examples/PF00111_seed.stk",
+ RfamFile = "examples/RF00031_folded.stk";
+
+ @Test
+ public void pfamFileIO() throws Exception
+ {
+ testFileIOwithFormat(new File(PfamFile), "STH");
+ }
+ @Test
+ public void pfamFileDataExtraction() throws Exception
+ { AppletFormatAdapter af = new AppletFormatAdapter();
+ AlignmentI al = af.readFile(PfamFile, af.FILE,
+ new IdentifyFile().Identify(PfamFile, af.FILE));
+ int numpdb = 0;
+ for (SequenceI sq : al.getSequences())
+ {
+ if (sq.getPDBId() != null)
+ {
+ numpdb += sq.getPDBId().size();
+ }
+ }
+ assertTrue(
+ "PF00111 seed alignment has at least 1 PDB file, but the reader found none.",
+ numpdb > 0);
+ }
+
+ @Test
+ public void rfamFileIO() throws Exception
+ {
+ testFileIOwithFormat(new File(RfamFile), "STH");
+ }
+
+ /**
+ * test alignment data in given file can be imported, exported and reimported
+ * with no dataloss
+ *
+ * @param f
+ * - source datafile (IdentifyFile.identify() should work with it)
+ * @param ioformat
+ * - label for IO class used to write and read back in the data from
+ * f
+ */
+ public static void testFileIOwithFormat(File f, String ioformat)
+ {
+ System.out.println("Reading file: " + f);
+ String ff = f.getPath();
+ try
+ {
+ AppletFormatAdapter rf = new AppletFormatAdapter();
+
+ Alignment al = rf.readFile(ff, AppletFormatAdapter.FILE,
+ new IdentifyFile().Identify(ff, AppletFormatAdapter.FILE));
+
+ assertNotNull("Couldn't read supplied alignment data.", al);
+
+ // make sure dataset is initialised ? not sure about this
+ for (int i = 0; i < al.getSequencesArray().length; ++i)
+ {
+ al.getSequenceAt(i).setDatasetSequence(al.getSequenceAt(i));
+ }
+ String outputfile = rf.formatSequences(ioformat, al, true);
+ System.out.println("Output file in '"+ioformat+"':\n"+outputfile+"\n<<EOF\n");
+ // test for consistency in io
+ Alignment al_input = new AppletFormatAdapter().readFile(outputfile,
+ AppletFormatAdapter.PASTE, ioformat);
+ assertNotNull("Couldn't parse reimported alignment data.", al_input);
+
+ String identifyoutput = new IdentifyFile().Identify(outputfile,
+ AppletFormatAdapter.PASTE);
+ assertNotNull("Identify routine failed for outputformat " + ioformat,
+ identifyoutput);
+ assertTrue(
+ "Identify routine could not recognise output generated by '"
+ + ioformat + "' writer",
+ ioformat.equals(identifyoutput));
+ testAlignmentEquivalence(al, al_input);
+ } catch (Exception e)
+ {
+ e.printStackTrace();
+ assertTrue("Couln't format the alignment for output file.", false);
+ }
+ }
+
+ /**
+ * assert alignment equivalence
+ *
+ * @param al
+ * 'original'
+ * @param al_input
+ * 'secondary' or generated alignment from some datapreserving
+ * transformation
+ */
+ public static void testAlignmentEquivalence(AlignmentI al,
+ AlignmentI al_input)
+ {
+ assertNotNull("Original alignment was null", al);
+ assertNotNull("Generated alignment was null", al_input);
+
+ assertTrue(
+ "Alignment dimension mismatch: originl contains "
+ + al.getHeight() + " and generated has "
+ + al_input.getHeight() + " sequences; original has "
+ + al.getWidth() + " and generated has "
+ + al_input.getWidth() + " columns.",
+ al.getHeight() == al_input.getHeight()
+ && al.getWidth() == al_input.getWidth());
+
+ // check Alignment annotation
+ AlignmentAnnotation[] aa_new = al_input.getAlignmentAnnotation();
+ AlignmentAnnotation[] aa_original = al.getAlignmentAnnotation();
+
+ // note - at moment we do not distinguish between alignment without any
+ // annotation rows and alignment with no annotation row vector
+ // we might want to revise this in future
+ int aa_new_size = (aa_new == null ? 0 : aa_new.length), aa_original_size = (aa_original == null ? 0
+ : aa_original.length);
+ Map<Integer,java.util.BitSet> orig_groups=new HashMap<Integer,java.util.BitSet>(),new_groups=new HashMap<Integer,java.util.BitSet>();
+
+ if (aa_new != null && aa_original != null)
+ {
+ for (int i = 0; i < aa_original.length; i++)
+ {
+ if (aa_new.length>i) {
+ assertTrue("Different alignment annotation at position "+i,
+ equalss(aa_original[i], aa_new[i]));
+ // compare graphGroup or graph properties - needed to verify JAL-1299
+ assertTrue("Graph type not identical.",aa_original[i].graph==aa_new[i].graph);
+ assertTrue("Visibility not identical.", aa_original[i].visible==aa_new[i].visible);
+ assertTrue(
+ "Threshold line not identical.",
+ aa_original[i].threshold == null ? aa_new[i].threshold == null
+ : aa_original[i].threshold
+ .equals(aa_new[i].threshold));
+ // graphGroup may differ, but pattern should be the same
+ Integer o_ggrp=new Integer(aa_original[i].graphGroup+2),n_ggrp=new Integer(aa_new[i].graphGroup+2);
+ BitSet orig_g=orig_groups.get(o_ggrp),new_g=new_groups.get(n_ggrp);
+ if (orig_g==null) {
+ orig_groups.put(o_ggrp,orig_g= new BitSet());
+ }
+ if (new_g==null) {
+ new_groups.put(n_ggrp, new_g=new BitSet());
+ }
+ assertTrue("Graph Group pattern differs at annotation "+i, orig_g.equals(new_g));
+ orig_g.set(i); new_g.set(i);
+ } else {
+ System.err.println("No matching annotation row for "+aa_original[i].toString());
+ }
+ }
+ }
+ assertTrue(
+ "Generated and imported alignment have different annotation sets ("
+ + aa_new_size + " != " + aa_original_size + ")",
+ aa_new_size == aa_original_size);
+
+ // check sequences, annotation and features
+ SequenceI[] seq_original = new SequenceI[al.getSequencesArray().length];
+ seq_original = al.getSequencesArray();
+ SequenceI[] seq_new = new SequenceI[al_input.getSequencesArray().length];
+ seq_new = al_input.getSequencesArray();
+ SequenceFeature[] sequenceFeatures_original, sequenceFeatures_new;
+ AlignmentAnnotation annot_original, annot_new;
+ //
+ for (int i = 0; i < al.getSequencesArray().length; i++)
+ {
+ String name = seq_original[i].getName();
+ int start = seq_original[i].getStart();
+ int end = seq_original[i].getEnd();
+ System.out.println("Check sequence: " + name + "/" + start + "-"
+ + end);
+
+ // search equal sequence
+ for (int in = 0; in < al_input.getSequencesArray().length; in++)
+ {
+ if (name.equals(seq_new[in].getName())
+ && start == seq_new[in].getStart()
+ && end == seq_new[in].getEnd())
+ {
+ String ss_original = seq_original[i].getSequenceAsString();
+ String ss_new = seq_new[in].getSequenceAsString();
+ assertTrue("The sequences " + name + "/" + start + "-" + end
+ + " are not equal", ss_original.equals(ss_new));
+
+ assertTrue(
+ "Sequence Features were not equivalent",
+ (seq_original[i].getSequenceFeatures() == null && seq_new[in]
+ .getSequenceFeatures() == null)
+ || (seq_original[i].getSequenceFeatures() != null && seq_new[in]
+ .getSequenceFeatures() != null));
+ // compare sequence features
+ if (seq_original[i].getSequenceFeatures() != null
+ && seq_new[in].getSequenceFeatures() != null)
+ {
+ System.out.println("There are feature!!!");
+ sequenceFeatures_original = new SequenceFeature[seq_original[i]
+ .getSequenceFeatures().length];
+ sequenceFeatures_original = seq_original[i]
+ .getSequenceFeatures();
+ sequenceFeatures_new = new SequenceFeature[seq_new[in]
+ .getSequenceFeatures().length];
+ sequenceFeatures_new = seq_new[in].getSequenceFeatures();
+
+ assertTrue("different number of features", seq_original[i]
+ .getSequenceFeatures().length == seq_new[in]
+ .getSequenceFeatures().length);
+
+ for (int feat = 0; feat < seq_original[i].getSequenceFeatures().length; feat++)
+ {
+ assertTrue("Different features",
+ sequenceFeatures_original[feat]
+ .equals(sequenceFeatures_new[feat]));
+ }
+ }
+ // compare alignment annotation
+ if (al.getSequenceAt(i).getAnnotation() != null
+ && al_input.getSequenceAt(in).getAnnotation() != null)
+ {
+ for (int j = 0; j < al.getSequenceAt(i).getAnnotation().length; j++)
+ {
+ if (al.getSequenceAt(i).getAnnotation()[j] != null
+ && al_input.getSequenceAt(in).getAnnotation()[j] != null)
+ {
+ annot_original = al.getSequenceAt(i).getAnnotation()[j];
+ annot_new = al_input.getSequenceAt(in).getAnnotation()[j];
+ assertTrue("Different annotation elements",
+ equalss(annot_original, annot_new));
+ }
+ }
+ }
+ else if (al.getSequenceAt(i).getAnnotation() == null
+ && al_input.getSequenceAt(in).getAnnotation() == null)
+ {
+ System.out.println("No annotations");
+ }
+ else if (al.getSequenceAt(i).getAnnotation() != null
+ && al_input.getSequenceAt(in).getAnnotation() == null)
+ {
+ assertTrue("Annotations differed between sequences ("
+ + al.getSequenceAt(i).getName() + ") and ("
+ + al_input.getSequenceAt(i).getName() + ")", false);
+ }
+ break;
+ }
+ }
+ }
+ }
+
+ /*
+ * compare annotations
+ */
+ private static boolean equalss(AlignmentAnnotation annot_or,
+ AlignmentAnnotation annot_new)
+ {
+ if (annot_or.annotations.length != annot_new.annotations.length)
+ {
+ System.err.println("Different lengths for annotation row elements: "+annot_or.annotations.length +"!="+ annot_new.annotations.length);
+ return false;
+ }
+ for (int i = 0; i < annot_or.annotations.length; i++)
+ {
+ Annotation an_or=annot_or.annotations[i],an_new=annot_new.annotations[i];
+ if (an_or != null
+ && an_new!= null)
+ {
+ if (!an_or.displayCharacter.trim()
+ .equals(an_new.displayCharacter.trim())
+ || !(""+an_or.secondaryStructure).trim().equals((""+an_new.secondaryStructure).trim())
+ || (an_or.description != an_new.description && (an_or.description == null
+ || an_new.description == null || !an_or.description
+ .equals(an_new.description))))
+ {
+ System.err.println("Annotation Element Mismatch\nElement "+i+" in original: "+annot_or.annotations[i].toString()+"\nElement "+i+" in new: "+annot_new.annotations[i].toString());
+ return false;
+ }
+ }
+ else if (annot_or.annotations[i] == null
+ && annot_new.annotations[i] == null)
+ {
+ continue;
+ }
+ else
+ {
+ System.err.println("Annotation Element Mismatch\nElement "+i+" in original: "+(annot_or.annotations[i]==null ? "is null" : annot_or.annotations[i].toString())+"\nElement "+i+" in new: "+(annot_new.annotations[i] == null ? "is null" : annot_new.annotations[i].toString()));
+ return false;
+ }
+ }
+ return true;
+ }
+}
--- /dev/null
+package jalview.schemes;
+
+import static org.junit.Assert.*;
+
+import jalview.datamodel.AlignmentI;
+import jalview.datamodel.ColumnSelection;
+import jalview.datamodel.Sequence;
+import jalview.datamodel.SequenceI;
+
+import java.io.IOException;
+import java.util.Map;
+import java.util.Vector;
+
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+public class DnaCodonTests
+{
+
+ @Test
+ public void testAmbiguityCodeGeneration()
+ {
+ assertTrue(ResidueProperties.ambiguityCodes.size()>0);
+ }
+ @Test
+ public void testAmbiguityCodon() {
+ for (String ac:ResidueProperties.ambiguityCodes.keySet())
+ {
+ assertTrue("Couldn't resolve GGN as glycine codon",ResidueProperties.codonHash2.get("GG"+ac).equals("G"));
+ }
+ }
+ @Test
+ public void regenerateCodonTable() {
+ for (Map.Entry<String, String> codon:ResidueProperties.codonHash2.entrySet())
+ {
+ System.out.println("ResidueProperties.codonHash2.set(\""+codon.getKey()+"\", \""+codon.getValue()+"\");");
+ }
+ }
+ @Test
+ public void checkOldCodonagainstNewCodonTable() {
+ // note - this test will be removed once the old codon table (including Vectors) is removed
+ String additional="",failtrans="",differentTr="";
+ for (Object aa:ResidueProperties.codonHash.keySet())
+ {
+ String amacid=(String) aa;
+ for (Object codons:((Vector)ResidueProperties.codonHash.get(amacid)))
+ {
+ String codon = (String) codons;
+ String trans = ResidueProperties.codonTranslate(codon);
+ String oldtrans = ResidueProperties._codonTranslate(codon);
+ if (trans==null) {
+ additional+="\nOld translation table includes additional codons for "+amacid+" : "+codon;
+ }
+ if (oldtrans==null) {
+ failtrans+=("\nold translation routine failed for old translation entry (aa was "+amacid+" codon was "+codon+")");
+ }
+ if (!oldtrans.equals(trans))
+ {
+ differentTr+=("\nDifferent translation for old and new routines: "+amacid+" "+codon+" => expected "+oldtrans+" and got "+trans);
+ }
+ }
+ }
+ assertTrue(""+additional+"\n"+failtrans+"\n"+differentTr,additional.length()==0 && failtrans.length()==0 && differentTr.length()==0);
+ }
+}
*/
package jalview.ws.gui;
-import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.*;
import jalview.gui.WsJobParameters;
+import jalview.ws.jabaws.JalviewJabawsTestUtils;
import jalview.ws.jws2.JabaPreset;
import jalview.ws.jws2.Jws2Discoverer;
import jalview.ws.jws2.jabaws2.Jws2Instance;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
-import java.util.Vector;
import javax.swing.JFrame;
import javax.swing.JPanel;
+import org.junit.BeforeClass;
import org.junit.Test;
import compbio.metadata.Option;
public class Jws2ParamView
{
/**
- * test servers
- */
- public static String[] serviceUrls = new String[]
- { "http://localhost:8080/jabaws" };
-
- /**
* which services to test
*/
public static List<String> serviceTests = new ArrayList<String>();
serviceTests.add("AAConWS".toLowerCase());
}
+ public static Jws2Discoverer disc=null;
+ @BeforeClass
+ public static void setUpBeforeClass() throws Exception
+ {
+ disc = JalviewJabawsTestUtils.getJabawsDiscoverer();
+
+ }
@Test
public void testJws2Gui()
{
- jalview.ws.jws2.Jws2Discoverer disc = jalview.ws.jws2.Jws2Discoverer
- .getDiscoverer();
- int p = 0;
- String svcurls="";
- Vector<String> services = new Vector<String>();
- for (String url : serviceUrls)
- {
- svcurls+=url+"; ";
- services.add(url);
- }
- ;
- Jws2Discoverer.setServiceUrls(services);
-
- try
- {
- disc.run();
- } catch (Exception e)
- {
- System.err.println("Aborting. Problem discovering services. Tried "+svcurls);
- e.printStackTrace();
- return;
- }
- assertTrue("Failed to discover any services at ",
- disc.getServices().size() > 0);
Jws2Instance lastserv = null;
Iterator<String> presetEnum = presetTests.iterator();
for (Jws2Instance service : disc.getServices())
--- /dev/null
+package jalview.ws.jabaws;
+
+import static org.junit.Assert.*;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import jalview.datamodel.AlignmentAnnotation;
+import jalview.datamodel.AlignmentI;
+import jalview.io.AnnotationFile;
+import jalview.io.FormatAdapter;
+import jalview.io.StockholmFileTest;
+import jalview.ws.jws2.AADisorderClient;
+import jalview.ws.jws2.Jws2Discoverer;
+import jalview.ws.jws2.jabaws2.Jws2Instance;
+
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+public class DisorderAnnotExportImport
+{
+ public static String testseqs = "examples/uniref50.fa";
+
+ public static Jws2Discoverer disc;
+
+ public static List<Jws2Instance> iupreds;
+
+ jalview.ws.jws2.AADisorderClient disorderClient;
+
+ public static jalview.gui.AlignFrame af = null;
+
+ @BeforeClass
+ public static void setUpBeforeClass() throws Exception
+ {
+
+ jalview.bin.Cache.initLogger();
+ disc = JalviewJabawsTestUtils.getJabawsDiscoverer();
+ iupreds = new ArrayList<Jws2Instance>();
+ for (Jws2Instance svc : disc.getServices())
+ {
+ if (svc.getServiceTypeURI().toLowerCase().contains("iupredws"))
+ {
+ iupreds.add(svc);
+ }
+ }
+ assertTrue("Couldn't discover any IUPred services to use to test.",
+ iupreds.size() > 0);
+ jalview.io.FileLoader fl = new jalview.io.FileLoader(false);
+ af = fl.LoadFileWaitTillLoaded(testseqs, jalview.io.FormatAdapter.FILE);
+ assertNotNull("Couldn't load test data ('" + testseqs + "')", af);
+ }
+
+ @AfterClass
+ public static void tearDownAfterClass() throws Exception
+ {
+ if (af != null)
+ {
+ af.setVisible(false);
+ af.dispose();
+ }
+ }
+
+ /**
+ * test for patches to JAL-1294
+ */
+ @Test
+ public void testDisorderAnnotExport()
+ {
+ disorderClient = new AADisorderClient(iupreds.get(0), af, null, null);
+ af.getViewport().getCalcManager().startWorker(disorderClient);
+ do
+ {
+ try
+ {
+ Thread.sleep(50);
+ } catch (InterruptedException x)
+ {
+ }
+ ;
+ } while (af.getViewport().getCalcManager().isWorking());
+ AlignmentI orig_alig = af.getViewport().getAlignment();
+ // NOTE: Consensus annotation row cannot be exported and reimported faithfully - so we remove them
+ List<AlignmentAnnotation> toremove = new ArrayList<AlignmentAnnotation>();
+ for (AlignmentAnnotation aa:orig_alig.getAlignmentAnnotation())
+ {
+ if (aa.autoCalculated)
+ {
+ toremove.add(aa);
+ }
+ }
+ for (AlignmentAnnotation aa:toremove)
+ {
+ orig_alig.deleteAnnotation(aa);
+ }
+ testAnnotationFileIO("Testing IUPred Annotation IO", orig_alig);
+
+ }
+
+ public static void testAnnotationFileIO(String testname, AlignmentI al)
+ {
+ try
+ {
+ String aligfileout = new FormatAdapter().formatSequences("PFAM",
+ al.getSequencesArray());
+ String anfileout = new AnnotationFile().printAnnotations(
+ al.getAlignmentAnnotation(), al.getGroups(),
+ al.getProperties());
+ assertTrue(
+ "Test "
+ + testname
+ + "\nAlignment annotation file was not regenerated. Null string",
+ anfileout != null);
+ assertTrue(
+ "Test "
+ + testname
+ + "\nAlignment annotation file was not regenerated. Empty string",
+ anfileout.length() > "JALVIEW_ANNOTATION".length());
+
+ System.out.println("Output annotation file:\n" + anfileout
+ + "\n<<EOF\n");
+
+ AlignmentI al_new = new FormatAdapter().readFile(aligfileout,
+ FormatAdapter.PASTE, "PFAM");
+ assertTrue(
+ "Test "
+ + testname
+ + "\nregenerated annotation file did not annotate alignment.",
+ new AnnotationFile().readAnnotationFile(al_new, anfileout,
+ FormatAdapter.PASTE));
+
+ // test for consistency in io
+ StockholmFileTest.testAlignmentEquivalence(al, al_new);
+ return;
+ } catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ fail("Test "
+ + testname
+ + "\nCouldn't complete Annotation file roundtrip input/output/input test.");
+ }
+
+}
--- /dev/null
+package jalview.ws.jabaws;
+
+import static org.junit.Assert.*;
+import jalview.ws.jws2.Jws2Discoverer;
+
+import java.util.Vector;
+
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+public class JalviewJabawsTestUtils
+{
+
+ @BeforeClass
+ public static void setUpBeforeClass() throws Exception
+ {
+ }
+
+ @AfterClass
+ public static void tearDownAfterClass() throws Exception
+ {
+ }
+
+ /**
+ * test servers
+ */
+ public static String[] serviceUrls = new String[]
+ { "http://localhost:8080/jabaws" };
+
+ @Test
+ public void testAnnotExport()
+ {
+ fail("Not yet implemented");
+ }
+
+ public static jalview.ws.jws2.Jws2Discoverer getJabawsDiscoverer() {
+ jalview.ws.jws2.Jws2Discoverer disc = jalview.ws.jws2.Jws2Discoverer
+ .getDiscoverer();
+ int p = 0;
+ String svcurls="";
+ Vector<String> services = new Vector<String>();
+ for (String url : JalviewJabawsTestUtils.serviceUrls)
+ {
+ svcurls+=url+"; ";
+ services.add(url);
+ }
+ ;
+ Jws2Discoverer.setServiceUrls(services);
+
+ try
+ {
+ disc.run();
+ } catch (Exception e)
+ {
+ e.printStackTrace();
+ fail("Aborting. Problem discovering services. Tried "+svcurls);
+ }
+ assertTrue("Failed to discover any services at ",
+ disc.getServices().size() > 0);
+ return disc;
+ }
+
+}
--- /dev/null
+package jalview.ws.jabaws;
+
+import static org.junit.Assert.*;
+
+import java.awt.Component;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Vector;
+
+import javax.swing.JMenu;
+import javax.swing.JMenuItem;
+
+import jalview.api.AlignCalcManagerI;
+import jalview.datamodel.AlignmentAnnotation;
+import jalview.datamodel.AlignmentI;
+import jalview.datamodel.Annotation;
+import jalview.gui.Jalview2XML;
+import jalview.io.AnnotationFile;
+import jalview.io.FormatAdapter;
+import jalview.io.StockholmFileTest;
+import jalview.ws.jws2.AADisorderClient;
+import jalview.ws.jws2.Jws2Discoverer;
+import jalview.ws.jws2.RNAalifoldClient;
+import jalview.ws.jws2.SequenceAnnotationWSClient;
+import jalview.ws.jws2.dm.JabaOption;
+import jalview.ws.jws2.jabaws2.Jws2Instance;
+import jalview.ws.params.AutoCalcSetting;
+
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import compbio.metadata.WrongParameterException;
+
+public class RNAStructExportImport
+{
+ public static String testseqs = "examples/unfolded_RF00031.aln";
+
+ public static Jws2Discoverer disc;
+
+ public static Jws2Instance rnaalifoldws;
+
+ jalview.ws.jws2.RNAalifoldClient alifoldClient;
+
+ public static jalview.gui.AlignFrame af = null;
+
+ @BeforeClass
+ public static void setUpBeforeClass() throws Exception
+ {
+
+ jalview.bin.Cache.initLogger();
+ disc = JalviewJabawsTestUtils.getJabawsDiscoverer();
+
+ for (Jws2Instance svc : disc.getServices())
+ {
+
+ if (svc.getServiceTypeURI().toLowerCase().contains("rnaalifoldws"))
+ {
+ rnaalifoldws = svc;
+ }
+ }
+
+ System.out.println("State of rnaalifoldws: " + rnaalifoldws);
+
+ if (rnaalifoldws == null)
+ System.exit(0);
+
+ jalview.io.FileLoader fl = new jalview.io.FileLoader(false);
+
+ af = fl.LoadFileWaitTillLoaded(testseqs, jalview.io.FormatAdapter.FILE);
+
+ assertNotNull("Couldn't load test data ('" + testseqs + "')", af);
+
+ }
+
+ @AfterClass
+ public static void tearDownAfterClass() throws Exception
+ {
+ if (af != null)
+ {
+ af.setVisible(false);
+ af.dispose();
+ }
+ }
+
+ @Test
+ public void testRNAStructExport()
+ {
+
+ alifoldClient = new RNAalifoldClient(rnaalifoldws, af, null, null);
+
+ af.getViewport().getCalcManager().startWorker(alifoldClient);
+
+ do
+ {
+ try
+ {
+ Thread.sleep(50);
+ } catch (InterruptedException x)
+ {
+ }
+ ;
+ } while (af.getViewport().getCalcManager().isWorking());
+
+ AlignmentI orig_alig = af.getViewport().getAlignment();
+
+ testAnnotationFileIO("Testing RNAalifold Annotation IO", orig_alig);
+
+ }
+
+ public static void testAnnotationFileIO(String testname, AlignmentI al)
+ {
+ try
+ {
+ // what format would be appropriate for RNAalifold annotations?
+ String aligfileout = new FormatAdapter().formatSequences("PFAM",
+ al.getSequencesArray());
+
+ String anfileout = new AnnotationFile().printAnnotations(
+ al.getAlignmentAnnotation(), al.getGroups(),
+ al.getProperties());
+ assertTrue(
+ "Test "
+ + testname
+ + "\nAlignment annotation file was not regenerated. Null string",
+ anfileout != null);
+ assertTrue(
+ "Test "
+ + testname
+ + "\nAlignment annotation file was not regenerated. Empty string",
+ anfileout.length() > "JALVIEW_ANNOTATION".length());
+
+ System.out.println("Output annotation file:\n" + anfileout
+ + "\n<<EOF\n");
+
+ // again what format would be appropriate?
+ AlignmentI al_new = new FormatAdapter().readFile(aligfileout,
+ FormatAdapter.PASTE, "PFAM");
+ assertTrue(
+ "Test "
+ + testname
+ + "\nregenerated annotation file did not annotate alignment.",
+ new AnnotationFile().readAnnotationFile(al_new, anfileout,
+ FormatAdapter.PASTE));
+
+ // test for consistency in io
+ StockholmFileTest.testAlignmentEquivalence(al, al_new);
+ return;
+ } catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ fail("Test "
+ + testname
+ + "\nCouldn't complete Annotation file roundtrip input/output/input test.");
+ }
+
+ @Test
+ public void testRnaalifoldSettingsRecovery()
+ {
+ List<compbio.metadata.Argument> opts = new ArrayList<compbio.metadata.Argument>();
+ for (compbio.metadata.Argument rg : (List<compbio.metadata.Argument>) rnaalifoldws
+ .getRunnerConfig().getArguments())
+ {
+ if (rg.getDescription().contains("emperature"))
+ {
+ try
+ {
+ rg.setValue("292");
+ } catch (WrongParameterException q)
+ {
+ fail("Couldn't set the temperature parameter "
+ + q.getStackTrace());
+ }
+ opts.add(rg);
+ }
+ if (rg.getDescription().contains("max"))
+ {
+ opts.add(rg);
+ }
+ }
+ alifoldClient = new RNAalifoldClient(rnaalifoldws, af, null, opts);
+
+ af.getViewport().getCalcManager().startWorker(alifoldClient);
+
+ do
+ {
+ try
+ {
+ Thread.sleep(50);
+ } catch (InterruptedException x)
+ {
+ }
+ ;
+ } while (af.getViewport().getCalcManager().isWorking());
+ AutoCalcSetting oldacs = af.getViewport().getCalcIdSettingsFor(alifoldClient.getCalcId());
+ String oldsettings = oldacs.getWsParamFile();
+ // write out parameters
+ jalview.gui.AlignFrame nalf=null;
+ assertTrue("Couldn't write out the Jar file",new Jalview2XML(false).SaveAlignment(af, "testRnalifold_param.jar","trial parameter writeout"));
+ assertTrue("Couldn't read back the Jar file",(nalf = new Jalview2XML(false).LoadJalviewAlign("testRnalifold_param.jar"))!=null);
+ if (nalf!=null)
+ {
+ AutoCalcSetting acs = af.getViewport().getCalcIdSettingsFor(alifoldClient.getCalcId());
+ assertTrue("Calc ID settings not recovered from viewport stash", acs.equals(oldacs));
+ assertTrue("Serialised Calc ID settings not identical to those recovered from viewport stash", acs.getWsParamFile().equals(oldsettings));
+ JMenu nmenu=new JMenu();
+ new SequenceAnnotationWSClient().attachWSMenuEntry(nmenu, rnaalifoldws, af);
+ assertTrue("Couldn't get menu entry for service",nmenu.getItemCount()>0);
+ for (Component itm: nmenu.getMenuComponents())
+ {
+ if (itm instanceof JMenuItem)
+ {
+ JMenuItem i = (JMenuItem) itm;
+ if (i.getText().equals(rnaalifoldws.getAlignAnalysisUI().getAAconToggle()))
+ {
+ i.doClick();
+ break;
+ }
+ }
+ }
+ while (af.getViewport().isCalcInProgress())
+ {
+ try { Thread.sleep(200);
+ } catch (Exception x) {};
+ }
+ AutoCalcSetting acs2 = af.getViewport().getCalcIdSettingsFor(alifoldClient.getCalcId());
+ assertTrue("Calc ID settings after recalculation has not been recovered.", acs2.getWsParamFile().equals(oldsettings));
+ }
+ }
+}
--- /dev/null
+/**
+ *
+ */
+package jalview.ws.rest;
+
+import static org.junit.Assert.*;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Hashtable;
+import java.util.List;
+import java.util.Map;
+
+import jalview.datamodel.AlignmentI;
+import jalview.datamodel.AlignmentView;
+import jalview.gui.AlignFrame;
+import jalview.io.FileParse;
+import jalview.ws.rest.InputType;
+import jalview.ws.rest.params.SeqGroupIndexVector;
+
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+/**
+ * @author jimp
+ *
+ */
+public class ShmmrRSBSService
+{
+
+ @Test
+ public void testSeparatorListToArrayForRestServiceDescriptions()
+ {
+ assertTrue(
+ "separatorListToArray is faulty.",
+ RestServiceDescription.separatorListToArray(
+ "foo=',',min='foo',max='1,2,3',fa=','", ",").length == 4);
+ assertTrue("separatorListToArray is faulty.",
+ RestServiceDescription.separatorListToArray(
+ "minsize='2', sep=','", ",").length != 2); // probably should come as 2
+ }
+
+ @Test
+ public void testShmmrService()
+ {
+
+ assertTrue(
+ "Test Rsd Exchange using using default Shmmr service failed.",
+ testRsdExchange("Test using default Shmmr service",
+ RestClient.makeShmmrRestClient().service));
+ }
+ @Test
+ public void testShmmrServiceDataprep() throws Exception
+ {
+ RestClient _rc = RestClient.makeShmmrRestClient();
+ assertNotNull(_rc);
+ AlignFrame alf = new jalview.io.FileLoader(false).LoadFileWaitTillLoaded("examples/testdata/smad.fa", jalview.io.FormatAdapter.FILE);
+ assertNotNull("Couldn't find test data.",alf);
+ alf.loadJalviewDataFile("examples/testdata/smad_groups.jva",
+ jalview.io.FormatAdapter.FILE, null, null);
+ assertTrue("Couldn't load the test data's annotation file (should be 5 groups but found "+alf.getViewport().getAlignment().getGroups().size()+").", alf.getViewport().getAlignment().getGroups().size()==5);
+
+ RestClient rc = new RestClient(_rc.service, alf, true);
+
+
+
+ assertNotNull("Couldn't creat RestClient job.",rc);
+ jalview.bin.Cache.initLogger();
+ RestJob rjb = new RestJob(0, new RestJobThread(rc),rc.av.getAlignment(),null);
+ rjb.setAlignmentForInputs(rc.service.getInputParams().values(), rc.av.getAlignment());
+ for (Map.Entry<String,InputType> e:rc.service.getInputParams().entrySet()) {
+ System.out.println("For Input '"+e.getKey()+":\n"+e.getValue().formatForInput(rjb).getContentLength());
+ }
+ }
+
+ private static boolean testRsdExchange(String desc, String servicestring)
+ {
+ try
+ {
+ RestServiceDescription newService = new RestServiceDescription(
+ servicestring);
+ if (!newService.isValid())
+ {
+ throw new Error("Failed to create service from '" + servicestring
+ + "'.\n" + newService.getInvalidMessage());
+ }
+ return testRsdExchange(desc, newService);
+ } catch (Throwable x)
+ {
+ System.err.println("Failed for service (" + desc + "): "
+ + servicestring);
+ x.printStackTrace();
+ return false;
+ }
+ }
+
+ private static boolean testRsdExchange(String desc,
+ RestServiceDescription service)
+ {
+ try
+ {
+ String fromservicetostring = service.toString();
+ RestServiceDescription newService = new RestServiceDescription(
+ fromservicetostring);
+ if (!newService.isValid())
+ {
+ throw new Error("Failed to create service from '"
+ + fromservicetostring + "'.\n"
+ + newService.getInvalidMessage());
+ }
+
+ if (!service.equals(newService))
+ {
+ System.err.println("Failed for service (" + desc + ").");
+ System.err.println("Original service and parsed service differ.");
+ System.err.println("Original: " + fromservicetostring);
+ System.err.println("Parsed : " + newService.toString());
+ return false;
+ }
+ } catch (Throwable x)
+ {
+ System.err.println("Failed for service (" + desc + "): "
+ + service.toString());
+ x.printStackTrace();
+ return false;
+ }
+ return true;
+ }
+
+}
--- /dev/null
+/**
+ *
+ */
+package jalview.ws.seqfetcher;
+
+import static org.junit.Assert.*;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import jalview.datamodel.DBRefSource;
+import jalview.ws.DBRefFetcher;
+import jalview.ws.SequenceFetcher;
+import jalview.ws.dbsources.das.api.jalviewSourceI;
+
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+/**
+ * @author jimp
+ *
+ */
+public class DbRefFetcherTest
+{
+
+ /**
+ * @throws java.lang.Exception
+ */
+ @BeforeClass
+ public static void setUpBeforeClass() throws Exception
+ {
+ }
+
+ /**
+ * @throws java.lang.Exception
+ */
+ @AfterClass
+ public static void tearDownAfterClass() throws Exception
+ {
+ }
+
+ @Test
+ public void testStandardProtDbs()
+ {
+ String[] defdb = DBRefSource.PROTEINDBS;
+ List<DbSourceProxy> srces = new ArrayList<DbSourceProxy>();
+ for (String ddb : defdb)
+ {
+ SequenceFetcher sfetcher= new SequenceFetcher();
+ List<DbSourceProxy> srcesfordb = sfetcher.getSourceProxy(ddb);
+
+ if (srcesfordb != null)
+ {
+ srces.addAll(srcesfordb);
+ }
+ }
+ DbSourceProxy uniprot=null;
+ int i=0;
+ // append the selected sequence sources to the default dbs
+ for (DbSourceProxy s:srces)
+ {
+ if (s.getDbSource().equalsIgnoreCase(DBRefSource.UNIPROT))
+ {
+ i++;
+ }
+
+ if (s instanceof jalview.ws.dbsources.Uniprot)
+ {
+ uniprot = s;
+ break;
+ }
+ }
+
+ assertTrue("Failed to find Uniprot source as first source amongst "+srces.size()+" sources (source was at position "+i+")", uniprot!=null && i<2);
+ }
+
+}
<?xml version="1.0" encoding="UTF-8"?>
-<!-- This script was automatically generated using InstallAnywhere 2012 Standard, Build 4349
+<!-- This script was automatically generated using InstallAnywhere 2013 Professional, Build 4538
STATUS: Fully Functional LICENSED Edition
- DATE: Thu Nov 08 16:49:06 GMT 2012 -->
-<InstallAnywhere_Deployment_Project increments="4992">
+ DATE: Fri Nov 01 13:57:32 GMT 2013 -->
+<InstallAnywhere_Deployment_Project increments="5103">
<!-- ** DO NOT EDIT ** Essential authorization and configuration data ** DO NOT EDIT ** -->
<essentialScriptInfo>
- <versionID major="14" minor="0" revision="0"/>
- <editionID>49,52,46,48,32,83,116,97,110,100,97,114,100,32,66,117,105,108,100,32,52,51,52,57</editionID>
+ <versionID major="15" minor="0" revision="0"/>
+ <editionID>49,53,46,48,32,80,114,111,102,101,115,115,105,111,110,97,108,32,66,117,105,108,100,32,52,53,51,56</editionID>
<scriptID>12,42,11,85,78,76,73,67,69,78,83,69,68</scriptID>
- <buildID>3,13,71,76,105,110,117,120,44,32,50,46,54,46,51,50,45,50,55,57,46,49,49,46,49,46,101,108,54,46,120,56,54,95,54,52,44,32,97,109,100,54,52,59,32,74,97,118,97,32,49,46,55,46,48,95,48,51,44,32,79,114,97,99,108,101,32,67,111,114,112,111,114,97,116,105,111,110,44,32,104,116,116,112,58,47,47,106,97,118,97,46,111,114,97,99,108,101,46,99,111,109,47,59,32,101,110,44,32,85,110,107,110,111,119,110,59,32,73,83,79,45,56,56,53,57,45,49</buildID>
+ <buildID>3,13,71,76,105,110,117,120,44,32,50,46,54,46,51,50,45,50,55,57,46,50,50,46,49,46,101,108,54,46,120,56,54,95,54,52,44,32,97,109,100,54,52,59,32,74,97,118,97,32,49,46,55,46,48,95,50,53,44,32,79,114,97,99,108,101,32,67,111,114,112,111,114,97,116,105,111,110,44,32,104,116,116,112,58,47,47,106,97,118,97,46,111,114,97,99,108,101,46,99,111,109,47,59,32,101,110,44,32,85,110,107,110,111,119,110,59,32,73,83,79,45,56,56,53,57,45,49</buildID>
<!-- The authorizationID may change between project saves and builds. This does not effect the integrity of the project, nor do changes in this value represent changes in the actual InstallAnywhere project. -->
- <authorizationID>1,0,0,48,-19,-20,-64,32,80,127,118,101,93,105,116,96,121,48,48,49,56,52,67,98,113,112,112,37,82,101,96,63,55,-11,2,9,13,92,16,10,1,0,0</authorizationID>
+ <authorizationID>1,0,0,64,29,-4,96,96,80,127,118,101,93,105,116,96,121,48,48,49,56,52,67,98,113,112,112,37,82,101,96,63,55,-11,2,0,1,84,19,2,1,0,0</authorizationID>
</essentialScriptInfo>
- <installationObjects uniqueObjects="211">
+ <installationObjects uniqueObjects="217">
<object class="com.zerog.ia.installer.Installer" objectID="fe7d63eda660">
<property name="belongsToUninstallPhase">
<boolean>false</boolean>
</object>
</method>
<method name="addElement">
- <object class="com.zerog.ia.installer.util.LAXPropertyData" objectID="97f991ffa6f7">
+ <object class="com.zerog.ia.installer.util.LAXPropertyData" objectID="bbb5f73fa453">
<property name="propertyValue">
- <string><![CDATA[33554432]]></string>
+ <string><![CDATA[jalview.bin.Jalview]]></string>
</property>
<property name="propertyName">
- <string><![CDATA[lax.nl.java.option.java.heap.size.initial]]></string>
+ <string><![CDATA[lax.main.class]]></string>
</property>
<property name="propertyComment">
- <string><![CDATA[Initial heap size for Jalview]]></string>
+ <string><![CDATA[the class that contains the main method for the application]]></string>
</property>
</object>
</method>
<method name="addElement">
- <object class="com.zerog.ia.installer.util.LAXPropertyData" objectID="bbb5f73fa453">
+ <object class="com.zerog.ia.installer.util.LAXPropertyData" objectID="97f991ffa6f7">
<property name="propertyValue">
- <string><![CDATA[jalview.bin.Jalview]]></string>
+ <string><![CDATA[33554432]]></string>
</property>
<property name="propertyName">
- <string><![CDATA[lax.main.class]]></string>
+ <string><![CDATA[lax.nl.java.option.java.heap.size.initial]]></string>
</property>
<property name="propertyComment">
- <string><![CDATA[the class that contains the main method for the application]]></string>
+ <string><![CDATA[Initial heap size for Jalview]]></string>
</property>
</object>
</method>
<string><![CDATA[664]]></string>
</property>
<property name="sourceName">
- <string><![CDATA[min-jaba-client-2.0.jar]]></string>
+ <string><![CDATA[min-jabaws-client-2.1.0.jar]]></string>
</property>
<property name="overrideUnixPermissions">
<boolean>false</boolean>
<boolean>true</boolean>
</property>
<property name="destinationName">
- <string><![CDATA[min-jaba-client-2.0.jar]]></string>
+ <string><![CDATA[min-jabaws-client-2.1.0.jar]]></string>
</property>
<property name="fileSize">
<long>133065</long>
<boolean>false</boolean>
</property>
<property name="sourcePath">
- <string><![CDATA[/opt/homes/cruisecontrol/jalview/lib/]]></string>
+ <string><![CDATA[/home/cruisecontrol/jalview/lib/]]></string>
</property>
<property name="shouldUninstall">
<boolean>true</boolean>
<string><![CDATA[spring-web-3.0.5.RELEASE.jar]]></string>
</property>
<property name="fileSize">
- <long>-1</long>
+ <long>395587</long>
</property>
<property name="macBinary">
<boolean>false</boolean>
<boolean>false</boolean>
</property>
<property name="sourcePath">
- <string><![CDATA[/opt/homes/cruisecontrol/jalview/lib/]]></string>
+ <string><![CDATA[/home/cruisecontrol/jalview/lib/]]></string>
</property>
<property name="shouldUninstall">
<boolean>true</boolean>
<string><![CDATA[jdas-1.0.4.jar]]></string>
</property>
<property name="fileSize">
- <long>-1</long>
+ <long>249906</long>
</property>
<property name="macBinary">
<boolean>false</boolean>
<boolean>false</boolean>
</property>
<property name="sourcePath">
- <string><![CDATA[/opt/homes/cruisecontrol/jalview/lib/]]></string>
+ <string><![CDATA[/home/cruisecontrol/jalview/lib/]]></string>
</property>
<property name="shouldUninstall">
<boolean>true</boolean>
<string><![CDATA[groovy-all-1.8.2.jar]]></string>
</property>
<property name="fileSize">
- <long>-1</long>
+ <long>6149494</long>
</property>
<property name="macBinary">
<boolean>false</boolean>
<boolean>false</boolean>
</property>
<property name="sourcePath">
- <string><![CDATA[/opt/homes/cruisecontrol/jalview/lib/]]></string>
+ <string><![CDATA[/home/cruisecontrol/jalview/lib/]]></string>
</property>
<property name="shouldUninstall">
<boolean>true</boolean>
<string><![CDATA[spring-core-3.0.5.RELEASE.jar]]></string>
</property>
<property name="fileSize">
- <long>-1</long>
+ <long>382442</long>
</property>
<property name="macBinary">
<boolean>false</boolean>
</property>
</object>
</property>
+ <property name="winCodeSign">
+ <object class="com.flexera.ia.designer.windows.codesign.WindowsCodeSign" objectID="ee9b87d69f5d">
+ <property name="certificationFileLoc">
+ <string><![CDATA[]]></string>
+ </property>
+ <property name="url">
+ <string><![CDATA[]]></string>
+ </property>
+ <property name="timestampServer">
+ <string><![CDATA[]]></string>
+ </property>
+ <property name="password">
+ <string><![CDATA[]]></string>
+ </property>
+ </object>
+ </property>
<property name="bundledJREInstall">
<int>2</int>
</property>
<property name="onlyInstallBundledVMIfOneNotFoundInSystem">
- <boolean>false</boolean>
+ <boolean>true</boolean>
</property>
<property name="uninstallJRE">
<boolean>true</boolean>
<boolean>false</boolean>
</property>
<property name="withoutVmSearchOption">
- <short>10</short>
+ <short>13</short>
</property>
<property name="withVMSearchOption">
<short>21</short>
</property>
</object>
</method>
+ <method name="addElement">
+ <object class="com.zerog.ia.designer.build.BuildTarget" objectID="ee9b974a9f75">
+ <property name="type">
+ <int>9</int>
+ </property>
+ <property name="outputDir">
+ <string><![CDATA[Windows_Pure_64_Bit]]></string>
+ </property>
+ <property name="buildNoVM">
+ <boolean>false</boolean>
+ </property>
+ <property name="buildWithVM">
+ <boolean>false</boolean>
+ </property>
+ <property name="withoutVmSearchOption">
+ <short>10</short>
+ </property>
+ <property name="withVMSearchOption">
+ <short>21</short>
+ </property>
+ <property name="win32InstallerLauncherType">
+ <short>90</short>
+ </property>
+ <property name="jvmResolutionFileSpecs">
+ <object class="java.util.Vector"/>
+ </property>
+ <property name="md5CheckApplicable_search_notFound_download">
+ <boolean>false</boolean>
+ </property>
+ <property name="md5CheckApplicable_dontSearch_download">
+ <boolean>false</boolean>
+ </property>
+ </object>
+ </method>
</object>
</property>
<property name="name">
<boolean>true</boolean>
</property>
<property name="buildOutputLocation">
- <string><![CDATA[/opt/homes/cruisecontrol/jalview/utils/InstallAnywhere/Jalview_Build_Output]]></string>
+ <string><![CDATA[/home/cruisecontrol/checkout/release-jalview/utils/InstallAnywhere/Jalview_Build_Output]]></string>
</property>
<property name="relatedProjectSettings">
<object class="com.zerog.ia.installer.RelatedProjectSettings" objectID="97f2363da6ac">
<property name="children">
<object class="java.util.ArrayList" list="true">
<method name="add">
- <object class="com.flexera.ia.vapp.datastructures.VirtualMachine" objectID="c5bca1b1ab87">
+ <object class="com.flexera.ia.vapp.datastructures.VirtualMachineCollection" objectID="ee9b974d9f75">
<property name="parent">
<object refID="c5bca16bab87"/>
</property>
<property name="productInformationList">
+ <object class="java.util.ArrayList" list="true"/>
+ </property>
+ <property name="id">
+ <int>0</int>
+ </property>
+ <property name="name">
+ <string><![CDATA[Default VM Tier]]></string>
+ </property>
+ <property name="UUID">
+ <string><![CDATA[ee9b974b-1f13-11b2-9f76-e3eb37649f93]]></string>
+ </property>
+ <property name="info">
+ <string><![CDATA[]]></string>
+ </property>
+ <property name="children">
<object class="java.util.ArrayList" list="true">
<method name="add">
- <object class="com.flexera.ia.vapp.datastructures.ProductInformation" objectID="c5bca17eab87">
- <property name="productName">
- <string><![CDATA[Jalview]]></string>
+ <object class="com.flexera.ia.vapp.datastructures.VirtualMachine" objectID="c5bca1b1ab87">
+ <property name="parent">
+ <object refID="c5bca16bab87"/>
+ </property>
+ <property name="productInformationList">
+ <object class="java.util.ArrayList" list="true">
+ <method name="add">
+ <object class="com.flexera.ia.vapp.datastructures.ProductInformation" objectID="c5bca17eab87">
+ <property name="productName">
+ <string><![CDATA[Jalview]]></string>
+ </property>
+ <property name="productInformation">
+ <string><![CDATA[]]></string>
+ </property>
+ <property name="productVersion">
+ <string><![CDATA[2.5.1.0]]></string>
+ </property>
+ <property name="productVendor">
+ <string><![CDATA[The Barton Group]]></string>
+ </property>
+ <property name="productProperties">
+ <object class="java.util.ArrayList" list="true">
+ <method name="add">
+ <object class="com.flexera.ia.vapp.datastructures.ProductInformationProperty" objectID="c5bca185ab87">
+ <property name="propertyKey">
+ <string><![CDATA[USER_INSTALL_DIR]]></string>
+ </property>
+ <property name="propertyType">
+ <object class="java.lang.Enum" javaEnum="true">
+ <method name="add">
+ <string><![CDATA[com.flexera.ia.vapp.datastructures.enums.ProductPropertyType]]></string>
+ <string><![CDATA[string]]></string>
+ </method>
+ </object>
+ </property>
+ <property name="propertyDescription">
+ <string><![CDATA[Choose Install Folder]]></string>
+ </property>
+ <property name="propertyValue">
+ <string><![CDATA[]]></string>
+ </property>
+ </object>
+ </method>
+ <method name="add">
+ <object class="com.flexera.ia.vapp.datastructures.ProductInformationProperty" objectID="c5bca187ab87">
+ <property name="propertyKey">
+ <string><![CDATA[USER_SHORTCUTS]]></string>
+ </property>
+ <property name="propertyType">
+ <object class="java.lang.Enum" javaEnum="true">
+ <method name="add">
+ <string><![CDATA[com.flexera.ia.vapp.datastructures.enums.ProductPropertyType]]></string>
+ <string><![CDATA[string]]></string>
+ </method>
+ </object>
+ </property>
+ <property name="propertyDescription">
+ <string><![CDATA[Choose Link Folder]]></string>
+ </property>
+ <property name="propertyValue">
+ <string><![CDATA[]]></string>
+ </property>
+ </object>
+ </method>
+ </object>
+ </property>
+ <property name="internalUID">
+ <string><![CDATA[c5bca188-1f0c-11b2-ab87-e722731676a6]]></string>
+ </property>
+ </object>
+ </method>
+ </object>
</property>
- <property name="productInformation">
+ <property name="UUID">
+ <string><![CDATA[c5bca1ba-1f0c-11b2-ab88-e722731676a6]]></string>
+ </property>
+ <property name="id">
+ <int>0</int>
+ </property>
+ <property name="name">
+ <string><![CDATA[install_VM1]]></string>
+ </property>
+ <property name="info">
<string><![CDATA[]]></string>
</property>
- <property name="productVersion">
- <string><![CDATA[2.5.1.0]]></string>
+ <property name="virtualMachineVersion">
+ <string><![CDATA[1.0]]></string>
</property>
- <property name="productVendor">
- <string><![CDATA[The Barton Group]]></string>
+ <property name="osInformation">
+ <object class="com.flexera.ia.vapp.datastructures.OperatingSystemInformation" objectID="c5bca18fab87">
+ <property name="jeosType">
+ <object class="java.lang.Enum" javaEnum="true">
+ <method name="add">
+ <string><![CDATA[com.flexera.ia.vapp.datastructures.enums.JeOS]]></string>
+ <string><![CDATA[LINUX_UBUNTU_JEOS]]></string>
+ </method>
+ </object>
+ </property>
+ <property name="osFullName">
+ <string><![CDATA[Ubuntu Oneric Omelot]]></string>
+ </property>
+ <property name="version">
+ <string><![CDATA[12.0]]></string>
+ </property>
+ <property name="osVendor">
+ <string><![CDATA[Ubuntu]]></string>
+ </property>
+ <property name="fetchPackagesFromLocalRepository">
+ <boolean>false</boolean>
+ </property>
+ </object>
</property>
- <property name="productProperties">
+ <property name="operatingSystemPackageInformation">
<object class="java.util.ArrayList" list="true">
<method name="add">
- <object class="com.flexera.ia.vapp.datastructures.ProductInformationProperty" objectID="c5bca185ab87">
- <property name="propertyKey">
- <string><![CDATA[USER_INSTALL_DIR]]></string>
+ <object class="com.flexera.ia.vapp.datastructures.OperatingSystemPackage" objectID="c5bca192ab87">
+ <property name="displayName">
+ <string><![CDATA[openssh-server]]></string>
+ </property>
+ <property name="version">
+ <string><![CDATA[1.0.1-4ubuntu3]]></string>
+ </property>
+ <property name="internalName">
+ <string><![CDATA[openssh-server]]></string>
+ </property>
+ <property name="description">
+ <string><![CDATA[secure shell (SSH) server, for secure access from remote machines]]></string>
</property>
- <property name="propertyType">
+ <property name="targetedJeOS">
<object class="java.lang.Enum" javaEnum="true">
<method name="add">
- <string><![CDATA[com.flexera.ia.vapp.datastructures.enums.ProductPropertyType]]></string>
- <string><![CDATA[string]]></string>
+ <string><![CDATA[com.flexera.ia.vapp.datastructures.enums.JeOS]]></string>
+ <string><![CDATA[LINUX_UBUNTU_JEOS]]></string>
</method>
</object>
</property>
- <property name="propertyDescription">
- <string><![CDATA[Choose Install Folder]]></string>
+ <property name="osPkgType">
+ <object class="java.lang.Enum" javaEnum="true">
+ <method name="add">
+ <string><![CDATA[com.flexera.ia.vapp.datastructures.enums.OperatingSystemPackageType]]></string>
+ <string><![CDATA[DEBIAN]]></string>
+ </method>
+ </object>
</property>
- <property name="propertyValue">
+ <property name="pacakgeLocationType">
+ <string><![CDATA[internet]]></string>
+ </property>
+ <property name="pacakgeFileLocation">
<string><![CDATA[]]></string>
</property>
</object>
</method>
<method name="add">
- <object class="com.flexera.ia.vapp.datastructures.ProductInformationProperty" objectID="c5bca187ab87">
- <property name="propertyKey">
- <string><![CDATA[USER_SHORTCUTS]]></string>
+ <object class="com.flexera.ia.vapp.datastructures.OperatingSystemPackage" objectID="c5bca193ab87">
+ <property name="displayName">
+ <string><![CDATA[openssh-server.i686]]></string>
+ </property>
+ <property name="version">
+ <string><![CDATA[5.3p1-81.el6]]></string>
+ </property>
+ <property name="internalName">
+ <string><![CDATA[openssh-server.i686]]></string>
+ </property>
+ <property name="description">
+ <string><![CDATA[openssh-server.i686]]></string>
</property>
- <property name="propertyType">
+ <property name="targetedJeOS">
<object class="java.lang.Enum" javaEnum="true">
<method name="add">
- <string><![CDATA[com.flexera.ia.vapp.datastructures.enums.ProductPropertyType]]></string>
- <string><![CDATA[string]]></string>
+ <string><![CDATA[com.flexera.ia.vapp.datastructures.enums.JeOS]]></string>
+ <string><![CDATA[LINUX_CENTOS_JEOS]]></string>
</method>
</object>
</property>
- <property name="propertyDescription">
- <string><![CDATA[Choose Link Folder]]></string>
+ <property name="osPkgType">
+ <object class="java.lang.Enum" javaEnum="true">
+ <method name="add">
+ <string><![CDATA[com.flexera.ia.vapp.datastructures.enums.OperatingSystemPackageType]]></string>
+ <string><![CDATA[RPM]]></string>
+ </method>
+ </object>
</property>
- <property name="propertyValue">
+ <property name="pacakgeLocationType">
+ <string><![CDATA[internet]]></string>
+ </property>
+ <property name="pacakgeFileLocation">
<string><![CDATA[]]></string>
</property>
</object>
</method>
</object>
</property>
- <property name="internalUID">
- <string><![CDATA[c5bca188-1f0c-11b2-ab87-e722731676a6]]></string>
- </property>
- </object>
- </method>
- </object>
- </property>
- <property name="UUID">
- <string><![CDATA[c5bca1ba-1f0c-11b2-ab88-e722731676a6]]></string>
- </property>
- <property name="id">
- <int>0</int>
- </property>
- <property name="name">
- <string><![CDATA[install_VM1]]></string>
- </property>
- <property name="info">
- <string><![CDATA[]]></string>
- </property>
- <property name="virtualMachineVersion">
- <string><![CDATA[1.0]]></string>
- </property>
- <property name="osInformation">
- <object class="com.flexera.ia.vapp.datastructures.OperatingSystemInformation" objectID="c5bca18fab87">
- <property name="jeosType">
- <object class="java.lang.Enum" javaEnum="true">
- <method name="add">
- <string><![CDATA[com.flexera.ia.vapp.datastructures.enums.JeOS]]></string>
- <string><![CDATA[LINUX_UBUNTU_JEOS]]></string>
- </method>
- </object>
- </property>
- <property name="osFullName">
- <string><![CDATA[Ubuntu Oneric Omelot]]></string>
- </property>
- <property name="version">
- <string><![CDATA[12.0]]></string>
- </property>
- <property name="osVendor">
- <string><![CDATA[Ubuntu]]></string>
- </property>
- <property name="fetchPackagesFromLocalRepository">
- <boolean>false</boolean>
- </property>
- </object>
- </property>
- <property name="operatingSystemPackageInformation">
- <object class="java.util.ArrayList" list="true">
- <method name="add">
- <object class="com.flexera.ia.vapp.datastructures.OperatingSystemPackage" objectID="c5bca192ab87">
- <property name="displayName">
- <string><![CDATA[openssh-server]]></string>
- </property>
- <property name="version">
- <string><![CDATA[1.0.1-4ubuntu3]]></string>
- </property>
- <property name="internalName">
- <string><![CDATA[openssh-server]]></string>
- </property>
- <property name="description">
- <string><![CDATA[secure shell (SSH) server, for secure access from remote machines]]></string>
- </property>
- <property name="targetedJeOS">
- <object class="java.lang.Enum" javaEnum="true">
- <method name="add">
- <string><![CDATA[com.flexera.ia.vapp.datastructures.enums.JeOS]]></string>
- <string><![CDATA[LINUX_UBUNTU_JEOS]]></string>
- </method>
- </object>
- </property>
- <property name="osPkgType">
- <object class="java.lang.Enum" javaEnum="true">
- <method name="add">
- <string><![CDATA[com.flexera.ia.vapp.datastructures.enums.OperatingSystemPackageType]]></string>
- <string><![CDATA[DEBIAN]]></string>
- </method>
- </object>
- </property>
- <property name="pacakgeLocationType">
- <string><![CDATA[internet]]></string>
- </property>
- <property name="pacakgeFileLocation">
- <string><![CDATA[]]></string>
- </property>
- </object>
- </method>
- <method name="add">
- <object class="com.flexera.ia.vapp.datastructures.OperatingSystemPackage" objectID="c5bca193ab87">
- <property name="displayName">
- <string><![CDATA[openssh-server.i686]]></string>
- </property>
- <property name="version">
- <string><![CDATA[5.3p1-81.el6]]></string>
- </property>
- <property name="internalName">
- <string><![CDATA[openssh-server.i686]]></string>
- </property>
- <property name="description">
- <string><![CDATA[openssh-server.i686]]></string>
- </property>
- <property name="targetedJeOS">
- <object class="java.lang.Enum" javaEnum="true">
- <method name="add">
- <string><![CDATA[com.flexera.ia.vapp.datastructures.enums.JeOS]]></string>
- <string><![CDATA[LINUX_CENTOS_JEOS]]></string>
- </method>
- </object>
+ <property name="scriptsInformation">
+ <object class="com.flexera.ia.vapp.datastructures.ScriptsInformation" objectID="c5bca1b4ab88"/>
</property>
- <property name="osPkgType">
- <object class="java.lang.Enum" javaEnum="true">
- <method name="add">
- <string><![CDATA[com.flexera.ia.vapp.datastructures.enums.OperatingSystemPackageType]]></string>
- <string><![CDATA[RPM]]></string>
- </method>
+ <property name="buildTimeApplicationInstallationInformation">
+ <object class="com.flexera.ia.vapp.datastructures.ApplicationInstallationInformation" objectID="c5bca1b4ab87">
+ <property name="installers">
+ <object class="java.util.ArrayList" list="true"/>
+ </property>
</object>
</property>
- <property name="pacakgeLocationType">
- <string><![CDATA[internet]]></string>
- </property>
- <property name="pacakgeFileLocation">
- <string><![CDATA[]]></string>
- </property>
- </object>
- </method>
- </object>
- </property>
- <property name="scriptsInformation">
- <object class="com.flexera.ia.vapp.datastructures.ScriptsInformation" objectID="c5bca1b4ab88"/>
- </property>
- <property name="buildTimeApplicationInstallationInformation">
- <object class="com.flexera.ia.vapp.datastructures.ApplicationInstallationInformation" objectID="c5bca1b4ab87">
- <property name="installers">
- <object class="java.util.ArrayList" list="true"/>
- </property>
- </object>
- </property>
- <property name="virtualHardwareInformation">
- <object class="com.flexera.ia.vapp.datastructures.hardware.VirtualHardwareInformation" objectID="c5bca195ab87">
- <property name="virtualHardwareProfileList">
- <object class="java.util.ArrayList" list="true">
- <method name="add">
- <object class="com.flexera.ia.vapp.datastructures.hardware.VirtualHardwareProfile" objectID="c5bca19bab87">
- <property name="profileId">
- <string><![CDATA[A Virtual Machine]]></string>
- </property>
- <property name="profileDescription">
- <string><![CDATA[Ubuntu 12.0 Linux]]></string>
- </property>
- <property name="hardwareItems">
+ <property name="virtualHardwareInformation">
+ <object class="com.flexera.ia.vapp.datastructures.hardware.VirtualHardwareInformation" objectID="c5bca195ab87">
+ <property name="virtualHardwareProfileList">
<object class="java.util.ArrayList" list="true">
<method name="add">
- <object class="com.flexera.ia.vapp.datastructures.hardware.VirtualCPU" objectID="c5bca1a0ab87">
- <property name="id">
- <int>30</int>
- </property>
- <property name="name">
- <string><![CDATA[Virtual CPU(s)]]></string>
- </property>
- <property name="info">
- <string><![CDATA[Number of virtual CPUs]]></string>
- </property>
- <property name="parent">
- <int>0</int>
- </property>
- <property name="connection">
- <string><![CDATA[]]></string>
- </property>
- <property name="address">
- <string><![CDATA[]]></string>
- </property>
- <property name="addressOnParent">
- <int>0</int>
- </property>
- <property name="virtualQuantity">
- <long>1</long>
- </property>
- <property name="reservation">
- <long>1</long>
- </property>
- <property name="limit">
- <long>1</long>
- </property>
- <property name="weight">
- <string><![CDATA[]]></string>
+ <object class="com.flexera.ia.vapp.datastructures.hardware.VirtualHardwareProfile" objectID="c5bca19bab87">
+ <property name="profileId">
+ <string><![CDATA[A Virtual Machine]]></string>
</property>
- <property name="hostResource">
- <string><![CDATA[]]></string>
+ <property name="profileDescription">
+ <string><![CDATA[Ubuntu 12.0 Linux]]></string>
</property>
- <property name="virtualHardwareResourceSubtype">
- <object class="java.lang.Enum" javaEnum="true">
+ <property name="hardwareItems">
+ <object class="java.util.ArrayList" list="true">
+ <method name="add">
+ <object class="com.flexera.ia.vapp.datastructures.hardware.VirtualCPU" objectID="c5bca1a0ab87">
+ <property name="id">
+ <int>30</int>
+ </property>
+ <property name="name">
+ <string><![CDATA[Virtual CPU(s)]]></string>
+ </property>
+ <property name="info">
+ <string><![CDATA[Number of virtual CPUs]]></string>
+ </property>
+ <property name="parent">
+ <int>0</int>
+ </property>
+ <property name="connection">
+ <string><![CDATA[]]></string>
+ </property>
+ <property name="address">
+ <string><![CDATA[]]></string>
+ </property>
+ <property name="addressOnParent">
+ <int>0</int>
+ </property>
+ <property name="virtualQuantity">
+ <long>1</long>
+ </property>
+ <property name="reservation">
+ <long>1</long>
+ </property>
+ <property name="limit">
+ <long>1</long>
+ </property>
+ <property name="weight">
+ <string><![CDATA[]]></string>
+ </property>
+ <property name="hostResource">
+ <string><![CDATA[]]></string>
+ </property>
+ <property name="virtualHardwareResourceSubtype">
+ <object class="java.lang.Enum" javaEnum="true">
+ <method name="add">
+ <string><![CDATA[com.flexera.ia.vapp.datastructures.enums.VirtualHardwareResourceSubtype]]></string>
+ <string><![CDATA[Others]]></string>
+ </method>
+ </object>
+ </property>
+ <property name="automaticAllocation">
+ <boolean>false</boolean>
+ </property>
+ <property name="allocationUnit">
+ <string><![CDATA[hertz * 10^6]]></string>
+ </property>
+ <property name="virtualHardwareResourceType">
+ <object class="java.lang.Enum" javaEnum="true">
+ <method name="add">
+ <string><![CDATA[com.flexera.ia.vapp.datastructures.enums.VirtualHardwareResourceType]]></string>
+ <string><![CDATA[Processor]]></string>
+ </method>
+ </object>
+ </property>
+ </object>
+ </method>
+ <method name="add">
+ <object class="com.flexera.ia.vapp.datastructures.hardware.VirtualSCSIController" objectID="c5bca1a5ab87">
+ <property name="id">
+ <int>92</int>
+ </property>
+ <property name="name">
+ <string><![CDATA[SCSI Controller 0 - LSI Logic]]></string>
+ </property>
+ <property name="info">
+ <string><![CDATA[SCSI Controller]]></string>
+ </property>
+ <property name="parent">
+ <int>0</int>
+ </property>
+ <property name="connection">
+ <string><![CDATA[]]></string>
+ </property>
+ <property name="address">
+ <string><![CDATA[]]></string>
+ </property>
+ <property name="addressOnParent">
+ <int>0</int>
+ </property>
+ <property name="virtualQuantity">
+ <long>1</long>
+ </property>
+ <property name="reservation">
+ <long>1</long>
+ </property>
+ <property name="limit">
+ <long>1</long>
+ </property>
+ <property name="weight">
+ <string><![CDATA[]]></string>
+ </property>
+ <property name="hostResource">
+ <string><![CDATA[]]></string>
+ </property>
+ <property name="virtualHardwareResourceSubtype">
+ <object class="java.lang.Enum" javaEnum="true">
+ <method name="add">
+ <string><![CDATA[com.flexera.ia.vapp.datastructures.enums.VirtualHardwareResourceSubtype]]></string>
+ <string><![CDATA[lsilogic]]></string>
+ </method>
+ </object>
+ </property>
+ <property name="automaticAllocation">
+ <boolean>false</boolean>
+ </property>
+ <property name="allocationUnit">
+ <string><![CDATA[]]></string>
+ </property>
+ <property name="virtualHardwareResourceType">
+ <object class="java.lang.Enum" javaEnum="true">
+ <method name="add">
+ <string><![CDATA[com.flexera.ia.vapp.datastructures.enums.VirtualHardwareResourceType]]></string>
+ <string><![CDATA[Parallel_SCSI_HBA]]></string>
+ </method>
+ </object>
+ </property>
+ </object>
+ </method>
+ <method name="add">
+ <object class="com.flexera.ia.vapp.datastructures.hardware.VirtualIDEController" objectID="c5bca1a6ab87">
+ <property name="id">
+ <int>99</int>
+ </property>
+ <property name="name">
+ <string><![CDATA[IDE]]></string>
+ </property>
+ <property name="info">
+ <string><![CDATA[IDE Controller]]></string>
+ </property>
+ <property name="parent">
+ <int>0</int>
+ </property>
+ <property name="connection">
+ <string><![CDATA[]]></string>
+ </property>
+ <property name="address">
+ <string><![CDATA[]]></string>
+ </property>
+ <property name="addressOnParent">
+ <int>0</int>
+ </property>
+ <property name="virtualQuantity">
+ <long>1</long>
+ </property>
+ <property name="reservation">
+ <long>1</long>
+ </property>
+ <property name="limit">
+ <long>1</long>
+ </property>
+ <property name="weight">
+ <string><![CDATA[]]></string>
+ </property>
+ <property name="hostResource">
+ <string><![CDATA[]]></string>
+ </property>
+ <property name="virtualHardwareResourceSubtype">
+ <object class="java.lang.Enum" javaEnum="true">
+ <method name="add">
+ <string><![CDATA[com.flexera.ia.vapp.datastructures.enums.VirtualHardwareResourceSubtype]]></string>
+ <string><![CDATA[lsilogic]]></string>
+ </method>
+ </object>
+ </property>
+ <property name="automaticAllocation">
+ <boolean>false</boolean>
+ </property>
+ <property name="allocationUnit">
+ <string><![CDATA[]]></string>
+ </property>
+ <property name="virtualHardwareResourceType">
+ <object class="java.lang.Enum" javaEnum="true">
+ <method name="add">
+ <string><![CDATA[com.flexera.ia.vapp.datastructures.enums.VirtualHardwareResourceType]]></string>
+ <string><![CDATA[IDE_Controller]]></string>
+ </method>
+ </object>
+ </property>
+ </object>
+ </method>
+ <method name="add">
+ <object class="com.flexera.ia.vapp.datastructures.hardware.VirtualHardDisk" objectID="c5bca1a8ab87">
+ <property name="id">
+ <int>3</int>
+ </property>
+ <property name="name">
+ <string><![CDATA[disk1]]></string>
+ </property>
+ <property name="info">
+ <string><![CDATA[]]></string>
+ </property>
+ <property name="parent">
+ <int>92</int>
+ </property>
+ <property name="connection">
+ <string><![CDATA[]]></string>
+ </property>
+ <property name="address">
+ <string><![CDATA[]]></string>
+ </property>
+ <property name="addressOnParent">
+ <int>0</int>
+ </property>
+ <property name="virtualQuantity">
+ <long>4</long>
+ </property>
+ <property name="reservation">
+ <long>4</long>
+ </property>
+ <property name="limit">
+ <long>4</long>
+ </property>
+ <property name="weight">
+ <string><![CDATA[]]></string>
+ </property>
+ <property name="hostResource">
+ <string><![CDATA[ovf:/disk/vmdisk1]]></string>
+ </property>
+ <property name="virtualHardwareResourceSubtype">
+ <object class="java.lang.Enum" javaEnum="true">
+ <method name="add">
+ <string><![CDATA[com.flexera.ia.vapp.datastructures.enums.VirtualHardwareResourceSubtype]]></string>
+ <string><![CDATA[Others]]></string>
+ </method>
+ </object>
+ </property>
+ <property name="automaticAllocation">
+ <boolean>false</boolean>
+ </property>
+ <property name="allocationUnit">
+ <string><![CDATA[byte * 2^30]]></string>
+ </property>
+ <property name="virtualHardwareResourceType">
+ <object class="java.lang.Enum" javaEnum="true">
+ <method name="add">
+ <string><![CDATA[com.flexera.ia.vapp.datastructures.enums.VirtualHardwareResourceType]]></string>
+ <string><![CDATA[Disk_Drive]]></string>
+ </method>
+ </object>
+ </property>
+ <property name="fileReferenceIDOfHardDisk">
+ <string><![CDATA[file1]]></string>
+ </property>
+ <property name="locationOfDiskFile">
+ <string><![CDATA[]]></string>
+ </property>
+ </object>
+ </method>
+ <method name="add">
+ <object class="com.flexera.ia.vapp.datastructures.hardware.VirtualNetworkAdapter" objectID="c5bca1aaab87">
+ <property name="id">
+ <int>9</int>
+ </property>
+ <property name="name">
+ <string><![CDATA[Flexible]]></string>
+ </property>
+ <property name="info">
+ <string><![CDATA[The bridged network]]></string>
+ </property>
+ <property name="parent">
+ <int>0</int>
+ </property>
+ <property name="connection">
+ <string><![CDATA[VM Network]]></string>
+ </property>
+ <property name="address">
+ <string><![CDATA[]]></string>
+ </property>
+ <property name="addressOnParent">
+ <int>2</int>
+ </property>
+ <property name="virtualQuantity">
+ <long>1</long>
+ </property>
+ <property name="reservation">
+ <long>1</long>
+ </property>
+ <property name="limit">
+ <long>1</long>
+ </property>
+ <property name="weight">
+ <string><![CDATA[]]></string>
+ </property>
+ <property name="hostResource">
+ <string><![CDATA[]]></string>
+ </property>
+ <property name="virtualHardwareResourceSubtype">
+ <object class="java.lang.Enum" javaEnum="true">
+ <method name="add">
+ <string><![CDATA[com.flexera.ia.vapp.datastructures.enums.VirtualHardwareResourceSubtype]]></string>
+ <string><![CDATA[Flexible]]></string>
+ </method>
+ </object>
+ </property>
+ <property name="automaticAllocation">
+ <boolean>true</boolean>
+ </property>
+ <property name="allocationUnit">
+ <string><![CDATA[]]></string>
+ </property>
+ <property name="virtualHardwareResourceType">
+ <object class="java.lang.Enum" javaEnum="true">
+ <method name="add">
+ <string><![CDATA[com.flexera.ia.vapp.datastructures.enums.VirtualHardwareResourceType]]></string>
+ <string><![CDATA[Ethernet_Adapter]]></string>
+ </method>
+ </object>
+ </property>
+ </object>
+ </method>
<method name="add">
- <string><![CDATA[com.flexera.ia.vapp.datastructures.enums.VirtualHardwareResourceSubtype]]></string>
- <string><![CDATA[Others]]></string>
+ <object class="com.flexera.ia.vapp.datastructures.hardware.VirtualRAM" objectID="c5bca1abab87">
+ <property name="id">
+ <int>87</int>
+ </property>
+ <property name="name">
+ <string><![CDATA[MB of Memory]]></string>
+ </property>
+ <property name="info">
+ <string><![CDATA[Memory size]]></string>
+ </property>
+ <property name="parent">
+ <int>0</int>
+ </property>
+ <property name="connection">
+ <string><![CDATA[]]></string>
+ </property>
+ <property name="address">
+ <string><![CDATA[]]></string>
+ </property>
+ <property name="addressOnParent">
+ <int>0</int>
+ </property>
+ <property name="virtualQuantity">
+ <long>1024</long>
+ </property>
+ <property name="reservation">
+ <long>1024</long>
+ </property>
+ <property name="limit">
+ <long>1024</long>
+ </property>
+ <property name="weight">
+ <string><![CDATA[]]></string>
+ </property>
+ <property name="hostResource">
+ <string><![CDATA[]]></string>
+ </property>
+ <property name="virtualHardwareResourceSubtype">
+ <object class="java.lang.Enum" javaEnum="true">
+ <method name="add">
+ <string><![CDATA[com.flexera.ia.vapp.datastructures.enums.VirtualHardwareResourceSubtype]]></string>
+ <string><![CDATA[Others]]></string>
+ </method>
+ </object>
+ </property>
+ <property name="automaticAllocation">
+ <boolean>false</boolean>
+ </property>
+ <property name="allocationUnit">
+ <string><![CDATA[byte * 2^20]]></string>
+ </property>
+ <property name="virtualHardwareResourceType">
+ <object class="java.lang.Enum" javaEnum="true">
+ <method name="add">
+ <string><![CDATA[com.flexera.ia.vapp.datastructures.enums.VirtualHardwareResourceType]]></string>
+ <string><![CDATA[Memory]]></string>
+ </method>
+ </object>
+ </property>
+ </object>
</method>
</object>
</property>
- <property name="automaticAllocation">
- <boolean>false</boolean>
- </property>
- <property name="allocationUnit">
- <string><![CDATA[hertz * 10^6]]></string>
- </property>
- <property name="virtualHardwareResourceType">
+ <property name="amazonInstanceType">
<object class="java.lang.Enum" javaEnum="true">
<method name="add">
- <string><![CDATA[com.flexera.ia.vapp.datastructures.enums.VirtualHardwareResourceType]]></string>
- <string><![CDATA[Processor]]></string>
+ <string><![CDATA[com.flexera.ia.vapp.datastructures.enums.AmazonInstanceType]]></string>
+ <string><![CDATA[SMALL]]></string>
</method>
</object>
</property>
</object>
</method>
+ </object>
+ </property>
+ <property name="systemType">
+ <object class="java.lang.Enum" javaEnum="true">
+ <method name="add">
+ <string><![CDATA[com.flexera.ia.vapp.datastructures.enums.VirtualSystemType]]></string>
+ <string><![CDATA[vmx07]]></string>
+ </method>
+ </object>
+ </property>
+ <property name="instanceId">
+ <int>97</int>
+ </property>
+ </object>
+ </property>
+ <property name="startupInfo">
+ <object class="com.flexera.ia.vapp.datastructures.VirtualSystemEntityStartupInfo" objectID="c5bca1b5ab88">
+ <property name="startupDelaySeconds">
+ <long>10</long>
+ </property>
+ <property name="stopDelaySeconds">
+ <long>10</long>
+ </property>
+ <property name="startAction">
+ <object class="java.lang.Enum" javaEnum="true">
<method name="add">
- <object class="com.flexera.ia.vapp.datastructures.hardware.VirtualSCSIController" objectID="c5bca1a5ab87">
- <property name="id">
- <int>92</int>
- </property>
- <property name="name">
- <string><![CDATA[SCSI Controller 0 - LSI Logic]]></string>
+ <string><![CDATA[com.flexera.ia.vapp.datastructures.enums.StartAction]]></string>
+ <string><![CDATA[powerOn]]></string>
+ </method>
+ </object>
+ </property>
+ <property name="stopAction">
+ <object class="java.lang.Enum" javaEnum="true">
+ <method name="add">
+ <string><![CDATA[com.flexera.ia.vapp.datastructures.enums.StopAction]]></string>
+ <string><![CDATA[guestShutdown]]></string>
+ </method>
+ </object>
+ </property>
+ <property name="startOrder">
+ <int>0</int>
+ </property>
+ <property name="stopOrder">
+ <int>0</int>
+ </property>
+ </object>
+ </property>
+ <property name="firstBootTimeApplicationInstallationInformation">
+ <object class="com.flexera.ia.vapp.datastructures.ApplicationInstallationInformation" objectID="c5bca189ab87">
+ <property name="installers">
+ <object class="java.util.ArrayList" list="true">
+ <method name="add">
+ <object class="com.flexera.ia.vapp.datastructures.ApplicationInstaller" objectID="c5bca18cab87">
+ <property name="iaInstaller">
+ <boolean>true</boolean>
</property>
- <property name="info">
- <string><![CDATA[SCSI Controller]]></string>
+ <property name="thisInstaller">
+ <boolean>true</boolean>
</property>
- <property name="parent">
- <int>0</int>
+ <property name="buildConfiguration">
+ <object refID="cc2227a996cd"/>
</property>
- <property name="connection">
+ <property name="locationOfInstaller">
<string><![CDATA[]]></string>
</property>
- <property name="address">
+ <property name="locationOfResponseFile">
<string><![CDATA[]]></string>
</property>
- <property name="addressOnParent">
- <int>0</int>
+ <property name="installationCommand">
+ <string><![CDATA[]]></string>
</property>
- <property name="virtualQuantity">
- <long>1</long>
+ <property name="executable">
+ <string><![CDATA[]]></string>
</property>
- <property name="reservation">
- <long>1</long>
+ <property name="buildTarget">
+ <string><![CDATA[Linux]]></string>
</property>
- <property name="limit">
- <long>1</long>
- </property>
- <property name="weight">
- <string><![CDATA[]]></string>
- </property>
- <property name="hostResource">
- <string><![CDATA[]]></string>
- </property>
- <property name="virtualHardwareResourceSubtype">
- <object class="java.lang.Enum" javaEnum="true">
- <method name="add">
- <string><![CDATA[com.flexera.ia.vapp.datastructures.enums.VirtualHardwareResourceSubtype]]></string>
- <string><![CDATA[lsilogic]]></string>
- </method>
- </object>
- </property>
- <property name="automaticAllocation">
- <boolean>false</boolean>
- </property>
- <property name="allocationUnit">
- <string><![CDATA[]]></string>
- </property>
- <property name="virtualHardwareResourceType">
- <object class="java.lang.Enum" javaEnum="true">
- <method name="add">
- <string><![CDATA[com.flexera.ia.vapp.datastructures.enums.VirtualHardwareResourceType]]></string>
- <string><![CDATA[Parallel_SCSI_HBA]]></string>
- </method>
- </object>
- </property>
- </object>
- </method>
- <method name="add">
- <object class="com.flexera.ia.vapp.datastructures.hardware.VirtualIDEController" objectID="c5bca1a6ab87">
- <property name="id">
- <int>99</int>
- </property>
- <property name="name">
- <string><![CDATA[IDE]]></string>
- </property>
- <property name="info">
- <string><![CDATA[IDE Controller]]></string>
- </property>
- <property name="parent">
- <int>0</int>
- </property>
- <property name="connection">
- <string><![CDATA[]]></string>
- </property>
- <property name="address">
- <string><![CDATA[]]></string>
- </property>
- <property name="addressOnParent">
- <int>0</int>
- </property>
- <property name="virtualQuantity">
- <long>1</long>
- </property>
- <property name="reservation">
- <long>1</long>
- </property>
- <property name="limit">
- <long>1</long>
- </property>
- <property name="weight">
- <string><![CDATA[]]></string>
- </property>
- <property name="hostResource">
- <string><![CDATA[]]></string>
- </property>
- <property name="virtualHardwareResourceSubtype">
- <object class="java.lang.Enum" javaEnum="true">
- <method name="add">
- <string><![CDATA[com.flexera.ia.vapp.datastructures.enums.VirtualHardwareResourceSubtype]]></string>
- <string><![CDATA[lsilogic]]></string>
- </method>
- </object>
- </property>
- <property name="automaticAllocation">
- <boolean>false</boolean>
- </property>
- <property name="allocationUnit">
- <string><![CDATA[]]></string>
- </property>
- <property name="virtualHardwareResourceType">
- <object class="java.lang.Enum" javaEnum="true">
- <method name="add">
- <string><![CDATA[com.flexera.ia.vapp.datastructures.enums.VirtualHardwareResourceType]]></string>
- <string><![CDATA[IDE_Controller]]></string>
- </method>
- </object>
- </property>
- </object>
- </method>
- <method name="add">
- <object class="com.flexera.ia.vapp.datastructures.hardware.VirtualHardDisk" objectID="c5bca1a8ab87">
- <property name="id">
- <int>3</int>
- </property>
- <property name="name">
- <string><![CDATA[disk1]]></string>
- </property>
- <property name="info">
- <string><![CDATA[]]></string>
- </property>
- <property name="parent">
- <int>92</int>
- </property>
- <property name="connection">
- <string><![CDATA[]]></string>
- </property>
- <property name="address">
- <string><![CDATA[]]></string>
- </property>
- <property name="addressOnParent">
- <int>0</int>
- </property>
- <property name="virtualQuantity">
- <long>4</long>
- </property>
- <property name="reservation">
- <long>4</long>
- </property>
- <property name="limit">
- <long>4</long>
- </property>
- <property name="weight">
- <string><![CDATA[]]></string>
- </property>
- <property name="hostResource">
- <string><![CDATA[ovf:/disk/vmdisk1]]></string>
- </property>
- <property name="virtualHardwareResourceSubtype">
- <object class="java.lang.Enum" javaEnum="true">
- <method name="add">
- <string><![CDATA[com.flexera.ia.vapp.datastructures.enums.VirtualHardwareResourceSubtype]]></string>
- <string><![CDATA[Others]]></string>
- </method>
- </object>
- </property>
- <property name="automaticAllocation">
- <boolean>false</boolean>
- </property>
- <property name="allocationUnit">
- <string><![CDATA[byte * 2^30]]></string>
- </property>
- <property name="virtualHardwareResourceType">
- <object class="java.lang.Enum" javaEnum="true">
- <method name="add">
- <string><![CDATA[com.flexera.ia.vapp.datastructures.enums.VirtualHardwareResourceType]]></string>
- <string><![CDATA[Disk_Drive]]></string>
- </method>
- </object>
- </property>
- <property name="fileReferenceIDOfHardDisk">
- <string><![CDATA[file1]]></string>
- </property>
- <property name="locationOfDiskFile">
- <string><![CDATA[]]></string>
- </property>
- </object>
- </method>
- <method name="add">
- <object class="com.flexera.ia.vapp.datastructures.hardware.VirtualNetworkAdapter" objectID="c5bca1aaab87">
- <property name="id">
- <int>9</int>
- </property>
- <property name="name">
- <string><![CDATA[Flexible]]></string>
- </property>
- <property name="info">
- <string><![CDATA[The bridged network]]></string>
- </property>
- <property name="parent">
- <int>0</int>
- </property>
- <property name="connection">
- <string><![CDATA[VM Network]]></string>
- </property>
- <property name="address">
- <string><![CDATA[]]></string>
- </property>
- <property name="addressOnParent">
- <int>2</int>
- </property>
- <property name="virtualQuantity">
- <long>1</long>
- </property>
- <property name="reservation">
- <long>1</long>
- </property>
- <property name="limit">
- <long>1</long>
- </property>
- <property name="weight">
- <string><![CDATA[]]></string>
- </property>
- <property name="hostResource">
- <string><![CDATA[]]></string>
- </property>
- <property name="virtualHardwareResourceSubtype">
- <object class="java.lang.Enum" javaEnum="true">
- <method name="add">
- <string><![CDATA[com.flexera.ia.vapp.datastructures.enums.VirtualHardwareResourceSubtype]]></string>
- <string><![CDATA[Flexible]]></string>
- </method>
- </object>
- </property>
- <property name="automaticAllocation">
- <boolean>true</boolean>
- </property>
- <property name="allocationUnit">
- <string><![CDATA[]]></string>
- </property>
- <property name="virtualHardwareResourceType">
- <object class="java.lang.Enum" javaEnum="true">
- <method name="add">
- <string><![CDATA[com.flexera.ia.vapp.datastructures.enums.VirtualHardwareResourceType]]></string>
- <string><![CDATA[Ethernet_Adapter]]></string>
- </method>
- </object>
- </property>
- </object>
- </method>
- <method name="add">
- <object class="com.flexera.ia.vapp.datastructures.hardware.VirtualRAM" objectID="c5bca1abab87">
- <property name="id">
- <int>87</int>
- </property>
- <property name="name">
- <string><![CDATA[MB of Memory]]></string>
- </property>
- <property name="info">
- <string><![CDATA[Memory size]]></string>
- </property>
- <property name="parent">
- <int>0</int>
- </property>
- <property name="connection">
- <string><![CDATA[]]></string>
- </property>
- <property name="address">
- <string><![CDATA[]]></string>
- </property>
- <property name="addressOnParent">
- <int>0</int>
- </property>
- <property name="virtualQuantity">
- <long>1024</long>
- </property>
- <property name="reservation">
- <long>1024</long>
- </property>
- <property name="limit">
- <long>1024</long>
- </property>
- <property name="weight">
- <string><![CDATA[]]></string>
- </property>
- <property name="hostResource">
- <string><![CDATA[]]></string>
- </property>
- <property name="virtualHardwareResourceSubtype">
- <object class="java.lang.Enum" javaEnum="true">
- <method name="add">
- <string><![CDATA[com.flexera.ia.vapp.datastructures.enums.VirtualHardwareResourceSubtype]]></string>
- <string><![CDATA[Others]]></string>
- </method>
- </object>
- </property>
- <property name="automaticAllocation">
- <boolean>false</boolean>
- </property>
- <property name="allocationUnit">
- <string><![CDATA[byte * 2^20]]></string>
- </property>
- <property name="virtualHardwareResourceType">
- <object class="java.lang.Enum" javaEnum="true">
- <method name="add">
- <string><![CDATA[com.flexera.ia.vapp.datastructures.enums.VirtualHardwareResourceType]]></string>
- <string><![CDATA[Memory]]></string>
- </method>
- </object>
+ <property name="internalUID">
+ <string><![CDATA[c5bca188-1f0c-11b2-ab87-e722731676a6]]></string>
</property>
</object>
</method>
</object>
</property>
- <property name="amazonInstanceType">
+ </object>
+ </property>
+ <property name="choosenVMInfo">
+ <object class="com.flexera.ia.vapp.chooseavm.ChoosenVMInfo" objectID="ee9b975b9f76">
+ <property name="templateTypeOption">
<object class="java.lang.Enum" javaEnum="true">
<method name="add">
- <string><![CDATA[com.flexera.ia.vapp.datastructures.enums.AmazonInstanceType]]></string>
- <string><![CDATA[SMALL]]></string>
+ <string><![CDATA[com.flexera.ia.vapp.chooseavm.VMTemplateTypeOption]]></string>
+ <string><![CDATA[IA_VM_TEMPLATE]]></string>
</method>
</object>
</property>
+ <property name="vmTemplateName">
+ <string><![CDATA[No VM Templates available]]></string>
+ </property>
+ <property name="powerOnVmIfNotRunning">
+ <boolean>false</boolean>
+ </property>
+ <property name="vmPartOfVapp">
+ <boolean>false</boolean>
+ </property>
</object>
- </method>
- </object>
- </property>
- <property name="systemType">
- <object class="java.lang.Enum" javaEnum="true">
- <method name="add">
- <string><![CDATA[com.flexera.ia.vapp.datastructures.enums.VirtualSystemType]]></string>
- <string><![CDATA[vmx07]]></string>
- </method>
+ </property>
</object>
- </property>
- <property name="instanceId">
- <int>97</int>
- </property>
+ </method>
</object>
</property>
- <property name="startupInfo">
- <object class="com.flexera.ia.vapp.datastructures.VirtualSystemEntityStartupInfo" objectID="c5bca1b5ab88">
+ <property name="vseStartupInfo">
+ <object class="com.flexera.ia.vapp.datastructures.VirtualSystemEntityStartupInfo" objectID="ee9b974b9f75">
<property name="startupDelaySeconds">
<long>10</long>
</property>
<object class="java.lang.Enum" javaEnum="true">
<method name="add">
<string><![CDATA[com.flexera.ia.vapp.datastructures.enums.StopAction]]></string>
- <string><![CDATA[guestShutdown]]></string>
+ <string><![CDATA[powerOff]]></string>
</method>
</object>
</property>
- </object>
- </property>
- <property name="firstBootTimeApplicationInstallationInformation">
- <object class="com.flexera.ia.vapp.datastructures.ApplicationInstallationInformation" objectID="c5bca189ab87">
- <property name="installers">
- <object class="java.util.ArrayList" list="true">
- <method name="add">
- <object class="com.flexera.ia.vapp.datastructures.ApplicationInstaller" objectID="c5bca18cab87">
- <property name="iaInstaller">
- <boolean>true</boolean>
- </property>
- <property name="thisInstaller">
- <boolean>true</boolean>
- </property>
- <property name="buildConfiguration">
- <object refID="cc2227a996cd"/>
- </property>
- <property name="locationOfInstaller">
- <string><![CDATA[]]></string>
- </property>
- <property name="locationOfResponseFile">
- <string><![CDATA[]]></string>
- </property>
- <property name="installationCommand">
- <string><![CDATA[]]></string>
- </property>
- <property name="executable">
- <string><![CDATA[]]></string>
- </property>
- <property name="buildTarget">
- <string><![CDATA[Linux]]></string>
- </property>
- <property name="internalUID">
- <string><![CDATA[c5bca188-1f0c-11b2-ab87-e722731676a6]]></string>
- </property>
- </object>
- </method>
- </object>
+ <property name="startOrder">
+ <int>0</int>
+ </property>
+ <property name="stopOrder">
+ <int>0</int>
</property>
</object>
</property>
</method>
</object>
</property>
+ <property name="useSameBuildCredentialsForDeployment">
+ <boolean>true</boolean>
+ </property>
</object>
</property>
<property name="supportedHypervisorType">
<boolean>true</boolean>
</property>
<property name="credentialInformation">
- <object class="com.flexera.ia.vapp.datastructures.VMWareCredentialInformationImpl" objectID="f46e0c60ac1e">
+ <object class="com.flexera.ia.vapp.datastructures.VMWareCredentialInformationImpl" objectID="27759feba050">
<property name="hostName">
<string><![CDATA[]]></string>
</property>
</method>
<method name="put">
<string><![CDATA[com.zerog.ia.installer.options.valid.vm.list]]></string>
- <string><![CDATA[1.5+]]></string>
+ <string><![CDATA[1.6,1.7,1.8+]]></string>
</method>
<method name="put">
<string><![CDATA[com.zerog.ia.project.build.last.date]]></string>
- <string><![CDATA[30 October 2012 17:05:05 o'clock GMT]]></string>
+ <string><![CDATA[21 October 2013 14:27:40 o'clock BST]]></string>
</method>
<method name="put">
<string><![CDATA[com.zerog.ia.build.platform.windows.vm]]></string>
</method>
<method name="put">
<string><![CDATA[com.zerog.ia.project.save.last.date]]></string>
- <string><![CDATA[08 November 2012 16:49:06 o'clock GMT]]></string>
+ <string><![CDATA[01 November 2013 13:57:31 o'clock GMT]]></string>
</method>
<method name="put">
<string><![CDATA[com.zerog.ia.build.options.optimization.platform.cdrom]]></string>
</method>
<method name="put">
<string><![CDATA[com.zerog.ia.installer.options.platform.macosx.authentication.gui]]></string>
- <string><![CDATA[true]]></string>
+ <string><![CDATA[false]]></string>
</method>
<method name="put">
<string><![CDATA[com.zerog.ia.installer.options.platform.macosx.vm.version]]></string>
- <string><![CDATA[1.5+]]></string>
+ <string><![CDATA[1.6+]]></string>
</method>
<method name="put">
<string><![CDATA[com.zerog.ia.build.platform.java.novm]]></string>
<property name="fileModificationTimestampBehavior">
<int>1</int>
</property>
+ <property name="RAIRSpec">
+ <object class="com.zerog.ia.installer.iseries.RAIRSpec" objectID="ee9b98899f7a">
+ <property name="belongsToUninstallPhase">
+ <boolean>false</boolean>
+ </property>
+ <property name="rollbackEnabledCancel">
+ <boolean>true</boolean>
+ </property>
+ <property name="rollbackEnabledError">
+ <boolean>true</boolean>
+ </property>
+ <property name="ruleExpression">
+ <string><![CDATA[]]></string>
+ </property>
+ <property name="enabled">
+ <boolean>false</boolean>
+ </property>
+ </object>
+ </property>
<property name="fileModificationTimestamp">
<long>-1</long>
</property>
<string><![CDATA[Jalview]]></string>
</property>
<property name="installerName">
- <string><![CDATA[install]]></string>
+ <string><![CDATA[install-jalview]]></string>
</property>
<property name="productName">
<string><![CDATA[Jalview]]></string>
<string><![CDATA[jalview-discuss@jalview.org]]></string>
</property>
<property name="copyright">
- <string><![CDATA[2012]]></string>
+ <string><![CDATA[2013]]></string>
</property>
<property name="license">
<string><![CDATA[Commercial]]></string>
<property name="defaultWinUninstallerUIMode">
<string><![CDATA[SAME_AS_INSTALLER]]></string>
</property>
+ <property name="defaultWin64InstallerUIMode">
+ <string><![CDATA[GUI]]></string>
+ </property>
+ <property name="defaultWin64UninstallerUIMode">
+ <string><![CDATA[SAME_AS_INSTALLER]]></string>
+ </property>
<property name="defaultUnixInstallerUIMode">
<string><![CDATA[GUI]]></string>
</property>
<property name="installerIconName">
<string><![CDATA[Icon1.ico]]></string>
</property>
+ <property name="installerIconImagePath">
+ <string><![CDATA[com/zerog/ia/installer/images/]]></string>
+ </property>
+ <property name="installerIconImageName">
+ <string><![CDATA[iaIcon.png]]></string>
+ </property>
<property name="billboardTimerEnabled">
<boolean>false</boolean>
</property>
<property name="swidTagIncluded">
<boolean>true</boolean>
</property>
+ <property name="codeSignOnMacEnabled">
+ <boolean>false</boolean>
+ </property>
+ <property name="oldStyleInstallersEnabled">
+ <boolean>false</boolean>
+ </property>
<visualChildren>
<object class="com.zerog.ia.installer.InstallSet" objectID="fe7d6493a66a">
<property name="belongsToUninstallPhase">
<boolean>false</boolean>
</property>
<property name="sourcePath">
- <string><![CDATA[/opt/homes/cruisecontrol/jalview/examples/]]></string>
+ <string><![CDATA[/home/cruisecontrol/jalview/examples/]]></string>
</property>
<property name="shouldUninstall">
<boolean>true</boolean>
<string><![CDATA[jpred_msa.seq.concise]]></string>
</property>
<property name="fileSize">
- <long>-1</long>
+ <long>7882</long>
</property>
<property name="macBinary">
<boolean>false</boolean>
<boolean>false</boolean>
</property>
<property name="sourcePath">
- <string><![CDATA[/opt/homes/cruisecontrol/jalview/examples/]]></string>
+ <string><![CDATA[/home/cruisecontrol/jalview/examples/]]></string>
</property>
<property name="shouldUninstall">
<boolean>true</boolean>
<string><![CDATA[jpred_msa.fasta]]></string>
</property>
<property name="fileSize">
- <long>-1</long>
+ <long>2079</long>
</property>
<property name="macBinary">
<boolean>false</boolean>
<boolean>false</boolean>
</property>
<property name="sourcePath">
- <string><![CDATA[/opt/homes/cruisecontrol/jalview/examples/]]></string>
+ <string><![CDATA[/home/cruisecontrol/jalview/examples/]]></string>
</property>
<property name="shouldUninstall">
<boolean>true</boolean>
<string><![CDATA[plantfdx.annotations]]></string>
</property>
<property name="fileSize">
- <long>-1</long>
+ <long>547</long>
</property>
<property name="macBinary">
<boolean>false</boolean>
<boolean>false</boolean>
</property>
<property name="sourcePath">
- <string><![CDATA[/opt/homes/cruisecontrol/jalview/examples/]]></string>
+ <string><![CDATA[/home/cruisecontrol/jalview/examples/]]></string>
</property>
<property name="shouldUninstall">
<boolean>true</boolean>
<string><![CDATA[plantfdx.fa]]></string>
</property>
<property name="fileSize">
- <long>-1</long>
+ <long>2655</long>
</property>
<property name="macBinary">
<boolean>false</boolean>
<boolean>false</boolean>
</property>
<property name="sourcePath">
- <string><![CDATA[/opt/homes/cruisecontrol/jalview/examples/]]></string>
+ <string><![CDATA[/home/cruisecontrol/jalview/examples/]]></string>
</property>
<property name="shouldUninstall">
<boolean>true</boolean>
<string><![CDATA[exampleFile_2_7.jar]]></string>
</property>
<property name="fileSize">
- <long>-1</long>
+ <long>107135</long>
</property>
<property name="macBinary">
<boolean>false</boolean>
<boolean>false</boolean>
</property>
<property name="sourcePath">
- <string><![CDATA[/opt/homes/cruisecontrol/jalview/examples/]]></string>
+ <string><![CDATA[/home/cruisecontrol/jalview/examples/]]></string>
</property>
<property name="shouldUninstall">
<boolean>true</boolean>
<string><![CDATA[1gaq.txt]]></string>
</property>
<property name="fileSize">
- <long>-1</long>
+ <long>56649</long>
</property>
<property name="macBinary">
<boolean>false</boolean>
<boolean>false</boolean>
</property>
<property name="sourcePath">
- <string><![CDATA[/opt/homes/cruisecontrol/jalview/examples/]]></string>
+ <string><![CDATA[/home/cruisecontrol/jalview/examples/]]></string>
</property>
<property name="shouldUninstall">
<boolean>true</boolean>
<string><![CDATA[uniref50.fa]]></string>
</property>
<property name="fileSize">
- <long>-1</long>
+ <long>3039</long>
</property>
<property name="macBinary">
<boolean>false</boolean>
<boolean>false</boolean>
</property>
<property name="sourcePath">
- <string><![CDATA[/opt/homes/cruisecontrol/jalview/examples/]]></string>
+ <string><![CDATA[/home/cruisecontrol/jalview/examples/]]></string>
</property>
<property name="shouldUninstall">
<boolean>true</boolean>
<string><![CDATA[plantfdx.features]]></string>
</property>
<property name="fileSize">
- <long>-1</long>
+ <long>6129</long>
</property>
<property name="macBinary">
<boolean>false</boolean>
<boolean>false</boolean>
</property>
<property name="sourcePath">
- <string><![CDATA[/opt/homes/cruisecontrol/jalview/examples/]]></string>
+ <string><![CDATA[/home/cruisecontrol/jalview/examples/]]></string>
</property>
<property name="shouldUninstall">
<boolean>true</boolean>
<string><![CDATA[exampleFeatures.txt]]></string>
</property>
<property name="fileSize">
- <long>-1</long>
+ <long>31397</long>
</property>
<property name="macBinary">
<boolean>false</boolean>
<boolean>false</boolean>
</property>
<property name="sourcePath">
- <string><![CDATA[/opt/homes/cruisecontrol/jalview/examples/]]></string>
+ <string><![CDATA[/home/cruisecontrol/jalview/examples/]]></string>
</property>
<property name="shouldUninstall">
<boolean>true</boolean>
<string><![CDATA[uniref50_mz.fa]]></string>
</property>
<property name="fileSize">
- <long>-1</long>
+ <long>1683</long>
</property>
<property name="macBinary">
<boolean>false</boolean>
<boolean>false</boolean>
</property>
<property name="sourcePath">
- <string><![CDATA[/opt/homes/cruisecontrol/jalview/examples/]]></string>
+ <string><![CDATA[/home/cruisecontrol/jalview/examples/]]></string>
</property>
<property name="shouldUninstall">
<boolean>true</boolean>
<string><![CDATA[ferredoxin.nw]]></string>
</property>
<property name="fileSize">
- <long>-1</long>
+ <long>392</long>
</property>
<property name="macBinary">
<boolean>false</boolean>
<boolean>false</boolean>
</property>
<property name="sourcePath">
- <string><![CDATA[/opt/homes/cruisecontrol/jalview/examples/]]></string>
+ <string><![CDATA[/home/cruisecontrol/jalview/examples/]]></string>
</property>
<property name="shouldUninstall">
<boolean>true</boolean>
<string><![CDATA[RF00031_folded.stk]]></string>
</property>
<property name="fileSize">
- <long>-1</long>
+ <long>19118</long>
</property>
<property name="macBinary">
<boolean>false</boolean>
<int>0</int>
</property>
</object>
- <object class="com.zerog.ia.installer.actions.InstallDirectory" objectID="f44fc5d5aba1">
+ <object refID="f46c2f42ab93"/>
+ <object class="com.zerog.ia.installer.actions.InstallDirectory" objectID="24485f85a670">
<property name="belongsToUninstallPhase">
<boolean>false</boolean>
</property>
<boolean>false</boolean>
</property>
<property name="sourcePath">
- <string><![CDATA[/opt/homes/cruisecontrol/jalview/examples/groovy]]></string>
+ <string><![CDATA[/home/cruisecontrol/jalview/lib]]></string>
</property>
<property name="shouldUninstall">
<boolean>true</boolean>
</property>
<property name="destinationName">
- <string><![CDATA[groovy]]></string>
+ <string><![CDATA[lib]]></string>
</property>
<property name="removeRecursively">
<boolean>false</boolean>
<property name="macBinary">
<boolean>false</boolean>
</property>
+ <visualChildren>
+ <object refID="24485f87a670"/>
+ <object refID="88d4aff3b0c6"/>
+ <object refID="24485f88a670"/>
+ <object refID="24485f88a671"/>
+ <object refID="24485f89a671"/>
+ <object refID="24485f8aa671"/>
+ <object refID="24485f89a672"/>
+ <object refID="24485f8aa672"/>
+ <object refID="24485f8ba672"/>
+ <object refID="24485f8aa673"/>
+ <object refID="24485f8ba673"/>
+ <object refID="24485f8ca673"/>
+ <object refID="24485f8ba674"/>
+ <object refID="24485f8ca674"/>
+ <object refID="b1a16838a449"/>
+ <object refID="b1a16839a449"/>
+ <object refID="495aeddb8b3d"/>
+ <object refID="4996716cba8e"/>
+ <object refID="8fbb17519b9c"/>
+ <object refID="8fbb17529b9c"/>
+ <object refID="8fbb17539b9c"/>
+ <object refID="8fbb17529b9d"/>
+ <object refID="aa3a521fb6bc"/>
+ <object refID="aa3a5220b6bc"/>
+ <object refID="df3a5220b6bc"/>
+ <object refID="aa3a5220b6bc1"/>
+ <object refID="f44ca391ab9f"/>
+ <object refID="f44ca392ab9f"/>
+ <object refID="f44ca393ab9f"/>
+ <object refID="f46c2f42ab93"/>
+ </visualChildren>
</object>
- <object class="com.zerog.ia.installer.actions.InstallDirectory" objectID="f44fc598aba0">
+ <object class="com.zerog.ia.installer.actions.InstallDirectory" objectID="f44fc5d5aba1">
<property name="belongsToUninstallPhase">
<boolean>false</boolean>
</property>
<boolean>false</boolean>
</property>
<property name="sourcePath">
- <string><![CDATA[/opt/homes/cruisecontrol/jalview/examples]]></string>
+ <string><![CDATA[/home/cruisecontrol/jalview/examples/groovy]]></string>
</property>
<property name="shouldUninstall">
- <boolean>false</boolean>
+ <boolean>true</boolean>
</property>
<property name="destinationName">
- <string><![CDATA[examples]]></string>
+ <string><![CDATA[groovy]]></string>
</property>
<property name="removeRecursively">
<boolean>false</boolean>
<property name="macBinary">
<boolean>false</boolean>
</property>
- <visualChildren>
- <object refID="f44fc5b2aba1"/>
- <object refID="f44fc5d5aba1"/>
- <object refID="f44fc608aba1"/>
- <object refID="f44fc63caba2"/>
- <object refID="f44fc640aba2"/>
- <object refID="f44fc645aba2"/>
- <object refID="f44fc648aba2"/>
- <object refID="f44fc64caba2"/>
- <object refID="f44fc654aba2"/>
- <object refID="f44fc67baba3"/>
- <object refID="f44fc683aba3"/>
- <object refID="f44fc687aba3"/>
- <object refID="f44fc68baba3"/>
- </visualChildren>
</object>
- <object refID="f46c2f42ab93"/>
- <object class="com.zerog.ia.installer.actions.InstallDirectory" objectID="24485f85a670">
+ <object class="com.zerog.ia.installer.actions.InstallDirectory" objectID="f44fc598aba0">
<property name="belongsToUninstallPhase">
<boolean>false</boolean>
</property>
<boolean>false</boolean>
</property>
<property name="sourcePath">
- <string><![CDATA[/home/cruisecontrol/jalview/lib]]></string>
+ <string><![CDATA[/home/cruisecontrol/jalview/examples]]></string>
</property>
<property name="shouldUninstall">
- <boolean>true</boolean>
+ <boolean>false</boolean>
</property>
<property name="destinationName">
- <string><![CDATA[lib]]></string>
+ <string><![CDATA[examples]]></string>
</property>
<property name="removeRecursively">
<boolean>false</boolean>
<boolean>false</boolean>
</property>
<visualChildren>
- <object refID="24485f87a670"/>
- <object refID="88d4aff3b0c6"/>
- <object refID="24485f88a670"/>
- <object refID="24485f88a671"/>
- <object refID="24485f89a671"/>
- <object refID="24485f8aa671"/>
- <object refID="24485f89a672"/>
- <object refID="24485f8aa672"/>
- <object refID="24485f8ba672"/>
- <object refID="24485f8aa673"/>
- <object refID="24485f8ba673"/>
- <object refID="24485f8ca673"/>
- <object refID="24485f8ba674"/>
- <object refID="24485f8ca674"/>
- <object refID="b1a16838a449"/>
- <object refID="b1a16839a449"/>
- <object refID="495aeddb8b3d"/>
- <object refID="4996716cba8e"/>
- <object refID="8fbb17519b9c"/>
- <object refID="8fbb17529b9c"/>
- <object refID="8fbb17539b9c"/>
- <object refID="8fbb17529b9d"/>
- <object refID="aa3a521fb6bc"/>
- <object refID="aa3a5220b6bc"/>
- <object refID="df3a5220b6bc"/>
- <object refID="aa3a5220b6bc1"/>
- <object refID="f44ca391ab9f"/>
- <object refID="f44ca392ab9f"/>
- <object refID="f44ca393ab9f"/>
- <object refID="f46c2f42ab93"/>
+ <object refID="f44fc5b2aba1"/>
+ <object refID="f44fc5d5aba1"/>
+ <object refID="f44fc608aba1"/>
+ <object refID="f44fc63caba2"/>
+ <object refID="f44fc640aba2"/>
+ <object refID="f44fc645aba2"/>
+ <object refID="f44fc648aba2"/>
+ <object refID="f44fc64caba2"/>
+ <object refID="f44fc654aba2"/>
+ <object refID="f44fc67baba3"/>
+ <object refID="f44fc683aba3"/>
+ <object refID="f44fc687aba3"/>
+ <object refID="f44fc68baba3"/>
</visualChildren>
</object>
</installChildren>
You should have received a copy of the GNU General Public License along with Jalview. If not, see <http://www.gnu.org/licenses/>.
-->
<project name="jalviewInstallAnywhere" default="build" basedir=".">
- <property name="IA_LOCATION" value="/home/cruisecontrol/Flexera/IA_2012"/>
+ <property name="IA_LOCATION" value="/home/cruisecontrol/InstallAnywhere 2013/"/>
<property name="IA_PROJECT" location="Jalview.iap_xml"/>
<property name="ABS_PATH" value="/home/cruisecontrol/jalview"/> <!-- \/utils\/InstallAnywhere"/> --> <!--/home/cruisecontrol/jalview"/> -->
<!-- location of top level of jalview distribution directory -->
<buildinstaller
IAlocation="${IA_LOCATION}"
IAProjectFile="${IA_PROJECT}_reloc.iap_xml"
- BuildOutputLocation="${DEST_IADIR}"
-
-/>
+ BuildOutputLocation="${DEST_IADIR}" >
+ <arg value="-nupd"/>
+ </buildinstaller>
<delete>
<fileset dir="${CUR_PATH}">
<include name="mac_logo.icns"/>