-<?xml version="1.0" encoding="UTF-8"?>\r
-<!--JBuilder XML Project-->\r
-<project>\r
- <property category="debug.0" name="SmartStepRedefineClasses" value="0"/>\r
- <property category="debug.0" name="SmartStepSkipStaticInitializers" value="0"/>\r
- <property category="debug.0" name="SmartStepSkipSynthetics" value="0"/>\r
- <property category="editor.general" name="line_ending.style" value="2"/>\r
- <property category="generalFormatting" name="lineEndingStyle" value="2"/>\r
- <property category="generalFormatting2" name="lineEndingStyle" value="2"/>\r
- <property category="generalFormatting2" name="overrideBasicFormatting" value="1"/>\r
- <property category="javaFormatting" name="classBraceNextLine" value="1"/>\r
- <property category="javaFormatting" name="methodBraceNextLine" value="1"/>\r
- <property category="javaFormatting" name="otherBraceNextLine" value="1"/>\r
- <property category="javaFormatting" name="packagePrefixGroups" value="java;javax;BLANK_LINE;java.awt;javax.swing;BLANK_LINE;org;(*)"/>\r
- <property category="javaFormatting" name="throwsOnNewLine" value="1"/>\r
- <property category="javadoc" name="custom.tags.1" value="todo;a;To Do:"/>\r
- <property category="runtime" name="DefaultConfiguration" value="-1"/>\r
- <property category="runtime.0" name="BuildTargetOnRun" value="com.borland.jbuilder.build.ProjectBuilder$ProjectBuildAction;make"/>\r
- <property category="runtime.0" name="ConfigurationName" value="Applet"/>\r
- <property category="runtime.0" name="RunnableType" value="com.borland.jbuilder.runtime.AppletRunner"/>\r
- <property category="runtime.0" name="applet.appletviewer" value="1"/>\r
- <property category="runtime.0" name="applet.class" value="jalview.bin.JalviewLite"/>\r
- <property category="runtime.0" name="applet.html" value="classes/applet.html"/>\r
- <property category="serverservices" name="single.server.name" value="Tomcat 4.0"/>\r
- <property category="sys" name="AuthorLabel" value="@author"/>\r
- <property category="sys" name="BackupPath" value="bak"/>\r
- <property category="sys" name="CheckStable" value="1"/>\r
- <property category="sys" name="Company" value=""/>\r
- <property category="sys" name="CompanyLabel" value="Company:"/>\r
- <property category="sys" name="Copyright" value="Copyright (c) 2004"/>\r
- <property category="sys" name="CopyrightLabel" value="Copyright:"/>\r
- <property category="sys" name="DefaultPath" value="src"/>\r
- <property category="sys" name="Description" value=""/>\r
- <property category="sys" name="DescriptionLabel" value="Description:"/>\r
- <property category="sys" name="DocPath" value="doc"/>\r
- <property category="sys" name="ExcludeClassEnabled" value="0"/>\r
- <property category="sys" name="IncludeTestPath" value="1"/>\r
- <property category="sys" name="InstanceVisibility" value="2"/>\r
- <property category="sys" name="JDK" value="java version 1.1.8_010"/>\r
- <property category="sys" name="LastTag" value="0"/>\r
- <property category="sys" name="Libraries" value=""/>\r
- <property category="sys" name="MakeStable" value="0"/>\r
- <property category="sys" name="OutPath" value="classes"/>\r
- <property category="sys" name="SourcePath" value="src;test"/>\r
- <property category="sys" name="TestPath" value="src"/>\r
- <property category="sys" name="Title" value=""/>\r
- <property category="sys" name="TitleLabel" value="Title:"/>\r
- <property category="sys" name="Version" value="1.0"/>\r
- <property category="sys" name="VersionLabel" value="@version"/>\r
- <property category="sys" name="WorkingDirectory" value="."/>\r
- <property category="sys" name="enable.auto.packages" value="false"/>\r
- <node name="jalview.appletgui" type="Package"/>\r
- <node name="jalview.datamodel" type="Package"/>\r
- <node name="jalview.jbappletgui" type="Package"/>\r
- <node name="jalview.math" type="Package"/>\r
- <node name="jalview.schemes" type="Package"/>\r
- <file path="src/jalview/analysis/AAFrequency.java"/>\r
- <file path="src/jalview/io/AlignFile.java"/>\r
- <file path="src/jalview/analysis/AlignmentSorter.java"/>\r
- <file path="src/jalview/analysis/AlignSeq.java"/>\r
- <file path="src/jalview/io/BLCFile.java"/>\r
- <file path="src/jalview/io/ClustalFile.java"/>\r
- <file path="src/jalview/analysis/Conservation.java"/>\r
- <file path="src/jalview/io/FastaFile.java"/>\r
- <file path="src/jalview/io/FileParse.java"/>\r
- <file path="src/jalview/io/FormatAdapter.java"/>\r
- <file path="src/jalview/io/IdentifyFile.java"/>\r
- <file path="src/jalview/bin/JalviewLite.java"/>\r
- <file path="src/jalview/io/MSFfile.java"/>\r
- <file path="src/jalview/io/NewickFile.java"/>\r
- <file path="src/jalview/analysis/NJTree.java"/>\r
- <file path="src/jalview/analysis/PCA.java"/>\r
- <file path="src/jalview/io/PfamFile.java"/>\r
- <file path="src/jalview/io/PIRFile.java"/>\r
-</project>\r
+<?xml version="1.0" encoding="UTF-8"?>
+<!--JBuilder XML Project-->
+<project>
+ <property category="debug.0" name="SmartStepRedefineClasses" value="0"/>
+ <property category="debug.0" name="SmartStepSkipStaticInitializers" value="0"/>
+ <property category="debug.0" name="SmartStepSkipSynthetics" value="0"/>
+ <property category="editor.general" name="line_ending.style" value="2"/>
+ <property category="generalFormatting" name="lineEndingStyle" value="2"/>
+ <property category="generalFormatting2" name="lineEndingStyle" value="2"/>
+ <property category="generalFormatting2" name="overrideBasicFormatting" value="1"/>
+ <property category="javaFormatting" name="classBraceNextLine" value="1"/>
+ <property category="javaFormatting" name="methodBraceNextLine" value="1"/>
+ <property category="javaFormatting" name="otherBraceNextLine" value="1"/>
+ <property category="javaFormatting" name="packagePrefixGroups" value="java;javax;BLANK_LINE;java.awt;javax.swing;BLANK_LINE;org;(*)"/>
+ <property category="javaFormatting" name="throwsOnNewLine" value="1"/>
+ <property category="javadoc" name="custom.tags.1" value="todo;a;To Do:"/>
+ <property category="runtime" name="DefaultConfiguration" value="-1"/>
+ <property category="runtime.0" name="BuildTargetOnRun" value="com.borland.jbuilder.build.ProjectBuilder$ProjectBuildAction;make"/>
+ <property category="runtime.0" name="ConfigurationName" value="Applet"/>
+ <property category="runtime.0" name="RunnableType" value="com.borland.jbuilder.runtime.AppletRunner"/>
+ <property category="runtime.0" name="applet.appletviewer" value="1"/>
+ <property category="runtime.0" name="applet.class" value="jalview.bin.JalviewLite"/>
+ <property category="runtime.0" name="applet.html" value="classes/applet.html"/>
+ <property category="serverservices" name="single.server.name" value="Tomcat 4.0"/>
+ <property category="sys" name="AuthorLabel" value="@author"/>
+ <property category="sys" name="BackupPath" value="bak"/>
+ <property category="sys" name="CheckStable" value="1"/>
+ <property category="sys" name="Company" value=""/>
+ <property category="sys" name="CompanyLabel" value="Company:"/>
+ <property category="sys" name="Copyright" value="Copyright (c) 2004"/>
+ <property category="sys" name="CopyrightLabel" value="Copyright:"/>
+ <property category="sys" name="DefaultPath" value="src"/>
+ <property category="sys" name="Description" value=""/>
+ <property category="sys" name="DescriptionLabel" value="Description:"/>
+ <property category="sys" name="DocPath" value="doc"/>
+ <property category="sys" name="ExcludeClassEnabled" value="0"/>
+ <property category="sys" name="IncludeTestPath" value="1"/>
+ <property category="sys" name="InstanceVisibility" value="2"/>
+ <property category="sys" name="JDK" value="java version 1.1.8_010"/>
+ <property category="sys" name="LastTag" value="0"/>
+ <property category="sys" name="Libraries" value=""/>
+ <property category="sys" name="MakeStable" value="0"/>
+ <property category="sys" name="OutPath" value="classes"/>
+ <property category="sys" name="SourcePath" value="src;test"/>
+ <property category="sys" name="TestPath" value="src"/>
+ <property category="sys" name="Title" value=""/>
+ <property category="sys" name="TitleLabel" value="Title:"/>
+ <property category="sys" name="Version" value="1.0"/>
+ <property category="sys" name="VersionLabel" value="@version"/>
+ <property category="sys" name="WorkingDirectory" value="."/>
+ <property category="sys" name="enable.auto.packages" value="false"/>
+ <node name="jalview.appletgui" type="Package"/>
+ <node name="jalview.datamodel" type="Package"/>
+ <node name="jalview.jbappletgui" type="Package"/>
+ <node name="jalview.math" type="Package"/>
+ <node name="jalview.schemes" type="Package"/>
+ <file path="src/jalview/analysis/AAFrequency.java"/>
+ <file path="src/jalview/io/AlignFile.java"/>
+ <file path="src/jalview/analysis/AlignmentSorter.java"/>
+ <file path="src/jalview/analysis/AlignSeq.java"/>
+ <file path="src/jalview/io/BLCFile.java"/>
+ <file path="src/jalview/io/ClustalFile.java"/>
+ <file path="src/jalview/analysis/Conservation.java"/>
+ <file path="src/jalview/io/FastaFile.java"/>
+ <file path="src/jalview/io/FileParse.java"/>
+ <file path="src/jalview/io/FormatAdapter.java"/>
+ <file path="src/jalview/io/IdentifyFile.java"/>
+ <file path="src/jalview/bin/JalviewLite.java"/>
+ <file path="src/jalview/io/MSFfile.java"/>
+ <file path="src/jalview/io/NewickFile.java"/>
+ <file path="src/jalview/analysis/NJTree.java"/>
+ <file path="src/jalview/analysis/PCA.java"/>
+ <file path="src/jalview/io/PfamFile.java"/>
+ <file path="src/jalview/io/PIRFile.java"/>
+</project>
-<?xml version="1.0" encoding="UTF-8"?>\r
-<!--JBuilder XML Project-->\r
-<project>\r
- <property category="debug.0" name="SmartStepRedefineClasses" value="0"/>\r
- <property category="debug.0" name="SmartStepSkipStaticInitializers" value="0"/>\r
- <property category="debug.0" name="SmartStepSkipSynthetics" value="0"/>\r
- <property category="generalFormatting2" name="overrideBasicFormatting" value="1"/>\r
- <property category="javaFormatting" name="EventStyle" value="0"/>\r
- <property category="javaFormatting" name="classBraceNextLine" value="1"/>\r
- <property category="javaFormatting" name="methodBraceNextLine" value="1"/>\r
- <property category="javaFormatting" name="otherBraceNextLine" value="1"/>\r
- <property category="javaFormatting" name="packagePrefixGroups" value="java;javax;BLANK_LINE;java.awt;javax.swing;BLANK_LINE;org;(*)"/>\r
- <property category="javaFormatting" name="throwsOnNewLine" value="1"/>\r
- <property category="optimize.0" name="OptimizableType" value="com.borland.jbuilder.optimize.IntroOptimizeitProfiler"/>\r
- <property category="runtime.0" name="BuildTargetOnRun" value="com.borland.jbuilder.build.ProjectBuilder$ProjectBuildAction;make"/>\r
- <property category="runtime.0" name="ConfigurationName" value="JalviewX"/>\r
- <property category="runtime.0" name="RunnableType" value="com.borland.jbuilder.runtime.ApplicationRunner"/>\r
- <property category="runtime.0" name="application.class" value="jalview.bin.Jalview"/>\r
- <property category="serverservices" name="single.server.name" value="Tomcat 4.0"/>\r
- <property category="sys" name="AuthorLabel" value="@author"/>\r
- <property category="sys" name="BackupPath" value="bak"/>\r
- <property category="sys" name="Company" value="Dundee University"/>\r
- <property category="sys" name="CompanyLabel" value="Company:"/>\r
- <property category="sys" name="Copyright" value="Copyright (c) 2004"/>\r
- <property category="sys" name="CopyrightLabel" value="Copyright:"/>\r
- <property category="sys" name="DefaultPath" value="src"/>\r
- <property category="sys" name="Description" value=""/>\r
- <property category="sys" name="DescriptionLabel" value="Description:"/>\r
- <property category="sys" name="DocPath" value="doc"/>\r
- <property category="sys" name="ExcludeClassEnabled" value="0"/>\r
- <property category="sys" name="IncludeTestPath" value="1"/>\r
- <property category="sys" name="JDK" value="java version 1.4.2_04-b05"/>\r
- <property category="sys" name="JvmVersion" value="1.4"/>\r
- <property category="sys" name="Libraries" value="all"/>\r
- <property category="sys" name="OutPath" value="classes"/>\r
- <property category="sys" name="SourcePath" value="src;test"/>\r
- <property category="sys" name="SourceVersion" value="1.4"/>\r
- <property category="sys" name="TestPath" value="test"/>\r
- <property category="sys" name="Title" value=""/>\r
- <property category="sys" name="TitleLabel" value="Title:"/>\r
- <property category="sys" name="Version" value="1.0"/>\r
- <property category="sys" name="VersionLabel" value="@version"/>\r
- <property category="sys" name="WorkingDirectory" value="."/>\r
- <property category="sys" name="uidesign.size.jalview.jbgui.GPreferences" value="453,333"/>\r
- <property category="sys" name="uidesign.size.jalview.jbgui.GSequenceLink" value="400,112"/>\r
- <file path="build.xml"/>\r
-</project>\r
+<?xml version="1.0" encoding="UTF-8"?>
+<!--JBuilder XML Project-->
+<project>
+ <property category="debug.0" name="SmartStepRedefineClasses" value="0"/>
+ <property category="debug.0" name="SmartStepSkipStaticInitializers" value="0"/>
+ <property category="debug.0" name="SmartStepSkipSynthetics" value="0"/>
+ <property category="generalFormatting2" name="overrideBasicFormatting" value="1"/>
+ <property category="javaFormatting" name="EventStyle" value="0"/>
+ <property category="javaFormatting" name="classBraceNextLine" value="1"/>
+ <property category="javaFormatting" name="methodBraceNextLine" value="1"/>
+ <property category="javaFormatting" name="otherBraceNextLine" value="1"/>
+ <property category="javaFormatting" name="packagePrefixGroups" value="java;javax;BLANK_LINE;java.awt;javax.swing;BLANK_LINE;org;(*)"/>
+ <property category="javaFormatting" name="throwsOnNewLine" value="1"/>
+ <property category="optimize.0" name="OptimizableType" value="com.borland.jbuilder.optimize.IntroOptimizeitProfiler"/>
+ <property category="runtime.0" name="BuildTargetOnRun" value="com.borland.jbuilder.build.ProjectBuilder$ProjectBuildAction;make"/>
+ <property category="runtime.0" name="ConfigurationName" value="JalviewX"/>
+ <property category="runtime.0" name="RunnableType" value="com.borland.jbuilder.runtime.ApplicationRunner"/>
+ <property category="runtime.0" name="application.class" value="jalview.bin.Jalview"/>
+ <property category="serverservices" name="single.server.name" value="Tomcat 4.0"/>
+ <property category="sys" name="AuthorLabel" value="@author"/>
+ <property category="sys" name="BackupPath" value="bak"/>
+ <property category="sys" name="Company" value="Dundee University"/>
+ <property category="sys" name="CompanyLabel" value="Company:"/>
+ <property category="sys" name="Copyright" value="Copyright (c) 2004"/>
+ <property category="sys" name="CopyrightLabel" value="Copyright:"/>
+ <property category="sys" name="DefaultPath" value="src"/>
+ <property category="sys" name="Description" value=""/>
+ <property category="sys" name="DescriptionLabel" value="Description:"/>
+ <property category="sys" name="DocPath" value="doc"/>
+ <property category="sys" name="ExcludeClassEnabled" value="0"/>
+ <property category="sys" name="IncludeTestPath" value="1"/>
+ <property category="sys" name="JDK" value="java version 1.4.2_04-b05"/>
+ <property category="sys" name="JvmVersion" value="1.4"/>
+ <property category="sys" name="Libraries" value="all"/>
+ <property category="sys" name="OutPath" value="classes"/>
+ <property category="sys" name="SourcePath" value="src;test"/>
+ <property category="sys" name="SourceVersion" value="1.4"/>
+ <property category="sys" name="TestPath" value="test"/>
+ <property category="sys" name="Title" value=""/>
+ <property category="sys" name="TitleLabel" value="Title:"/>
+ <property category="sys" name="Version" value="1.0"/>
+ <property category="sys" name="VersionLabel" value="@version"/>
+ <property category="sys" name="WorkingDirectory" value="."/>
+ <property category="sys" name="uidesign.size.jalview.jbgui.GPreferences" value="453,333"/>
+ <property category="sys" name="uidesign.size.jalview.jbgui.GSequenceLink" value="400,112"/>
+ <file path="build.xml"/>
+</project>
-jalview.release=Release_2_8_2_Branch\r
-jalview.version=2.8.2\r
+jalview.release=Release_2_8_2_Branch
+jalview.version=2.8.2
-<!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>Don't rely comparisons on labels</h1>\r
-<p>Don't use this type of coding:\r
- threshold.addItem("No Threshold");<br>\r
- threshold.addItem("Above Threshold");<br>\r
- threshold.addItem("Below Threshold");<br>\r
- [...]<br>\r
- if (threshold.getSelectedItem().equals("Above Threshold"))<br>\r
- {</br>\r
- aboveThreshold = AnnotationColourGradient.ABOVE_THRESHOLD;<br>\r
- }<br>\r
- else if (threshold.getSelectedItem().equals("Below Threshold"))<br>\r
- {<br>\r
- aboveThreshold = AnnotationColourGradient.BELOW_THRESHOLD;<br>\r
- }<br>\r
-</p>\r
-<p>Once text has been translated, these equals will fail as the label won't be the English ones. It should be used getSelectedIndex() instead of getSelectedItem(). If you do the proper way, the code will look like this:<br>\r
- threshold.addItem(MessageManager.getString("label.threshold_feature_no_thereshold"));<br>\r
- threshold.addItem(MessageManager.getString("label.threshold_feature_above_thereshold"));<br>\r
- threshold.addItem(MessageManager.getString("label.threshold_feature_below_thereshold"));<br>\r
- [...]<br>\r
- if (threshold.getSelectedIndex()==1)<br>\r
- {<br>\r
- aboveThreshold = AnnotationColourGradient.ABOVE_THRESHOLD;<br>\r
- }<br>\r
- else if (threshold.getSelectedIndex()==2)<br>\r
- {<br>\r
- aboveThreshold = AnnotationColourGradient.BELOW_THRESHOLD;<br>\r
- }<br> \r
-</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
+<!DOCTYPE html SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!--
+ * 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/>.
+-->
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>Jalview i18n</head>
+ <body>
+<h1>Best practices</h1>
+<ol>
+<li>Follow the standards described in this guide</li>
+<li>Always use properties files for user interface text; never include displayable text in code</li>
+<li>Use properties files only for user interface text (Messages_xx.properties) and config files for configuration settings (jalview.properties).</li>
+<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>
+<li>Group keys by view, ie. edit.title, edit.instructions, list.title, list.instructions, create.title, etc</li>
+<li>Never use displayable text when executing comparisons within the logic of the tool (separate codified values from displayable text)</li>
+<li>Always use the MessageManager class for retrieving properties values, and invoke MessageManager methods dynamically, to accommodate dynamic user preferences (see MessageManager below).</li>
+<li>All numbers and dates should be formatted specific to the user's locale (e.g. java.text.NumberFormat and java.text.DateFormat)</li>
+<li>Test code in more than one language</li>
+</ol>
+<h1>MessageManager</h1>
+<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>
+<p>To use it within your code, you only have to invoke MessageManager with the text key in Messages_xx.properties:</p>
+<p>JButton ok = new JButton(MessageManager.getString("button.ok"));</p>
+<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>
+<h1>Don't rely comparisons on labels</h1>
+<p>Don't use this type of coding:
+ threshold.addItem("No Threshold");<br>
+ threshold.addItem("Above Threshold");<br>
+ threshold.addItem("Below Threshold");<br>
+ [...]<br>
+ if (threshold.getSelectedItem().equals("Above Threshold"))<br>
+ {</br>
+ aboveThreshold = AnnotationColourGradient.ABOVE_THRESHOLD;<br>
+ }<br>
+ else if (threshold.getSelectedItem().equals("Below Threshold"))<br>
+ {<br>
+ aboveThreshold = AnnotationColourGradient.BELOW_THRESHOLD;<br>
+ }<br>
+</p>
+<p>Once text has been translated, these equals will fail as the label won't be the English ones. It should be used getSelectedIndex() instead of getSelectedItem(). If you do the proper way, the code will look like this:<br>
+ threshold.addItem(MessageManager.getString("label.threshold_feature_no_thereshold"));<br>
+ threshold.addItem(MessageManager.getString("label.threshold_feature_above_thereshold"));<br>
+ threshold.addItem(MessageManager.getString("label.threshold_feature_below_thereshold"));<br>
+ [...]<br>
+ if (threshold.getSelectedIndex()==1)<br>
+ {<br>
+ aboveThreshold = AnnotationColourGradient.ABOVE_THRESHOLD;<br>
+ }<br>
+ else if (threshold.getSelectedIndex()==2)<br>
+ {<br>
+ aboveThreshold = AnnotationColourGradient.BELOW_THRESHOLD;<br>
+ }<br>
+</p>
+<h1>How to translate Jalview</h1>
+<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>
+<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>
+<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>
+<p>Next step...start transtalation!</p>
+<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>
+</body>
+</html>
+
-HEADER OXIDOREDUCTASE/ELECTRON TRANSPORT 08-MAY-00 1GAQ \r
-ATOM 2 CA GLU A 19 20.491 30.713 36.290 1.00 74.29 C \r
-ATOM 11 CA SER A 20 24.056 29.774 37.264 1.00 72.09 C \r
-ATOM 17 CA LYS A 21 27.517 31.289 37.563 1.00 70.09 C \r
-ATOM 26 CA LYS A 22 28.794 27.865 36.481 1.00 68.64 C \r
-ATOM 35 CA GLN A 23 29.484 26.806 32.884 1.00 70.46 C \r
-ATOM 44 CA GLU A 24 26.420 25.175 31.360 1.00 72.08 C \r
-ATOM 53 CA GLU A 25 26.736 26.049 27.683 1.00 70.43 C \r
-ATOM 62 CA GLY A 26 28.299 22.912 26.233 1.00 63.14 C \r
-ATOM 66 CA VAL A 27 26.863 20.704 28.982 1.00 54.50 C \r
-ATOM 73 CA VAL A 28 25.030 17.390 28.655 1.00 48.32 C \r
-ATOM 80 CA THR A 29 23.728 14.677 30.991 1.00 44.86 C \r
-ATOM 87 CA ASN A 30 22.327 11.164 30.703 1.00 45.42 C \r
-ATOM 95 CA LEU A 31 23.332 10.459 27.102 1.00 45.42 C \r
-ATOM 103 CA TYR A 32 23.549 6.898 28.380 1.00 45.88 C \r
-ATOM 115 CA LYS A 33 21.656 5.321 31.262 1.00 47.27 C \r
-ATOM 124 CA PRO A 34 21.991 2.046 33.248 1.00 48.99 C \r
-ATOM 131 CA LYS A 35 19.339 0.560 30.970 1.00 52.75 C \r
-ATOM 140 CA GLU A 36 21.580 0.855 27.886 1.00 53.33 C \r
-ATOM 149 CA PRO A 37 25.154 2.015 28.678 1.00 47.54 C \r
-ATOM 156 CA TYR A 38 27.929 2.872 26.249 1.00 41.98 C \r
-ATOM 168 CA VAL A 39 30.355 -0.017 25.909 1.00 41.48 C \r
-ATOM 175 CA GLY A 40 33.823 1.485 25.966 1.00 37.59 C \r
-ATOM 179 CA ARG A 41 37.165 -0.277 26.122 1.00 39.77 C \r
-ATOM 190 CA CYS A 42 40.148 -0.029 28.442 1.00 36.51 C \r
-ATOM 196 CA LEU A 43 43.095 1.441 26.554 1.00 36.13 C \r
-ATOM 204 CA LEU A 44 45.231 2.023 29.649 1.00 33.55 C \r
-ATOM 212 CA ASN A 45 45.140 1.026 33.307 1.00 27.79 C \r
-ATOM 220 CA THR A 46 48.056 1.800 35.617 1.00 28.75 C \r
-ATOM 227 CA LYS A 47 48.542 1.776 39.388 1.00 30.31 C \r
-ATOM 236 CA ILE A 48 49.564 5.317 40.376 1.00 31.32 C \r
-ATOM 244 CA THR A 49 50.339 4.682 44.059 1.00 37.62 C \r
-ATOM 251 CA GLY A 50 53.585 3.317 45.460 1.00 44.49 C \r
-ATOM 255 CA ASP A 51 53.706 -0.448 46.087 1.00 52.89 C \r
-ATOM 263 CA ASP A 52 53.910 0.545 49.751 1.00 55.23 C \r
-ATOM 271 CA ALA A 53 50.816 2.767 50.056 1.00 53.34 C \r
-ATOM 276 CA PRO A 54 47.904 1.940 52.405 1.00 50.60 C \r
-ATOM 283 CA GLY A 55 45.420 1.579 49.561 1.00 50.35 C \r
-ATOM 287 CA GLU A 56 46.098 1.286 45.836 1.00 42.53 C \r
-ATOM 296 CA THR A 57 44.534 3.816 43.480 1.00 41.14 C \r
-ATOM 303 CA TRP A 58 44.540 3.423 39.708 1.00 35.60 C \r
-ATOM 317 CA HIS A 59 44.468 5.853 36.796 1.00 31.89 C \r
-ATOM 327 CA MET A 60 42.658 4.227 33.866 1.00 31.65 C \r
-ATOM 335 CA VAL A 61 41.716 5.345 30.350 1.00 30.43 C \r
-ATOM 342 CA PHE A 62 38.669 4.172 28.360 1.00 34.36 C \r
-ATOM 353 CA SER A 63 37.657 4.908 24.772 1.00 34.69 C \r
-ATOM 359 CA THR A 64 34.448 6.828 23.951 1.00 36.96 C \r
-ATOM 366 CA GLU A 65 34.691 7.644 20.254 1.00 40.08 C \r
-ATOM 375 CA GLY A 66 33.742 11.183 21.285 1.00 40.22 C \r
-ATOM 379 CA LYS A 67 30.272 9.763 22.003 1.00 41.93 C \r
-ATOM 388 CA ILE A 68 30.279 11.116 25.577 1.00 41.52 C \r
-ATOM 396 CA PRO A 69 30.791 14.926 25.537 1.00 42.35 C \r
-ATOM 403 CA TYR A 70 31.228 15.232 29.299 1.00 39.84 C \r
-ATOM 415 CA ARG A 71 32.639 18.451 30.768 1.00 44.14 C \r
-ATOM 426 CA GLU A 72 35.122 19.278 33.515 1.00 43.82 C \r
-ATOM 435 CA GLY A 73 33.472 18.458 36.835 1.00 41.97 C \r
-ATOM 439 CA GLN A 74 30.929 15.874 35.657 1.00 37.19 C \r
-ATOM 448 CA SER A 75 31.285 12.124 36.138 1.00 38.28 C \r
-ATOM 454 CA ILE A 76 30.458 8.792 34.539 1.00 36.84 C \r
-ATOM 462 CA GLY A 77 28.983 5.620 35.918 1.00 35.39 C \r
-ATOM 466 CA VAL A 78 30.311 2.108 35.530 1.00 32.05 C \r
-ATOM 473 CA ILE A 79 28.458 -1.201 35.591 1.00 32.67 C \r
-ATOM 481 CA ALA A 80 30.745 -4.018 36.644 1.00 35.36 C \r
-ATOM 486 CA ASP A 81 30.359 -7.373 34.872 1.00 38.72 C \r
-ATOM 494 CA GLY A 82 28.308 -10.332 36.110 1.00 45.79 C \r
-ATOM 498 CA VAL A 83 25.820 -10.242 39.001 1.00 52.24 C \r
-ATOM 505 CA ASP A 84 25.838 -10.250 42.834 1.00 60.54 C \r
-ATOM 513 CA LYS A 85 25.014 -13.158 45.196 1.00 66.72 C \r
-ATOM 522 CA ASN A 86 21.414 -13.062 43.904 1.00 67.37 C \r
-ATOM 530 CA GLY A 87 21.724 -13.423 40.136 1.00 64.74 C \r
-ATOM 534 CA LYS A 88 20.971 -9.733 39.570 1.00 61.12 C \r
-ATOM 543 CA PRO A 89 23.054 -7.201 37.561 1.00 54.68 C \r
-ATOM 550 CA HIS A 90 25.224 -4.957 39.755 1.00 44.44 C \r
-ATOM 560 CA LYS A 91 23.940 -1.433 40.260 1.00 40.48 C \r
-ATOM 569 CA VAL A 92 25.803 1.546 38.843 1.00 38.45 C \r
-ATOM 576 CA ARG A 93 28.709 2.986 40.828 1.00 38.93 C \r
-ATOM 587 CA LEU A 94 29.778 6.584 40.096 1.00 34.37 C \r
-ATOM 595 CA TYR A 95 33.309 7.878 39.513 1.00 30.27 C \r
-ATOM 607 CA SER A 96 34.425 11.475 39.057 1.00 29.44 C \r
-ATOM 613 CA ILE A 97 36.029 12.090 35.662 1.00 27.61 C \r
-ATOM 621 CA ALA A 98 39.769 12.693 36.069 1.00 31.12 C \r
-ATOM 626 CA SER A 99 40.393 13.712 32.475 1.00 32.42 C \r
-ATOM 632 CA SER A 100 39.566 17.142 31.059 1.00 36.14 C \r
-ATOM 638 CA ALA A 101 37.097 17.367 28.154 1.00 41.07 C \r
-ATOM 643 CA ILE A 102 39.764 16.549 25.527 1.00 47.65 C \r
-ATOM 651 CA GLY A 103 41.172 13.692 27.599 1.00 46.77 C \r
-ATOM 655 CA ASP A 104 44.730 12.612 28.289 1.00 43.82 C \r
-ATOM 663 CA PHE A 105 45.115 12.065 24.522 1.00 41.52 C \r
-ATOM 674 CA GLY A 106 43.862 15.455 23.328 1.00 41.66 C \r
-ATOM 678 CA ASP A 107 41.355 13.883 20.926 1.00 40.90 C \r
-ATOM 686 CA SER A 108 38.132 14.250 22.954 1.00 42.95 C \r
-ATOM 692 CA LYS A 109 37.967 10.535 22.224 1.00 44.74 C \r
-ATOM 701 CA THR A 110 38.731 9.184 25.704 1.00 41.09 C \r
-ATOM 708 CA VAL A 111 37.728 9.519 29.374 1.00 39.03 C \r
-ATOM 715 CA SER A 112 39.912 8.705 32.399 1.00 37.17 C \r
-ATOM 721 CA LEU A 113 39.098 7.476 35.935 1.00 32.10 C \r
-ATOM 729 CA CYS A 114 40.964 7.578 39.261 1.00 30.65 C \r
-ATOM 735 CA VAL A 115 39.724 4.459 41.060 1.00 33.45 C \r
-ATOM 742 CA LYS A 116 40.668 3.524 44.628 1.00 34.75 C \r
-ATOM 751 CA ARG A 117 40.376 -0.250 45.123 1.00 32.85 C \r
-ATOM 762 CA LEU A 118 38.137 -1.094 48.077 1.00 30.50 C \r
-ATOM 770 CA ILE A 119 39.376 -3.752 50.459 1.00 34.34 C \r
-ATOM 778 CA TYR A 120 38.699 -4.266 54.125 1.00 31.39 C \r
-ATOM 790 CA THR A 121 38.264 -7.086 56.567 1.00 28.83 C \r
-ATOM 797 CA ASN A 122 34.792 -7.477 58.109 1.00 26.51 C \r
-ATOM 805 CA ASP A 123 33.626 -8.382 61.634 1.00 31.58 C \r
-ATOM 813 CA ALA A 124 34.191 -12.077 60.901 1.00 27.84 C \r
-ATOM 818 CA GLY A 125 37.759 -11.844 59.728 1.00 32.39 C \r
-ATOM 822 CA GLU A 126 36.809 -12.146 56.073 1.00 35.82 C \r
-ATOM 831 CA ILE A 127 38.655 -9.932 53.598 1.00 38.42 C \r
-ATOM 839 CA VAL A 128 36.025 -8.261 51.421 1.00 33.73 C \r
-ATOM 846 CA LYS A 129 36.482 -6.484 48.090 1.00 31.87 C \r
-ATOM 855 CA GLY A 130 34.363 -3.680 46.686 1.00 26.91 C \r
-ATOM 859 CA VAL A 131 32.680 -5.051 43.569 1.00 27.89 C \r
-ATOM 866 CA CYS A 132 33.074 -2.246 41.018 1.00 28.46 C \r
-ATOM 872 CA SER A 133 36.266 -0.553 42.213 1.00 31.33 C \r
-ATOM 878 CA ASN A 134 37.861 -3.983 41.984 1.00 30.29 C \r
-ATOM 886 CA PHE A 135 36.318 -4.795 38.623 1.00 31.48 C \r
-ATOM 897 CA LEU A 136 37.926 -1.553 37.520 1.00 27.81 C \r
-ATOM 905 CA CYS A 137 41.417 -1.976 38.955 1.00 25.91 C \r
-ATOM 911 CA ASP A 138 41.605 -5.419 37.338 1.00 30.22 C \r
-ATOM 919 CA LEU A 139 40.462 -4.306 33.874 1.00 32.69 C \r
-ATOM 927 CA GLN A 140 42.851 -5.511 31.186 1.00 36.80 C \r
-ATOM 936 CA PRO A 141 43.380 -3.220 28.170 1.00 36.16 C \r
-ATOM 943 CA GLY A 142 40.864 -4.420 25.586 1.00 31.10 C \r
-ATOM 947 CA ASP A 143 38.129 -5.298 28.055 1.00 30.62 C \r
-ATOM 955 CA ASN A 144 34.690 -3.847 27.645 1.00 33.52 C \r
-ATOM 963 CA VAL A 145 33.430 -1.522 30.361 1.00 37.08 C \r
-ATOM 970 CA GLN A 146 29.817 -0.374 30.523 1.00 37.65 C \r
-ATOM 979 CA ILE A 147 29.547 3.413 31.045 1.00 30.95 C \r
-ATOM 987 CA THR A 148 26.637 5.791 31.832 1.00 29.95 C \r
-ATOM 994 CA GLY A 149 26.297 9.581 31.843 1.00 32.81 C \r
-ATOM 998 CA PRO A 150 27.785 12.148 31.800 1.00 34.98 C \r
-ATOM 1005 CA VAL A 151 26.376 12.668 35.275 1.00 36.53 C \r
-ATOM 1012 CA GLY A 152 26.196 15.756 37.474 1.00 43.09 C \r
-ATOM 1016 CA LYS A 153 26.048 19.528 37.068 1.00 48.37 C \r
-ATOM 1025 CA GLU A 154 26.921 20.540 40.633 1.00 49.70 C \r
-ATOM 1034 CA MET A 155 30.710 20.266 40.235 1.00 47.30 C \r
-ATOM 1042 CA LEU A 156 30.882 22.020 36.869 1.00 50.36 C \r
-ATOM 1050 CA MET A 157 33.362 24.883 36.404 1.00 55.29 C \r
-ATOM 1058 CA PRO A 158 32.521 28.612 36.605 1.00 54.88 C \r
-ATOM 1065 CA LYS A 159 32.291 30.776 33.464 1.00 54.92 C \r
-ATOM 1074 CA ASP A 160 34.497 33.503 34.939 1.00 57.22 C \r
-ATOM 1082 CA PRO A 161 38.055 32.687 33.759 1.00 58.62 C \r
-ATOM 1089 CA ASN A 162 39.524 35.240 36.163 1.00 60.44 C \r
-ATOM 1097 CA ALA A 163 37.814 33.910 39.279 1.00 55.80 C \r
-ATOM 1102 CA THR A 164 39.596 32.487 42.316 1.00 51.04 C \r
-ATOM 1109 CA ILE A 165 38.966 28.771 42.756 1.00 50.26 C \r
-ATOM 1117 CA ILE A 166 39.774 26.773 45.885 1.00 47.54 C \r
-ATOM 1125 CA MET A 167 39.883 23.014 45.324 1.00 46.38 C \r
-ATOM 1133 CA LEU A 168 39.700 20.963 48.522 1.00 42.18 C \r
-ATOM 1141 CA ALA A 169 40.377 17.316 47.770 1.00 36.41 C \r
-ATOM 1146 CA THR A 170 41.005 14.086 49.622 1.00 32.98 C \r
-ATOM 1153 CA GLY A 171 42.027 10.802 48.014 1.00 31.36 C \r
-ATOM 1157 CA THR A 172 40.386 10.037 44.680 1.00 30.48 C \r
-ATOM 1164 CA GLY A 173 38.640 13.335 45.359 1.00 33.99 C \r
-ATOM 1168 CA ILE A 174 41.418 15.036 43.394 1.00 35.66 C \r
-ATOM 1176 CA ALA A 175 39.758 13.585 40.300 1.00 36.00 C \r
-ATOM 1181 CA PRO A 176 37.445 16.385 39.155 1.00 39.41 C \r
-ATOM 1188 CA PHE A 177 40.109 18.971 39.976 1.00 43.21 C \r
-ATOM 1199 CA ARG A 178 42.726 17.119 37.955 1.00 41.09 C \r
-ATOM 1210 CA SER A 179 40.235 17.536 35.124 1.00 39.92 C \r
-ATOM 1216 CA PHE A 180 39.808 21.204 36.009 1.00 39.23 C \r
-ATOM 1227 CA LEU A 181 43.528 21.949 35.995 1.00 39.50 C \r
-ATOM 1235 CA TRP A 182 44.305 20.081 32.770 1.00 41.47 C \r
-ATOM 1249 CA LYS A 183 42.141 22.654 30.972 1.00 48.08 C \r
-ATOM 1258 CA MET A 184 43.477 25.547 33.062 1.00 52.79 C \r
-ATOM 1266 CA PHE A 185 47.102 25.043 32.014 1.00 57.35 C \r
-ATOM 1277 CA PHE A 186 48.075 21.921 30.051 1.00 55.98 C \r
-ATOM 1288 CA GLU A 187 45.758 23.173 27.297 1.00 54.44 C \r
-ATOM 1297 CA LYS A 188 44.908 26.236 25.196 1.00 51.29 C \r
-ATOM 1306 CA HIS A 189 41.395 27.080 24.003 1.00 51.35 C \r
-ATOM 1316 CA ASP A 190 40.108 29.972 21.873 1.00 54.30 C \r
-ATOM 1324 CA ASP A 191 37.199 30.481 24.249 1.00 53.95 C \r
-ATOM 1332 CA TYR A 192 38.816 29.937 27.634 1.00 50.68 C \r
-ATOM 1344 CA LYS A 193 41.916 31.388 29.230 1.00 51.00 C \r
-ATOM 1353 CA PHE A 194 42.322 30.967 32.956 1.00 52.09 C \r
-ATOM 1364 CA ASN A 195 43.672 34.234 34.312 1.00 56.46 C \r
-ATOM 1372 CA GLY A 196 42.616 34.078 37.969 1.00 57.17 C \r
-ATOM 1376 CA LEU A 197 43.874 31.920 40.843 1.00 57.92 C \r
-ATOM 1384 CA GLY A 198 43.549 28.151 41.086 1.00 56.67 C \r
-ATOM 1388 CA TRP A 199 44.258 26.886 44.592 1.00 51.55 C \r
-ATOM 1402 CA LEU A 200 44.411 23.170 45.379 1.00 49.17 C \r
-ATOM 1410 CA PHE A 201 44.558 21.335 48.709 1.00 48.60 C \r
-ATOM 1421 CA LEU A 202 45.122 17.570 48.598 1.00 45.34 C \r
-ATOM 1429 CA GLY A 203 44.885 15.480 51.742 1.00 48.55 C \r
-ATOM 1433 CA VAL A 204 46.225 11.936 51.755 1.00 50.23 C \r
-ATOM 1440 CA PRO A 205 47.942 9.740 54.365 1.00 51.51 C \r
-ATOM 1447 CA THR A 206 51.284 9.148 52.648 1.00 50.21 C \r
-ATOM 1454 CA SER A 207 53.551 10.483 49.894 1.00 49.38 C \r
-ATOM 1460 CA SER A 208 53.267 7.061 48.259 1.00 43.49 C \r
-ATOM 1466 CA SER A 209 49.588 8.049 48.093 1.00 42.57 C \r
-ATOM 1472 CA LEU A 210 49.990 11.424 46.364 1.00 42.65 C \r
-ATOM 1480 CA LEU A 211 48.121 11.446 43.035 1.00 39.33 C \r
-ATOM 1488 CA TYR A 212 49.516 13.214 39.935 1.00 40.89 C \r
-ATOM 1500 CA LYS A 213 52.128 15.234 41.873 1.00 45.88 C \r
-ATOM 1509 CA GLU A 214 54.518 15.406 38.899 1.00 53.22 C \r
-ATOM 1518 CA GLU A 215 51.680 16.911 36.889 1.00 55.16 C \r
-ATOM 1527 CA PHE A 216 50.757 19.475 39.514 1.00 60.55 C \r
-ATOM 1538 CA GLY A 217 54.488 20.153 39.524 1.00 66.64 C \r
-ATOM 1542 CA LYS A 218 54.575 21.110 35.850 1.00 68.86 C \r
-ATOM 1551 CA MET A 219 51.398 23.159 36.265 1.00 66.97 C \r
-ATOM 1559 CA LYS A 220 53.138 25.090 39.061 1.00 65.97 C \r
-ATOM 1568 CA GLU A 221 55.654 26.250 36.459 1.00 70.02 C \r
-ATOM 1577 CA ARG A 222 53.584 26.507 33.294 1.00 73.48 C \r
-ATOM 1588 CA ALA A 223 52.005 29.449 35.175 1.00 76.21 C \r
-ATOM 1593 CA PRO A 224 53.272 29.877 38.804 1.00 79.25 C \r
-ATOM 1600 CA GLU A 225 51.296 33.124 39.020 1.00 81.84 C \r
-ATOM 1609 CA ASN A 226 47.873 31.528 38.622 1.00 78.84 C \r
-ATOM 1617 CA PHE A 227 48.418 28.176 40.350 1.00 75.28 C \r
-ATOM 1628 CA ARG A 228 49.090 27.305 43.996 1.00 72.05 C \r
-ATOM 1639 CA VAL A 229 49.165 23.724 45.323 1.00 68.82 C \r
-ATOM 1646 CA ASP A 230 49.258 22.581 48.958 1.00 66.54 C \r
-ATOM 1654 CA TYR A 231 49.605 18.943 49.968 1.00 60.31 C \r
-ATOM 1666 CA ALA A 232 48.551 17.560 53.332 1.00 57.39 C \r
-ATOM 1671 CA VAL A 233 50.260 14.228 53.945 1.00 57.14 C \r
-ATOM 1678 CA SER A 234 48.465 13.579 57.244 1.00 60.81 C \r
-ATOM 1684 CA ARG A 235 50.959 11.010 58.514 1.00 60.74 C \r
-ATOM 1695 CA GLU A 236 54.268 12.594 57.481 1.00 59.17 C \r
-ATOM 1704 CA GLN A 237 53.494 16.197 58.450 1.00 59.62 C \r
-ATOM 1713 CA THR A 238 52.590 18.236 61.521 1.00 63.18 C \r
-ATOM 1720 CA ASN A 239 52.019 21.937 62.188 1.00 66.71 C \r
-ATOM 1728 CA ALA A 240 52.096 23.767 65.537 1.00 70.06 C \r
-ATOM 1733 CA ALA A 241 51.302 21.400 68.410 1.00 72.44 C \r
-ATOM 1738 CA GLY A 242 52.383 18.324 66.438 1.00 72.38 C \r
-ATOM 1742 CA GLU A 243 48.826 18.169 65.110 1.00 69.71 C \r
-ATOM 1751 CA ARG A 244 48.674 15.776 62.148 1.00 67.21 C \r
-ATOM 1762 CA MET A 245 48.712 17.796 58.933 1.00 64.20 C \r
-ATOM 1770 CA TYR A 246 45.246 17.082 57.556 1.00 60.65 C \r
-ATOM 1782 CA ILE A 247 43.617 18.437 54.409 1.00 62.98 C \r
-ATOM 1790 CA GLN A 248 42.035 21.001 56.761 1.00 64.64 C \r
-ATOM 1799 CA THR A 249 45.057 21.461 59.009 1.00 63.37 C \r
-ATOM 1806 CA ARG A 250 46.891 22.664 55.903 1.00 62.47 C \r
-ATOM 1817 CA MET A 251 44.123 25.201 55.251 1.00 63.35 C \r
-ATOM 1825 CA ALA A 252 44.571 26.305 58.854 1.00 65.73 C \r
-ATOM 1830 CA GLU A 253 47.973 27.809 58.076 1.00 65.97 C \r
-ATOM 1839 CA TYR A 254 46.267 30.063 55.517 1.00 65.83 C \r
-ATOM 1851 CA LYS A 255 42.991 30.559 57.379 1.00 70.30 C \r
-ATOM 1860 CA GLU A 256 43.578 34.326 57.320 1.00 73.73 C \r
-ATOM 1869 CA GLU A 257 44.189 34.738 53.593 1.00 71.52 C \r
-ATOM 1878 CA LEU A 258 41.459 32.202 52.893 1.00 73.38 C \r
-ATOM 1886 CA TRP A 259 38.790 34.074 54.853 1.00 76.72 C \r
-ATOM 1900 CA GLU A 260 39.721 37.275 53.006 1.00 78.61 C \r
-ATOM 1909 CA LEU A 261 38.580 35.553 49.815 1.00 75.71 C \r
-ATOM 1917 CA LEU A 262 35.391 33.881 51.047 1.00 73.74 C \r
-ATOM 1925 CA LYS A 263 33.562 37.165 50.535 1.00 73.64 C \r
-ATOM 1934 CA LYS A 264 34.299 38.143 46.954 1.00 72.48 C \r
-ATOM 1943 CA ASP A 265 31.954 37.554 43.993 1.00 69.65 C \r
-ATOM 1951 CA ASN A 266 34.660 35.649 42.106 1.00 65.06 C \r
-ATOM 1959 CA THR A 267 35.835 33.117 44.683 1.00 58.24 C \r
-ATOM 1966 CA TYR A 268 34.459 29.646 43.909 1.00 51.04 C \r
-ATOM 1978 CA VAL A 269 35.192 26.827 46.382 1.00 44.95 C \r
-ATOM 1985 CA TYR A 270 35.012 23.150 45.368 1.00 44.96 C \r
-ATOM 1997 CA MET A 271 35.162 20.122 47.656 1.00 41.72 C \r
-ATOM 2005 CA CYS A 272 35.314 16.468 46.632 1.00 37.19 C \r
-ATOM 2011 CA GLY A 273 36.343 13.080 47.951 1.00 37.65 C \r
-ATOM 2015 CA LEU A 274 36.040 10.886 51.020 1.00 39.39 C \r
-ATOM 2023 CA LYS A 275 33.076 12.283 52.955 1.00 44.86 C \r
-ATOM 2032 CA GLY A 276 34.322 13.183 56.400 1.00 49.16 C \r
-ATOM 2036 CA MET A 277 36.932 15.608 55.168 1.00 53.30 C \r
-ATOM 2044 CA GLU A 278 33.917 17.921 55.165 1.00 56.74 C \r
-ATOM 2053 CA LYS A 279 33.531 18.089 58.947 1.00 59.30 C \r
-ATOM 2062 CA GLY A 280 36.982 19.413 59.776 1.00 58.94 C \r
-ATOM 2066 CA ILE A 281 36.705 22.048 57.063 1.00 61.43 C \r
-ATOM 2074 CA ASP A 282 33.453 23.402 58.515 1.00 67.06 C \r
-ATOM 2082 CA ASP A 283 35.050 23.189 61.972 1.00 74.12 C \r
-ATOM 2090 CA ILE A 284 37.991 25.422 61.040 1.00 78.49 C \r
-ATOM 2098 CA MET A 285 35.456 27.566 59.201 1.00 82.25 C \r
-ATOM 2106 CA VAL A 286 32.941 27.959 62.027 1.00 83.44 C \r
-ATOM 2113 CA SER A 287 35.610 29.113 64.469 1.00 83.43 C \r
-ATOM 2119 CA LEU A 288 36.927 31.601 61.887 1.00 85.53 C \r
-ATOM 2127 CA ALA A 289 33.506 33.025 60.970 1.00 86.85 C \r
-ATOM 2132 CA GLU A 290 31.841 32.696 64.387 1.00 89.26 C \r
-ATOM 2141 CA LYS A 291 34.438 35.312 65.347 1.00 88.73 C \r
-ATOM 2150 CA ASP A 292 33.635 37.891 62.652 1.00 88.03 C \r
-ATOM 2158 CA GLY A 293 30.219 37.450 61.081 1.00 87.88 C \r
-ATOM 2162 CA ILE A 294 27.319 35.051 61.511 1.00 84.61 C \r
-ATOM 2170 CA ASP A 295 27.665 31.329 62.188 1.00 82.45 C \r
-ATOM 2178 CA TRP A 296 29.539 29.627 59.355 1.00 80.12 C \r
-ATOM 2192 CA PHE A 297 26.527 27.452 58.512 1.00 78.99 C \r
-ATOM 2203 CA ASP A 298 24.167 30.241 57.486 1.00 76.37 C \r
-ATOM 2211 CA TYR A 299 27.074 31.748 55.561 1.00 74.07 C \r
-ATOM 2223 CA LYS A 300 27.679 28.620 53.473 1.00 74.31 C \r
-ATOM 2232 CA LYS A 301 24.059 29.146 52.464 1.00 75.97 C \r
-ATOM 2241 CA GLN A 302 24.921 32.563 51.018 1.00 75.38 C \r
-ATOM 2250 CA LEU A 303 27.896 31.099 49.155 1.00 72.10 C \r
-ATOM 2258 CA LYS A 304 25.917 28.207 47.690 1.00 72.08 C \r
-ATOM 2267 CA ARG A 305 23.595 31.021 46.594 1.00 74.82 C \r
-ATOM 2278 CA GLY A 306 26.071 32.136 43.958 1.00 71.84 C \r
-ATOM 2282 CA ASP A 307 27.505 28.682 43.220 1.00 67.23 C \r
-ATOM 2290 CA GLN A 308 30.620 29.291 45.346 1.00 60.18 C \r
-ATOM 2299 CA TRP A 309 30.585 26.177 47.537 1.00 52.25 C \r
-ATOM 2313 CA ASN A 310 29.894 22.997 45.597 1.00 45.03 C \r
-ATOM 2321 CA VAL A 311 30.327 19.716 47.403 1.00 39.13 C \r
-ATOM 2328 CA GLU A 312 30.507 16.190 46.110 1.00 35.17 C \r
-ATOM 2337 CA VAL A 313 31.761 13.957 48.861 1.00 30.12 C \r
-ATOM 2344 CA TYR A 314 31.112 10.230 49.021 1.00 28.23 C \r
-ATOM 2358 CA ALA B 1 2.311 24.702 44.475 1.00 74.17 C \r
-ATOM 2363 CA THR B 2 3.590 24.207 48.055 1.00 74.76 C \r
-ATOM 2370 CA TYR B 3 3.069 20.876 49.837 1.00 73.52 C \r
-ATOM 2382 CA ASN B 4 3.748 19.874 53.435 1.00 75.75 C \r
-ATOM 2390 CA VAL B 5 6.618 17.399 53.868 1.00 75.95 C \r
-ATOM 2397 CA LYS B 6 7.769 15.523 56.983 1.00 77.70 C \r
-ATOM 2406 CA LEU B 7 11.351 14.325 57.458 1.00 78.91 C \r
-ATOM 2414 CA ILE B 8 11.807 11.511 59.985 1.00 81.00 C \r
-ATOM 2422 CA THR B 9 15.560 12.046 60.247 1.00 87.49 C \r
-ATOM 2429 CA PRO B 10 17.662 9.793 62.539 1.00 92.94 C \r
-ATOM 2436 CA GLU B 11 18.161 13.147 64.282 1.00 96.61 C \r
-ATOM 2445 CA GLY B 12 14.579 14.154 65.041 1.00 97.52 C \r
-ATOM 2449 CA GLU B 13 11.602 14.823 62.748 1.00 96.90 C \r
-ATOM 2458 CA VAL B 14 11.547 17.892 60.480 1.00 96.63 C \r
-ATOM 2465 CA GLU B 15 8.340 19.701 59.440 1.00 94.86 C \r
-ATOM 2474 CA LEU B 16 9.471 21.479 56.254 1.00 91.55 C \r
-ATOM 2482 CA GLN B 17 7.281 23.141 53.598 1.00 89.75 C \r
-ATOM 2491 CA VAL B 18 8.485 22.069 50.145 1.00 87.92 C \r
-ATOM 2498 CA PRO B 19 6.906 23.558 46.964 1.00 86.35 C \r
-ATOM 2505 CA ASP B 20 5.990 21.744 43.717 1.00 86.29 C \r
-ATOM 2513 CA ASP B 21 8.578 22.751 41.083 1.00 83.78 C \r
-ATOM 2521 CA VAL B 22 11.385 22.401 43.639 1.00 80.98 C \r
-ATOM 2528 CA TYR B 23 13.439 19.280 44.481 1.00 77.04 C \r
-ATOM 2540 CA ILE B 24 13.212 18.196 48.120 1.00 76.45 C \r
-ATOM 2548 CA LEU B 25 16.959 18.133 48.851 1.00 75.15 C \r
-ATOM 2556 CA ASP B 26 17.154 21.745 47.689 1.00 75.80 C \r
-ATOM 2564 CA GLN B 27 14.616 22.906 50.280 1.00 76.31 C \r
-ATOM 2573 CA ALA B 28 16.562 20.957 52.914 1.00 78.86 C \r
-ATOM 2578 CA GLU B 29 19.698 23.011 52.198 1.00 81.51 C \r
-ATOM 2587 CA GLU B 30 17.491 26.106 52.510 1.00 83.25 C \r
-ATOM 2596 CA ASP B 31 15.857 25.933 55.935 1.00 81.92 C \r
-ATOM 2604 CA GLY B 32 19.280 24.859 57.151 1.00 79.08 C \r
-ATOM 2608 CA ILE B 33 18.621 21.130 57.157 1.00 76.93 C \r
-ATOM 2616 CA ASP B 34 21.528 18.731 56.618 1.00 73.53 C \r
-ATOM 2624 CA LEU B 35 20.738 15.738 54.421 1.00 67.74 C \r
-ATOM 2632 CA PRO B 36 23.138 13.391 52.547 1.00 65.90 C \r
-ATOM 2639 CA TYR B 37 23.916 14.226 48.912 1.00 64.85 C \r
-ATOM 2651 CA SER B 38 26.659 13.373 46.412 1.00 62.58 C \r
-ATOM 2657 CA CYS B 39 26.193 13.603 42.652 1.00 60.99 C \r
-ATOM 2663 CA ARG B 40 22.908 15.441 43.251 1.00 58.35 C \r
-ATOM 2674 CA ALA B 41 21.699 14.108 39.886 1.00 56.38 C \r
-ATOM 2679 CA GLY B 42 19.886 10.955 40.991 1.00 56.66 C \r
-ATOM 2683 CA SER B 43 22.465 8.336 40.010 1.00 58.55 C \r
-ATOM 2689 CA CYS B 44 23.548 7.052 43.447 1.00 56.27 C \r
-ATOM 2695 CA SER B 45 22.057 5.987 46.791 1.00 58.20 C \r
-ATOM 2701 CA SER B 46 23.574 8.773 48.890 1.00 59.13 C \r
-ATOM 2707 CA CYS B 47 20.220 10.475 49.517 1.00 65.64 C \r
-ATOM 2713 CA ALA B 48 17.911 7.436 49.610 1.00 69.71 C \r
-ATOM 2718 CA GLY B 49 14.733 7.635 51.681 1.00 73.09 C \r
-ATOM 2722 CA LYS B 50 11.712 5.340 52.183 1.00 73.77 C \r
-ATOM 2731 CA VAL B 51 8.551 7.412 51.568 1.00 76.51 C \r
-ATOM 2738 CA VAL B 52 5.237 7.081 53.429 1.00 78.85 C \r
-ATOM 2745 CA SER B 53 2.180 9.376 53.647 1.00 79.57 C \r
-ATOM 2751 CA GLY B 54 2.118 10.991 50.218 1.00 76.32 C \r
-ATOM 2755 CA SER B 55 3.577 10.944 46.726 1.00 76.31 C \r
-ATOM 2761 CA VAL B 56 6.436 12.592 44.828 1.00 77.50 C \r
-ATOM 2768 CA ASP B 57 7.691 12.960 41.243 1.00 76.83 C \r
-ATOM 2776 CA GLN B 58 11.150 11.483 40.555 1.00 76.66 C \r
-ATOM 2785 CA SER B 59 10.976 10.827 36.792 1.00 80.19 C \r
-ATOM 2791 CA ASP B 60 14.688 11.644 36.510 1.00 83.51 C \r
-ATOM 2799 CA GLN B 61 15.175 8.137 37.916 1.00 85.74 C \r
-ATOM 2808 CA SER B 62 18.644 7.080 36.699 1.00 85.85 C \r
-ATOM 2814 CA TYR B 63 19.324 5.049 39.852 1.00 84.49 C \r
-ATOM 2826 CA LEU B 64 15.683 4.296 40.629 1.00 89.06 C \r
-ATOM 2834 CA ASP B 65 15.356 0.604 39.742 1.00 92.21 C \r
-ATOM 2842 CA ASP B 66 12.421 -1.791 39.331 1.00 92.35 C \r
-ATOM 2850 CA GLY B 67 10.747 -2.542 42.659 1.00 89.07 C \r
-ATOM 2854 CA GLN B 68 12.336 0.632 44.010 1.00 88.41 C \r
-ATOM 2863 CA ILE B 69 9.483 2.828 42.742 1.00 86.11 C \r
-ATOM 2871 CA ALA B 70 7.060 0.441 44.446 1.00 81.10 C \r
-ATOM 2876 CA ASP B 71 8.985 -0.310 47.648 1.00 76.82 C \r
-ATOM 2884 CA GLY B 72 8.653 3.423 48.186 1.00 73.00 C \r
-ATOM 2888 CA TRP B 73 12.342 4.386 48.095 1.00 67.93 C \r
-ATOM 2902 CA VAL B 74 13.052 8.007 47.136 1.00 63.84 C \r
-ATOM 2909 CA LEU B 75 16.093 9.940 45.892 1.00 58.37 C \r
-ATOM 2917 CA THR B 76 15.524 13.198 47.826 1.00 55.82 C \r
-ATOM 2924 CA CYS B 77 17.941 15.109 45.556 1.00 58.23 C \r
-ATOM 2930 CA HIS B 78 15.777 14.389 42.513 1.00 64.55 C \r
-ATOM 2940 CA ALA B 79 12.108 14.429 43.512 1.00 68.40 C \r
-ATOM 2945 CA TYR B 80 9.442 17.152 43.581 1.00 69.69 C \r
-ATOM 2957 CA PRO B 81 6.414 16.584 45.842 1.00 71.39 C \r
-ATOM 2964 CA THR B 82 3.015 16.014 44.179 1.00 73.67 C \r
-ATOM 2971 CA SER B 83 1.278 15.771 47.557 1.00 76.90 C \r
-ATOM 2977 CA ASP B 84 1.940 16.119 51.289 1.00 75.20 C \r
-ATOM 2985 CA VAL B 85 4.840 13.765 52.050 1.00 71.37 C \r
-ATOM 2992 CA VAL B 86 6.363 11.824 54.956 1.00 70.12 C \r
-ATOM 2999 CA ILE B 87 9.770 10.300 54.188 1.00 74.18 C \r
-ATOM 3007 CA GLU B 88 12.211 8.403 56.410 1.00 78.53 C \r
-ATOM 3012 CA THR B 89 15.541 9.964 55.407 1.00 79.79 C \r
-ATOM 3019 CA HIS B 90 19.062 8.538 55.881 1.00 79.40 C \r
-ATOM 3029 CA LYS B 91 17.584 5.099 55.099 1.00 84.52 C \r
-ATOM 3038 CA GLU B 92 20.016 2.596 53.549 1.00 91.64 C \r
-ATOM 3047 CA GLU B 93 20.192 -0.858 51.981 1.00 98.97 C \r
-ATOM 3056 CA GLU B 94 23.321 -2.924 51.298 1.00106.32 C \r
-ATOM 3065 CA LEU B 95 22.104 -6.552 51.453 1.00111.32 C \r
-ATOM 3073 CA THR B 96 18.778 -8.417 51.866 1.00116.01 C \r
-ATOM 3080 CA GLY B 97 18.877 -11.302 49.394 1.00116.63 C \r
-ATOM 3084 CA ALA B 98 22.056 -9.833 47.910 1.00116.02 C \r
-ATOM 3091 CA GLU C 19 26.080 -2.480 15.294 1.00 73.96 C \r
-ATOM 3100 CA SER C 20 23.405 0.198 14.956 1.00 67.27 C \r
-ATOM 3106 CA LYS C 21 22.937 3.927 15.380 1.00 59.27 C \r
-ATOM 3115 CA LYS C 22 19.198 3.481 15.874 1.00 58.42 C \r
-ATOM 3124 CA GLN C 23 17.251 3.141 19.137 1.00 59.89 C \r
-ATOM 3133 CA GLU C 24 17.931 -0.276 20.610 1.00 62.66 C \r
-ATOM 3142 CA GLU C 25 16.850 -0.453 24.226 1.00 64.27 C \r
-ATOM 3151 CA GLY C 26 13.211 -0.817 25.116 1.00 61.78 C \r
-ATOM 3155 CA VAL C 27 12.703 -2.073 21.582 1.00 58.37 C \r
-ATOM 3162 CA VAL C 28 10.779 -5.347 21.485 1.00 54.17 C \r
-ATOM 3169 CA THR C 29 9.481 -7.339 18.549 1.00 52.79 C \r
-ATOM 3176 CA ASN C 30 6.670 -9.775 17.786 1.00 51.30 C \r
-ATOM 3184 CA LEU C 31 4.863 -9.997 21.112 1.00 51.05 C \r
-ATOM 3192 CA TYR C 32 1.766 -11.297 19.327 1.00 50.51 C \r
-ATOM 3204 CA LYS C 33 1.373 -13.532 16.266 1.00 49.49 C \r
-ATOM 3213 CA PRO C 34 -1.609 -14.150 13.925 1.00 50.98 C \r
-ATOM 3220 CA LYS C 35 -2.450 -17.248 16.011 1.00 55.46 C \r
-ATOM 3229 CA GLU C 36 -2.977 -15.400 19.288 1.00 53.79 C \r
-ATOM 3238 CA PRO C 37 -3.251 -11.638 18.607 1.00 49.32 C \r
-ATOM 3245 CA TYR C 38 -3.674 -9.050 21.318 1.00 46.76 C \r
-ATOM 3257 CA VAL C 39 -7.276 -7.947 21.418 1.00 43.68 C \r
-ATOM 3264 CA GLY C 40 -7.415 -4.194 21.922 1.00 41.62 C \r
-ATOM 3268 CA ARG C 41 -10.273 -1.719 21.954 1.00 40.07 C \r
-ATOM 3279 CA CYS C 42 -11.026 1.064 19.477 1.00 36.37 C \r
-ATOM 3285 CA LEU C 43 -11.330 4.206 21.583 1.00 31.09 C \r
-ATOM 3293 CA LEU C 44 -11.337 6.671 18.673 1.00 28.46 C \r
-ATOM 3301 CA ASN C 45 -11.792 6.653 14.923 1.00 26.74 C \r
-ATOM 3309 CA THR C 46 -11.954 9.920 13.013 1.00 25.29 C \r
-ATOM 3316 CA LYS C 47 -11.667 10.775 9.352 1.00 21.50 C \r
-ATOM 3325 CA ILE C 48 -8.895 13.355 9.121 1.00 19.33 C \r
-ATOM 3333 CA THR C 49 -9.125 14.281 5.442 1.00 20.38 C \r
-ATOM 3340 CA GLY C 50 -11.630 16.676 3.855 1.00 20.12 C \r
-ATOM 3344 CA ASP C 51 -14.895 15.345 2.412 1.00 21.75 C \r
-ATOM 3352 CA ASP C 52 -13.889 16.693 -0.999 1.00 21.19 C \r
-ATOM 3360 CA ALA C 53 -10.651 14.683 -0.749 1.00 21.06 C \r
-ATOM 3365 CA PRO C 54 -10.036 11.974 -3.413 1.00 21.39 C \r
-ATOM 3372 CA GLY C 55 -9.982 9.067 -0.977 1.00 24.42 C \r
-ATOM 3376 CA GLU C 56 -10.374 9.298 2.857 1.00 22.08 C \r
-ATOM 3385 CA THR C 57 -7.723 8.611 5.517 1.00 20.31 C \r
-ATOM 3392 CA TRP C 58 -8.541 7.849 9.162 1.00 19.33 C \r
-ATOM 3406 CA HIS C 59 -6.758 8.520 12.438 1.00 22.68 C \r
-ATOM 3416 CA MET C 60 -7.645 5.951 15.108 1.00 27.16 C \r
-ATOM 3424 CA VAL C 61 -6.672 5.224 18.723 1.00 29.32 C \r
-ATOM 3431 CA PHE C 62 -6.669 1.704 20.220 1.00 34.23 C \r
-ATOM 3442 CA SER C 63 -6.102 0.643 23.847 1.00 37.05 C \r
-ATOM 3448 CA THR C 64 -3.096 -1.517 24.798 1.00 41.86 C \r
-ATOM 3455 CA GLU C 65 -3.169 -1.652 28.621 1.00 48.33 C \r
-ATOM 3464 CA GLY C 66 0.537 -0.885 28.318 1.00 52.45 C \r
-ATOM 3468 CA LYS C 67 0.955 -4.385 26.891 1.00 54.14 C \r
-ATOM 3477 CA ILE C 68 2.429 -3.211 23.570 1.00 51.52 C \r
-ATOM 3485 CA PRO C 69 5.602 -1.279 24.487 1.00 49.85 C \r
-ATOM 3492 CA TYR C 70 6.523 -0.180 20.967 1.00 44.48 C \r
-ATOM 3504 CA ARG C 71 9.185 2.353 19.993 1.00 40.96 C \r
-ATOM 3515 CA GLU C 72 8.727 5.317 17.688 1.00 33.49 C \r
-ATOM 3524 CA GLY C 73 8.913 3.876 14.164 1.00 30.16 C \r
-ATOM 3528 CA GLN C 74 7.423 0.399 14.427 1.00 31.26 C \r
-ATOM 3537 CA SER C 75 4.187 -0.913 12.966 1.00 33.65 C \r
-ATOM 3543 CA ILE C 76 1.454 -3.212 14.278 1.00 33.75 C \r
-ATOM 3551 CA GLY C 77 -0.295 -5.923 12.356 1.00 34.32 C \r
-ATOM 3555 CA VAL C 78 -4.060 -6.111 12.164 1.00 36.67 C \r
-ATOM 3562 CA ILE C 79 -6.137 -9.230 11.507 1.00 41.91 C \r
-ATOM 3570 CA ALA C 80 -9.427 -8.086 10.024 1.00 44.06 C \r
-ATOM 3575 CA ASP C 81 -12.530 -9.927 11.224 1.00 47.03 C \r
-ATOM 3583 CA GLY C 82 -13.972 -12.487 8.829 1.00 53.52 C \r
-ATOM 3587 CA VAL C 83 -12.521 -14.951 6.324 1.00 62.57 C \r
-ATOM 3594 CA ASP C 84 -11.856 -14.200 2.630 1.00 71.97 C \r
-ATOM 3602 CA LYS C 85 -12.935 -17.403 0.861 1.00 76.86 C \r
-ATOM 3611 CA ASN C 86 -13.690 -18.960 4.253 1.00 76.52 C \r
-ATOM 3619 CA GLY C 87 -10.006 -19.837 4.066 1.00 76.22 C \r
-ATOM 3623 CA LYS C 88 -8.802 -19.138 7.616 1.00 71.60 C \r
-ATOM 3632 CA PRO C 89 -8.651 -15.577 8.944 1.00 64.14 C \r
-ATOM 3639 CA HIS C 90 -7.547 -12.649 6.805 1.00 52.35 C \r
-ATOM 3649 CA LYS C 91 -3.753 -12.529 6.474 1.00 46.81 C \r
-ATOM 3658 CA VAL C 92 -2.180 -9.868 8.686 1.00 43.48 C \r
-ATOM 3665 CA ARG C 93 -1.491 -6.414 7.232 1.00 36.99 C \r
-ATOM 3676 CA LEU C 94 0.983 -3.882 8.601 1.00 32.95 C \r
-ATOM 3684 CA TYR C 95 0.340 -0.239 9.510 1.00 24.84 C \r
-ATOM 3696 CA SER C 96 3.003 2.101 10.803 1.00 23.32 C \r
-ATOM 3702 CA ILE C 97 2.244 3.502 14.236 1.00 24.12 C \r
-ATOM 3710 CA ALA C 98 1.243 7.179 13.932 1.00 22.32 C \r
-ATOM 3715 CA SER C 99 1.572 7.636 17.676 1.00 25.69 C \r
-ATOM 3721 CA SER C 100 4.752 7.924 19.726 1.00 28.83 C \r
-ATOM 3727 CA ALA C 101 5.741 5.521 22.508 1.00 35.61 C \r
-ATOM 3732 CA ILE C 102 3.906 7.635 25.079 1.00 38.39 C \r
-ATOM 3740 CA GLY C 103 0.899 7.826 22.742 1.00 31.93 C \r
-ATOM 3744 CA ASP C 104 -1.803 10.384 21.986 1.00 28.77 C \r
-ATOM 3752 CA PHE C 105 -3.050 10.293 25.607 1.00 37.05 C \r
-ATOM 3763 CA GLY C 106 0.503 10.389 26.967 1.00 39.36 C \r
-ATOM 3767 CA ASP C 107 -0.221 7.437 29.266 1.00 41.44 C \r
-ATOM 3775 CA SER C 108 1.566 4.766 27.217 1.00 42.18 C \r
-ATOM 3781 CA LYS C 109 -1.747 2.877 27.156 1.00 42.45 C \r
-ATOM 3790 CA THR C 110 -2.698 3.586 23.515 1.00 38.10 C \r
-ATOM 3797 CA VAL C 111 -1.603 2.971 19.906 1.00 32.79 C \r
-ATOM 3804 CA SER C 112 -2.671 5.020 16.872 1.00 29.60 C \r
-ATOM 3810 CA LEU C 113 -2.713 4.324 13.126 1.00 25.68 C \r
-ATOM 3818 CA CYS C 114 -3.142 6.498 9.999 1.00 24.23 C \r
-ATOM 3824 CA VAL C 115 -5.345 4.496 7.641 1.00 22.80 C \r
-ATOM 3831 CA LYS C 116 -6.221 5.196 4.015 1.00 22.11 C \r
-ATOM 3840 CA ARG C 117 -9.458 3.521 2.955 1.00 25.68 C \r
-ATOM 3851 CA LEU C 118 -8.447 1.440 -0.100 1.00 28.80 C \r
-ATOM 3859 CA ILE C 119 -11.140 1.661 -2.792 1.00 31.75 C \r
-ATOM 3867 CA TYR C 120 -10.086 0.716 -6.312 1.00 32.93 C \r
-ATOM 3879 CA THR C 121 -11.388 -0.733 -9.598 1.00 36.84 C \r
-ATOM 3886 CA ASN C 122 -10.258 -4.257 -10.546 1.00 36.90 C \r
-ATOM 3894 CA ASP C 123 -9.574 -5.562 -14.056 1.00 45.45 C \r
-ATOM 3902 CA ALA C 124 -13.196 -6.758 -14.269 1.00 44.66 C \r
-ATOM 3907 CA GLY C 125 -14.207 -3.102 -14.023 1.00 45.49 C \r
-ATOM 3911 CA GLU C 126 -16.059 -3.511 -10.722 1.00 45.54 C \r
-ATOM 3920 CA ILE C 127 -15.507 -1.321 -7.638 1.00 39.70 C \r
-ATOM 3928 CA VAL C 128 -13.846 -3.171 -4.762 1.00 38.09 C \r
-ATOM 3935 CA LYS C 129 -12.759 -2.512 -1.198 1.00 33.77 C \r
-ATOM 3944 CA GLY C 130 -9.566 -3.363 0.599 1.00 31.98 C \r
-ATOM 3948 CA VAL C 131 -10.443 -5.797 3.385 1.00 33.16 C \r
-ATOM 3955 CA CYS C 132 -8.241 -4.645 6.257 1.00 29.97 C \r
-ATOM 3961 CA SER C 133 -8.238 -0.898 5.607 1.00 30.67 C \r
-ATOM 3967 CA ASN C 134 -12.022 -0.902 5.268 1.00 30.35 C \r
-ATOM 3975 CA PHE C 135 -12.375 -2.946 8.424 1.00 29.86 C \r
-ATOM 3986 CA LEU C 136 -10.223 -0.334 10.195 1.00 29.42 C \r
-ATOM 3994 CA CYS C 137 -11.779 2.834 8.813 1.00 32.27 C \r
-ATOM 4000 CA ASP C 138 -15.116 1.280 9.724 1.00 34.29 C \r
-ATOM 4008 CA LEU C 139 -14.287 0.699 13.399 1.00 37.51 C \r
-ATOM 4016 CA GLN C 140 -16.635 2.170 16.028 1.00 43.76 C \r
-ATOM 4025 CA PRO C 141 -15.630 3.032 19.581 1.00 42.77 C \r
-ATOM 4032 CA GLY C 142 -16.082 -0.210 21.478 1.00 42.83 C \r
-ATOM 4036 CA ASP C 143 -15.117 -2.625 18.696 1.00 40.91 C \r
-ATOM 4044 CA ASN C 144 -12.182 -4.947 19.288 1.00 45.66 C \r
-ATOM 4052 CA VAL C 145 -9.056 -5.146 17.145 1.00 46.95 C \r
-ATOM 4059 CA GLN C 146 -6.707 -8.107 16.606 1.00 48.69 C \r
-ATOM 4068 CA ILE C 147 -3.249 -6.538 17.123 1.00 46.84 C \r
-ATOM 4076 CA THR C 148 -0.010 -8.392 16.264 1.00 46.26 C \r
-ATOM 4083 CA GLY C 149 3.543 -7.117 16.634 1.00 45.60 C \r
-ATOM 4087 CA PRO C 150 5.248 -4.818 17.394 1.00 44.97 C \r
-ATOM 4094 CA VAL C 151 7.423 -5.293 14.321 1.00 44.50 C \r
-ATOM 4101 CA GLY C 152 10.289 -3.716 12.438 1.00 45.33 C \r
-ATOM 4105 CA LYS C 153 13.599 -2.161 13.435 1.00 48.64 C \r
-ATOM 4114 CA GLU C 154 14.166 -0.437 10.074 1.00 48.20 C \r
-ATOM 4123 CA MET C 155 12.437 2.888 10.737 1.00 41.77 C \r
-ATOM 4131 CA LEU C 156 13.839 3.081 14.267 1.00 38.27 C \r
-ATOM 4139 CA MET C 157 15.076 6.540 15.308 1.00 34.29 C \r
-ATOM 4147 CA PRO C 158 18.782 7.419 15.339 1.00 34.05 C \r
-ATOM 4154 CA LYS C 159 20.262 7.521 18.845 1.00 35.82 C \r
-ATOM 4163 CA ASP C 160 22.076 10.792 18.273 1.00 35.95 C \r
-ATOM 4171 CA PRO C 161 19.683 13.401 19.809 1.00 35.63 C \r
-ATOM 4178 CA ASN C 162 21.563 15.948 17.758 1.00 33.92 C \r
-ATOM 4186 CA ALA C 163 21.028 14.172 14.487 1.00 30.82 C \r
-ATOM 4191 CA THR C 164 19.693 15.722 11.305 1.00 25.18 C \r
-ATOM 4198 CA ILE C 165 16.617 13.601 10.636 1.00 19.91 C \r
-ATOM 4206 CA ILE C 166 15.351 13.978 7.060 1.00 13.76 C \r
-ATOM 4214 CA MET C 167 11.843 12.550 6.703 1.00 14.98 C \r
-ATOM 4222 CA LEU C 168 10.385 11.831 3.251 1.00 16.64 C \r
-ATOM 4230 CA ALA C 169 6.747 10.808 3.007 1.00 15.85 C \r
-ATOM 4235 CA THR C 170 3.765 10.346 0.737 1.00 14.23 C \r
-ATOM 4242 CA GLY C 171 0.255 9.724 2.035 1.00 13.78 C \r
-ATOM 4246 CA THR C 172 -0.103 7.560 5.139 1.00 17.62 C \r
-ATOM 4253 CA GLY C 173 3.646 7.343 4.821 1.00 17.20 C \r
-ATOM 4257 CA ILE C 174 3.469 10.213 7.270 1.00 15.91 C \r
-ATOM 4265 CA ALA C 175 2.586 7.783 10.110 1.00 15.63 C \r
-ATOM 4270 CA PRO C 176 6.023 6.933 11.582 1.00 17.04 C \r
-ATOM 4277 CA PHE C 177 7.215 10.514 11.327 1.00 18.21 C \r
-ATOM 4288 CA ARG C 178 4.268 11.745 13.359 1.00 22.35 C \r
-ATOM 4299 CA SER C 179 5.563 9.289 15.983 1.00 25.22 C \r
-ATOM 4305 CA PHE C 180 9.139 10.593 15.614 1.00 25.98 C \r
-ATOM 4316 CA LEU C 181 7.925 14.180 15.767 1.00 29.12 C \r
-ATOM 4324 CA TRP C 182 5.625 13.641 18.714 1.00 31.35 C \r
-ATOM 4338 CA LYS C 183 8.488 12.385 20.871 1.00 30.92 C \r
-ATOM 4347 CA MET C 184 10.841 15.050 19.503 1.00 24.85 C \r
-ATOM 4355 CA PHE C 185 8.741 18.202 20.114 1.00 22.97 C \r
-ATOM 4366 CA PHE C 186 5.604 17.337 22.076 1.00 27.77 C \r
-ATOM 4377 CA GLU C 187 7.117 15.432 25.009 1.00 37.71 C \r
-ATOM 4386 CA LYS C 188 9.542 15.977 27.878 1.00 53.59 C \r
-ATOM 4395 CA HIS C 189 12.355 13.416 28.180 1.00 63.67 C \r
-ATOM 4405 CA ASP C 190 15.318 13.181 30.569 1.00 66.93 C \r
-ATOM 4413 CA ASP C 191 17.480 11.106 28.238 1.00 59.79 C \r
-ATOM 4421 CA TYR C 192 16.190 12.725 25.047 1.00 51.96 C \r
-ATOM 4433 CA LYS C 193 16.700 16.406 24.324 1.00 47.01 C \r
-ATOM 4442 CA PHE C 194 16.580 16.471 20.530 1.00 39.85 C \r
-ATOM 4453 CA ASN C 195 18.572 19.494 19.409 1.00 37.52 C \r
-ATOM 4461 CA GLY C 196 19.361 18.548 15.845 1.00 32.08 C \r
-ATOM 4465 CA LEU C 197 17.310 19.266 12.766 1.00 28.26 C \r
-ATOM 4473 CA GLY C 198 14.051 17.526 11.928 1.00 25.05 C \r
-ATOM 4477 CA TRP C 199 13.211 18.137 8.269 1.00 19.81 C \r
-ATOM 4491 CA LEU C 200 9.908 16.742 7.059 1.00 13.86 C \r
-ATOM 4499 CA PHE C 201 8.855 16.521 3.429 1.00 14.83 C \r
-ATOM 4510 CA LEU C 202 5.288 15.361 2.717 1.00 16.12 C \r
-ATOM 4518 CA GLY C 203 3.701 14.731 -0.681 1.00 13.79 C \r
-ATOM 4522 CA VAL C 204 -0.051 14.414 -1.182 1.00 11.75 C \r
-ATOM 4529 CA PRO C 205 -2.113 15.264 -4.308 1.00 14.66 C \r
-ATOM 4536 CA THR C 206 -4.553 17.737 -2.778 1.00 16.37 C \r
-ATOM 4543 CA SER C 207 -4.756 20.169 0.120 1.00 18.01 C \r
-ATOM 4549 CA SER C 208 -7.780 18.225 1.280 1.00 17.59 C \r
-ATOM 4555 CA SER C 209 -5.452 15.198 1.550 1.00 16.19 C \r
-ATOM 4561 CA LEU C 210 -2.972 16.940 3.860 1.00 14.22 C \r
-ATOM 4569 CA LEU C 211 -2.255 14.980 7.059 1.00 14.43 C \r
-ATOM 4577 CA TYR C 212 -1.624 16.449 10.549 1.00 18.94 C \r
-ATOM 4589 CA LYS C 213 -0.818 19.896 9.150 1.00 22.61 C \r
-ATOM 4598 CA GLU C 214 -2.039 21.572 12.352 1.00 25.73 C \r
-ATOM 4607 CA GLU C 215 0.152 19.413 14.514 1.00 19.23 C \r
-ATOM 4616 CA PHE C 216 3.216 20.178 12.439 1.00 17.80 C \r
-ATOM 4627 CA GLY C 217 2.478 23.890 12.512 1.00 19.90 C \r
-ATOM 4631 CA LYS C 218 2.578 24.001 16.294 1.00 25.54 C \r
-ATOM 4640 CA MET C 219 5.810 22.021 16.188 1.00 26.79 C \r
-ATOM 4648 CA LYS C 220 7.224 24.606 13.819 1.00 31.85 C \r
-ATOM 4657 CA GLU C 221 6.071 27.341 16.219 1.00 38.62 C \r
-ATOM 4666 CA ARG C 222 7.760 25.760 19.233 1.00 39.10 C \r
-ATOM 4677 CA ALA C 223 11.124 24.971 17.668 1.00 35.43 C \r
-ATOM 4682 CA PRO C 224 11.696 27.100 14.528 1.00 32.99 C \r
-ATOM 4689 CA GLU C 225 15.425 26.331 14.360 1.00 33.87 C \r
-ATOM 4698 CA ASN C 226 15.038 22.591 14.986 1.00 30.46 C \r
-ATOM 4706 CA PHE C 227 12.088 21.755 12.732 1.00 24.98 C \r
-ATOM 4717 CA ARG C 228 11.351 22.384 9.075 1.00 19.87 C \r
-ATOM 4728 CA VAL C 229 8.435 21.010 7.118 1.00 14.21 C \r
-ATOM 4735 CA ASP C 230 7.739 21.452 3.398 1.00 12.26 C \r
-ATOM 4743 CA TYR C 231 4.627 20.147 1.722 1.00 14.42 C \r
-ATOM 4755 CA ALA C 232 4.334 19.003 -1.872 1.00 9.99 C \r
-ATOM 4760 CA VAL C 233 0.778 19.232 -3.168 1.00 10.49 C \r
-ATOM 4767 CA SER C 234 1.043 17.769 -6.694 1.00 19.00 C \r
-ATOM 4773 CA ARG C 235 -2.240 19.042 -8.206 1.00 23.13 C \r
-ATOM 4784 CA GLU C 236 -2.069 22.459 -6.578 1.00 17.58 C \r
-ATOM 4793 CA GLN C 237 1.546 23.511 -6.623 1.00 15.89 C \r
-ATOM 4802 CA THR C 238 4.202 24.018 -9.275 1.00 17.86 C \r
-ATOM 4809 CA ASN C 239 7.922 24.800 -9.182 1.00 15.15 C \r
-ATOM 4817 CA ALA C 240 9.558 27.791 -10.892 1.00 21.51 C \r
-ATOM 4822 CA ALA C 241 9.475 25.887 -14.174 1.00 24.05 C \r
-ATOM 4827 CA GLY C 242 5.741 25.110 -13.938 1.00 26.25 C \r
-ATOM 4831 CA GLU C 243 5.999 21.359 -13.153 1.00 25.92 C \r
-ATOM 4840 CA ARG C 244 3.679 19.536 -10.704 1.00 24.04 C \r
-ATOM 4851 CA MET C 245 5.076 19.643 -7.174 1.00 18.58 C \r
-ATOM 4859 CA TYR C 246 5.784 16.047 -6.100 1.00 14.16 C \r
-ATOM 4871 CA ILE C 247 7.910 15.343 -3.034 1.00 16.78 C \r
-ATOM 4879 CA GLN C 248 11.089 15.070 -5.120 1.00 18.72 C \r
-ATOM 4888 CA THR C 249 10.168 18.255 -6.921 1.00 20.93 C \r
-ATOM 4895 CA ARG C 250 9.962 20.031 -3.567 1.00 19.25 C \r
-ATOM 4906 CA MET C 251 13.275 18.471 -2.561 1.00 19.40 C \r
-ATOM 4914 CA ALA C 252 14.910 19.812 -5.760 1.00 20.48 C \r
-ATOM 4919 CA GLU C 253 14.456 23.418 -4.569 1.00 18.19 C \r
-ATOM 4928 CA TYR C 254 16.804 22.515 -1.673 1.00 17.80 C \r
-ATOM 4940 CA LYS C 255 19.038 20.415 -3.902 1.00 20.66 C \r
-ATOM 4949 CA GLU C 256 22.452 21.603 -2.682 1.00 16.05 C \r
-ATOM 4958 CA GLU C 257 21.544 21.914 0.993 1.00 15.89 C \r
-ATOM 4967 CA LEU C 258 20.377 18.297 0.919 1.00 20.74 C \r
-ATOM 4975 CA TRP C 259 23.388 16.939 -0.965 1.00 23.45 C \r
-ATOM 4989 CA GLU C 260 25.645 18.669 1.563 1.00 24.08 C \r
-ATOM 4998 CA LEU C 261 23.573 17.378 4.477 1.00 24.74 C \r
-ATOM 5006 CA LEU C 262 24.020 13.928 2.938 1.00 26.14 C \r
-ATOM 5014 CA LYS C 263 27.792 14.091 3.402 1.00 25.40 C \r
-ATOM 5023 CA LYS C 264 27.457 14.521 7.176 1.00 31.47 C \r
-ATOM 5032 CA ASP C 265 27.877 11.474 9.425 1.00 35.31 C \r
-ATOM 5040 CA ASN C 266 24.934 12.482 11.620 1.00 29.63 C \r
-ATOM 5048 CA THR C 267 22.321 12.795 8.832 1.00 28.00 C \r
-ATOM 5055 CA TYR C 268 19.556 10.160 8.808 1.00 27.00 C \r
-ATOM 5067 CA VAL C 269 17.143 9.903 5.884 1.00 24.65 C \r
-ATOM 5074 CA TYR C 270 13.890 8.016 6.276 1.00 23.37 C \r
-ATOM 5086 CA MET C 271 11.373 7.327 3.518 1.00 18.93 C \r
-ATOM 5094 CA CYS C 272 7.834 6.074 4.043 1.00 18.24 C \r
-ATOM 5100 CA GLY C 273 4.784 5.874 1.826 1.00 22.39 C \r
-ATOM 5104 CA LEU C 274 3.837 4.483 -1.568 1.00 26.95 C \r
-ATOM 5112 CA LYS C 275 6.305 2.384 -3.532 1.00 32.36 C \r
-ATOM 5121 CA GLY C 276 7.741 4.199 -6.514 1.00 37.46 C \r
-ATOM 5125 CA MET C 277 7.714 7.455 -4.608 1.00 28.76 C \r
-ATOM 5133 CA GLU C 278 11.430 6.639 -4.425 1.00 32.22 C \r
-ATOM 5142 CA LYS C 279 12.017 6.321 -8.153 1.00 29.94 C \r
-ATOM 5151 CA GLY C 280 11.317 10.057 -8.293 1.00 24.18 C \r
-ATOM 5155 CA ILE C 281 13.766 10.673 -5.460 1.00 23.68 C \r
-ATOM 5163 CA ASP C 282 16.431 8.365 -6.934 1.00 26.58 C \r
-ATOM 5171 CA ASP C 283 16.211 10.530 -10.054 1.00 28.70 C \r
-ATOM 5179 CA ILE C 284 17.089 13.937 -8.538 1.00 27.28 C \r
-ATOM 5187 CA MET C 285 19.706 12.222 -6.388 1.00 27.45 C \r
-ATOM 5195 CA VAL C 286 21.377 10.712 -9.470 1.00 30.74 C \r
-ATOM 5202 CA SER C 287 21.619 14.159 -11.061 1.00 32.14 C \r
-ATOM 5208 CA LEU C 288 23.240 15.463 -7.873 1.00 34.20 C \r
-ATOM 5216 CA ALA C 289 25.801 12.653 -7.874 1.00 40.16 C \r
-ATOM 5221 CA GLU C 290 26.837 12.825 -11.536 1.00 41.84 C \r
-ATOM 5230 CA LYS C 291 27.855 16.387 -10.793 1.00 43.17 C \r
-ATOM 5239 CA ASP C 292 30.299 15.115 -8.139 1.00 41.84 C \r
-ATOM 5247 CA GLY C 293 31.237 12.232 -10.420 1.00 46.12 C \r
-ATOM 5251 CA ILE C 294 30.053 9.669 -7.864 1.00 45.54 C \r
-ATOM 5259 CA ASP C 295 27.399 6.998 -8.480 1.00 41.14 C \r
-ATOM 5267 CA TRP C 296 24.222 7.605 -6.479 1.00 30.67 C \r
-ATOM 5281 CA PHE C 297 23.381 3.910 -6.151 1.00 31.97 C \r
-ATOM 5292 CA ASP C 298 26.856 2.916 -4.907 1.00 38.12 C \r
-ATOM 5300 CA TYR C 299 26.671 5.875 -2.540 1.00 39.05 C \r
-ATOM 5312 CA LYS C 300 23.196 4.971 -1.294 1.00 41.63 C \r
-ATOM 5321 CA LYS C 301 24.542 1.489 -0.577 1.00 43.40 C \r
-ATOM 5330 CA GLN C 302 27.207 3.064 1.608 1.00 43.79 C \r
-ATOM 5339 CA LEU C 303 24.476 5.181 3.238 1.00 41.51 C \r
-ATOM 5347 CA LYS C 304 22.138 2.343 4.264 1.00 45.18 C \r
-ATOM 5356 CA ARG C 305 25.322 0.535 5.256 1.00 46.65 C \r
-ATOM 5367 CA GLY C 306 25.613 3.181 7.945 1.00 40.29 C \r
-ATOM 5371 CA ASP C 307 21.954 3.487 8.940 1.00 41.21 C \r
-ATOM 5379 CA GLN C 308 21.463 6.730 7.023 1.00 35.55 C \r
-ATOM 5388 CA TRP C 309 18.961 5.674 4.361 1.00 31.22 C \r
-ATOM 5402 CA ASN C 310 16.018 3.728 5.752 1.00 31.61 C \r
-ATOM 5410 CA VAL C 311 13.120 2.841 3.452 1.00 32.13 C \r
-ATOM 5417 CA GLU C 312 9.705 1.332 4.261 1.00 31.51 C \r
-ATOM 5426 CA VAL C 313 7.466 1.606 1.209 1.00 26.39 C \r
-ATOM 5433 CA TYR C 314 4.403 -0.343 0.111 1.00 25.42 C \r
+HEADER OXIDOREDUCTASE/ELECTRON TRANSPORT 08-MAY-00 1GAQ
+ATOM 2 CA GLU A 19 20.491 30.713 36.290 1.00 74.29 C
+ATOM 11 CA SER A 20 24.056 29.774 37.264 1.00 72.09 C
+ATOM 17 CA LYS A 21 27.517 31.289 37.563 1.00 70.09 C
+ATOM 26 CA LYS A 22 28.794 27.865 36.481 1.00 68.64 C
+ATOM 35 CA GLN A 23 29.484 26.806 32.884 1.00 70.46 C
+ATOM 44 CA GLU A 24 26.420 25.175 31.360 1.00 72.08 C
+ATOM 53 CA GLU A 25 26.736 26.049 27.683 1.00 70.43 C
+ATOM 62 CA GLY A 26 28.299 22.912 26.233 1.00 63.14 C
+ATOM 66 CA VAL A 27 26.863 20.704 28.982 1.00 54.50 C
+ATOM 73 CA VAL A 28 25.030 17.390 28.655 1.00 48.32 C
+ATOM 80 CA THR A 29 23.728 14.677 30.991 1.00 44.86 C
+ATOM 87 CA ASN A 30 22.327 11.164 30.703 1.00 45.42 C
+ATOM 95 CA LEU A 31 23.332 10.459 27.102 1.00 45.42 C
+ATOM 103 CA TYR A 32 23.549 6.898 28.380 1.00 45.88 C
+ATOM 115 CA LYS A 33 21.656 5.321 31.262 1.00 47.27 C
+ATOM 124 CA PRO A 34 21.991 2.046 33.248 1.00 48.99 C
+ATOM 131 CA LYS A 35 19.339 0.560 30.970 1.00 52.75 C
+ATOM 140 CA GLU A 36 21.580 0.855 27.886 1.00 53.33 C
+ATOM 149 CA PRO A 37 25.154 2.015 28.678 1.00 47.54 C
+ATOM 156 CA TYR A 38 27.929 2.872 26.249 1.00 41.98 C
+ATOM 168 CA VAL A 39 30.355 -0.017 25.909 1.00 41.48 C
+ATOM 175 CA GLY A 40 33.823 1.485 25.966 1.00 37.59 C
+ATOM 179 CA ARG A 41 37.165 -0.277 26.122 1.00 39.77 C
+ATOM 190 CA CYS A 42 40.148 -0.029 28.442 1.00 36.51 C
+ATOM 196 CA LEU A 43 43.095 1.441 26.554 1.00 36.13 C
+ATOM 204 CA LEU A 44 45.231 2.023 29.649 1.00 33.55 C
+ATOM 212 CA ASN A 45 45.140 1.026 33.307 1.00 27.79 C
+ATOM 220 CA THR A 46 48.056 1.800 35.617 1.00 28.75 C
+ATOM 227 CA LYS A 47 48.542 1.776 39.388 1.00 30.31 C
+ATOM 236 CA ILE A 48 49.564 5.317 40.376 1.00 31.32 C
+ATOM 244 CA THR A 49 50.339 4.682 44.059 1.00 37.62 C
+ATOM 251 CA GLY A 50 53.585 3.317 45.460 1.00 44.49 C
+ATOM 255 CA ASP A 51 53.706 -0.448 46.087 1.00 52.89 C
+ATOM 263 CA ASP A 52 53.910 0.545 49.751 1.00 55.23 C
+ATOM 271 CA ALA A 53 50.816 2.767 50.056 1.00 53.34 C
+ATOM 276 CA PRO A 54 47.904 1.940 52.405 1.00 50.60 C
+ATOM 283 CA GLY A 55 45.420 1.579 49.561 1.00 50.35 C
+ATOM 287 CA GLU A 56 46.098 1.286 45.836 1.00 42.53 C
+ATOM 296 CA THR A 57 44.534 3.816 43.480 1.00 41.14 C
+ATOM 303 CA TRP A 58 44.540 3.423 39.708 1.00 35.60 C
+ATOM 317 CA HIS A 59 44.468 5.853 36.796 1.00 31.89 C
+ATOM 327 CA MET A 60 42.658 4.227 33.866 1.00 31.65 C
+ATOM 335 CA VAL A 61 41.716 5.345 30.350 1.00 30.43 C
+ATOM 342 CA PHE A 62 38.669 4.172 28.360 1.00 34.36 C
+ATOM 353 CA SER A 63 37.657 4.908 24.772 1.00 34.69 C
+ATOM 359 CA THR A 64 34.448 6.828 23.951 1.00 36.96 C
+ATOM 366 CA GLU A 65 34.691 7.644 20.254 1.00 40.08 C
+ATOM 375 CA GLY A 66 33.742 11.183 21.285 1.00 40.22 C
+ATOM 379 CA LYS A 67 30.272 9.763 22.003 1.00 41.93 C
+ATOM 388 CA ILE A 68 30.279 11.116 25.577 1.00 41.52 C
+ATOM 396 CA PRO A 69 30.791 14.926 25.537 1.00 42.35 C
+ATOM 403 CA TYR A 70 31.228 15.232 29.299 1.00 39.84 C
+ATOM 415 CA ARG A 71 32.639 18.451 30.768 1.00 44.14 C
+ATOM 426 CA GLU A 72 35.122 19.278 33.515 1.00 43.82 C
+ATOM 435 CA GLY A 73 33.472 18.458 36.835 1.00 41.97 C
+ATOM 439 CA GLN A 74 30.929 15.874 35.657 1.00 37.19 C
+ATOM 448 CA SER A 75 31.285 12.124 36.138 1.00 38.28 C
+ATOM 454 CA ILE A 76 30.458 8.792 34.539 1.00 36.84 C
+ATOM 462 CA GLY A 77 28.983 5.620 35.918 1.00 35.39 C
+ATOM 466 CA VAL A 78 30.311 2.108 35.530 1.00 32.05 C
+ATOM 473 CA ILE A 79 28.458 -1.201 35.591 1.00 32.67 C
+ATOM 481 CA ALA A 80 30.745 -4.018 36.644 1.00 35.36 C
+ATOM 486 CA ASP A 81 30.359 -7.373 34.872 1.00 38.72 C
+ATOM 494 CA GLY A 82 28.308 -10.332 36.110 1.00 45.79 C
+ATOM 498 CA VAL A 83 25.820 -10.242 39.001 1.00 52.24 C
+ATOM 505 CA ASP A 84 25.838 -10.250 42.834 1.00 60.54 C
+ATOM 513 CA LYS A 85 25.014 -13.158 45.196 1.00 66.72 C
+ATOM 522 CA ASN A 86 21.414 -13.062 43.904 1.00 67.37 C
+ATOM 530 CA GLY A 87 21.724 -13.423 40.136 1.00 64.74 C
+ATOM 534 CA LYS A 88 20.971 -9.733 39.570 1.00 61.12 C
+ATOM 543 CA PRO A 89 23.054 -7.201 37.561 1.00 54.68 C
+ATOM 550 CA HIS A 90 25.224 -4.957 39.755 1.00 44.44 C
+ATOM 560 CA LYS A 91 23.940 -1.433 40.260 1.00 40.48 C
+ATOM 569 CA VAL A 92 25.803 1.546 38.843 1.00 38.45 C
+ATOM 576 CA ARG A 93 28.709 2.986 40.828 1.00 38.93 C
+ATOM 587 CA LEU A 94 29.778 6.584 40.096 1.00 34.37 C
+ATOM 595 CA TYR A 95 33.309 7.878 39.513 1.00 30.27 C
+ATOM 607 CA SER A 96 34.425 11.475 39.057 1.00 29.44 C
+ATOM 613 CA ILE A 97 36.029 12.090 35.662 1.00 27.61 C
+ATOM 621 CA ALA A 98 39.769 12.693 36.069 1.00 31.12 C
+ATOM 626 CA SER A 99 40.393 13.712 32.475 1.00 32.42 C
+ATOM 632 CA SER A 100 39.566 17.142 31.059 1.00 36.14 C
+ATOM 638 CA ALA A 101 37.097 17.367 28.154 1.00 41.07 C
+ATOM 643 CA ILE A 102 39.764 16.549 25.527 1.00 47.65 C
+ATOM 651 CA GLY A 103 41.172 13.692 27.599 1.00 46.77 C
+ATOM 655 CA ASP A 104 44.730 12.612 28.289 1.00 43.82 C
+ATOM 663 CA PHE A 105 45.115 12.065 24.522 1.00 41.52 C
+ATOM 674 CA GLY A 106 43.862 15.455 23.328 1.00 41.66 C
+ATOM 678 CA ASP A 107 41.355 13.883 20.926 1.00 40.90 C
+ATOM 686 CA SER A 108 38.132 14.250 22.954 1.00 42.95 C
+ATOM 692 CA LYS A 109 37.967 10.535 22.224 1.00 44.74 C
+ATOM 701 CA THR A 110 38.731 9.184 25.704 1.00 41.09 C
+ATOM 708 CA VAL A 111 37.728 9.519 29.374 1.00 39.03 C
+ATOM 715 CA SER A 112 39.912 8.705 32.399 1.00 37.17 C
+ATOM 721 CA LEU A 113 39.098 7.476 35.935 1.00 32.10 C
+ATOM 729 CA CYS A 114 40.964 7.578 39.261 1.00 30.65 C
+ATOM 735 CA VAL A 115 39.724 4.459 41.060 1.00 33.45 C
+ATOM 742 CA LYS A 116 40.668 3.524 44.628 1.00 34.75 C
+ATOM 751 CA ARG A 117 40.376 -0.250 45.123 1.00 32.85 C
+ATOM 762 CA LEU A 118 38.137 -1.094 48.077 1.00 30.50 C
+ATOM 770 CA ILE A 119 39.376 -3.752 50.459 1.00 34.34 C
+ATOM 778 CA TYR A 120 38.699 -4.266 54.125 1.00 31.39 C
+ATOM 790 CA THR A 121 38.264 -7.086 56.567 1.00 28.83 C
+ATOM 797 CA ASN A 122 34.792 -7.477 58.109 1.00 26.51 C
+ATOM 805 CA ASP A 123 33.626 -8.382 61.634 1.00 31.58 C
+ATOM 813 CA ALA A 124 34.191 -12.077 60.901 1.00 27.84 C
+ATOM 818 CA GLY A 125 37.759 -11.844 59.728 1.00 32.39 C
+ATOM 822 CA GLU A 126 36.809 -12.146 56.073 1.00 35.82 C
+ATOM 831 CA ILE A 127 38.655 -9.932 53.598 1.00 38.42 C
+ATOM 839 CA VAL A 128 36.025 -8.261 51.421 1.00 33.73 C
+ATOM 846 CA LYS A 129 36.482 -6.484 48.090 1.00 31.87 C
+ATOM 855 CA GLY A 130 34.363 -3.680 46.686 1.00 26.91 C
+ATOM 859 CA VAL A 131 32.680 -5.051 43.569 1.00 27.89 C
+ATOM 866 CA CYS A 132 33.074 -2.246 41.018 1.00 28.46 C
+ATOM 872 CA SER A 133 36.266 -0.553 42.213 1.00 31.33 C
+ATOM 878 CA ASN A 134 37.861 -3.983 41.984 1.00 30.29 C
+ATOM 886 CA PHE A 135 36.318 -4.795 38.623 1.00 31.48 C
+ATOM 897 CA LEU A 136 37.926 -1.553 37.520 1.00 27.81 C
+ATOM 905 CA CYS A 137 41.417 -1.976 38.955 1.00 25.91 C
+ATOM 911 CA ASP A 138 41.605 -5.419 37.338 1.00 30.22 C
+ATOM 919 CA LEU A 139 40.462 -4.306 33.874 1.00 32.69 C
+ATOM 927 CA GLN A 140 42.851 -5.511 31.186 1.00 36.80 C
+ATOM 936 CA PRO A 141 43.380 -3.220 28.170 1.00 36.16 C
+ATOM 943 CA GLY A 142 40.864 -4.420 25.586 1.00 31.10 C
+ATOM 947 CA ASP A 143 38.129 -5.298 28.055 1.00 30.62 C
+ATOM 955 CA ASN A 144 34.690 -3.847 27.645 1.00 33.52 C
+ATOM 963 CA VAL A 145 33.430 -1.522 30.361 1.00 37.08 C
+ATOM 970 CA GLN A 146 29.817 -0.374 30.523 1.00 37.65 C
+ATOM 979 CA ILE A 147 29.547 3.413 31.045 1.00 30.95 C
+ATOM 987 CA THR A 148 26.637 5.791 31.832 1.00 29.95 C
+ATOM 994 CA GLY A 149 26.297 9.581 31.843 1.00 32.81 C
+ATOM 998 CA PRO A 150 27.785 12.148 31.800 1.00 34.98 C
+ATOM 1005 CA VAL A 151 26.376 12.668 35.275 1.00 36.53 C
+ATOM 1012 CA GLY A 152 26.196 15.756 37.474 1.00 43.09 C
+ATOM 1016 CA LYS A 153 26.048 19.528 37.068 1.00 48.37 C
+ATOM 1025 CA GLU A 154 26.921 20.540 40.633 1.00 49.70 C
+ATOM 1034 CA MET A 155 30.710 20.266 40.235 1.00 47.30 C
+ATOM 1042 CA LEU A 156 30.882 22.020 36.869 1.00 50.36 C
+ATOM 1050 CA MET A 157 33.362 24.883 36.404 1.00 55.29 C
+ATOM 1058 CA PRO A 158 32.521 28.612 36.605 1.00 54.88 C
+ATOM 1065 CA LYS A 159 32.291 30.776 33.464 1.00 54.92 C
+ATOM 1074 CA ASP A 160 34.497 33.503 34.939 1.00 57.22 C
+ATOM 1082 CA PRO A 161 38.055 32.687 33.759 1.00 58.62 C
+ATOM 1089 CA ASN A 162 39.524 35.240 36.163 1.00 60.44 C
+ATOM 1097 CA ALA A 163 37.814 33.910 39.279 1.00 55.80 C
+ATOM 1102 CA THR A 164 39.596 32.487 42.316 1.00 51.04 C
+ATOM 1109 CA ILE A 165 38.966 28.771 42.756 1.00 50.26 C
+ATOM 1117 CA ILE A 166 39.774 26.773 45.885 1.00 47.54 C
+ATOM 1125 CA MET A 167 39.883 23.014 45.324 1.00 46.38 C
+ATOM 1133 CA LEU A 168 39.700 20.963 48.522 1.00 42.18 C
+ATOM 1141 CA ALA A 169 40.377 17.316 47.770 1.00 36.41 C
+ATOM 1146 CA THR A 170 41.005 14.086 49.622 1.00 32.98 C
+ATOM 1153 CA GLY A 171 42.027 10.802 48.014 1.00 31.36 C
+ATOM 1157 CA THR A 172 40.386 10.037 44.680 1.00 30.48 C
+ATOM 1164 CA GLY A 173 38.640 13.335 45.359 1.00 33.99 C
+ATOM 1168 CA ILE A 174 41.418 15.036 43.394 1.00 35.66 C
+ATOM 1176 CA ALA A 175 39.758 13.585 40.300 1.00 36.00 C
+ATOM 1181 CA PRO A 176 37.445 16.385 39.155 1.00 39.41 C
+ATOM 1188 CA PHE A 177 40.109 18.971 39.976 1.00 43.21 C
+ATOM 1199 CA ARG A 178 42.726 17.119 37.955 1.00 41.09 C
+ATOM 1210 CA SER A 179 40.235 17.536 35.124 1.00 39.92 C
+ATOM 1216 CA PHE A 180 39.808 21.204 36.009 1.00 39.23 C
+ATOM 1227 CA LEU A 181 43.528 21.949 35.995 1.00 39.50 C
+ATOM 1235 CA TRP A 182 44.305 20.081 32.770 1.00 41.47 C
+ATOM 1249 CA LYS A 183 42.141 22.654 30.972 1.00 48.08 C
+ATOM 1258 CA MET A 184 43.477 25.547 33.062 1.00 52.79 C
+ATOM 1266 CA PHE A 185 47.102 25.043 32.014 1.00 57.35 C
+ATOM 1277 CA PHE A 186 48.075 21.921 30.051 1.00 55.98 C
+ATOM 1288 CA GLU A 187 45.758 23.173 27.297 1.00 54.44 C
+ATOM 1297 CA LYS A 188 44.908 26.236 25.196 1.00 51.29 C
+ATOM 1306 CA HIS A 189 41.395 27.080 24.003 1.00 51.35 C
+ATOM 1316 CA ASP A 190 40.108 29.972 21.873 1.00 54.30 C
+ATOM 1324 CA ASP A 191 37.199 30.481 24.249 1.00 53.95 C
+ATOM 1332 CA TYR A 192 38.816 29.937 27.634 1.00 50.68 C
+ATOM 1344 CA LYS A 193 41.916 31.388 29.230 1.00 51.00 C
+ATOM 1353 CA PHE A 194 42.322 30.967 32.956 1.00 52.09 C
+ATOM 1364 CA ASN A 195 43.672 34.234 34.312 1.00 56.46 C
+ATOM 1372 CA GLY A 196 42.616 34.078 37.969 1.00 57.17 C
+ATOM 1376 CA LEU A 197 43.874 31.920 40.843 1.00 57.92 C
+ATOM 1384 CA GLY A 198 43.549 28.151 41.086 1.00 56.67 C
+ATOM 1388 CA TRP A 199 44.258 26.886 44.592 1.00 51.55 C
+ATOM 1402 CA LEU A 200 44.411 23.170 45.379 1.00 49.17 C
+ATOM 1410 CA PHE A 201 44.558 21.335 48.709 1.00 48.60 C
+ATOM 1421 CA LEU A 202 45.122 17.570 48.598 1.00 45.34 C
+ATOM 1429 CA GLY A 203 44.885 15.480 51.742 1.00 48.55 C
+ATOM 1433 CA VAL A 204 46.225 11.936 51.755 1.00 50.23 C
+ATOM 1440 CA PRO A 205 47.942 9.740 54.365 1.00 51.51 C
+ATOM 1447 CA THR A 206 51.284 9.148 52.648 1.00 50.21 C
+ATOM 1454 CA SER A 207 53.551 10.483 49.894 1.00 49.38 C
+ATOM 1460 CA SER A 208 53.267 7.061 48.259 1.00 43.49 C
+ATOM 1466 CA SER A 209 49.588 8.049 48.093 1.00 42.57 C
+ATOM 1472 CA LEU A 210 49.990 11.424 46.364 1.00 42.65 C
+ATOM 1480 CA LEU A 211 48.121 11.446 43.035 1.00 39.33 C
+ATOM 1488 CA TYR A 212 49.516 13.214 39.935 1.00 40.89 C
+ATOM 1500 CA LYS A 213 52.128 15.234 41.873 1.00 45.88 C
+ATOM 1509 CA GLU A 214 54.518 15.406 38.899 1.00 53.22 C
+ATOM 1518 CA GLU A 215 51.680 16.911 36.889 1.00 55.16 C
+ATOM 1527 CA PHE A 216 50.757 19.475 39.514 1.00 60.55 C
+ATOM 1538 CA GLY A 217 54.488 20.153 39.524 1.00 66.64 C
+ATOM 1542 CA LYS A 218 54.575 21.110 35.850 1.00 68.86 C
+ATOM 1551 CA MET A 219 51.398 23.159 36.265 1.00 66.97 C
+ATOM 1559 CA LYS A 220 53.138 25.090 39.061 1.00 65.97 C
+ATOM 1568 CA GLU A 221 55.654 26.250 36.459 1.00 70.02 C
+ATOM 1577 CA ARG A 222 53.584 26.507 33.294 1.00 73.48 C
+ATOM 1588 CA ALA A 223 52.005 29.449 35.175 1.00 76.21 C
+ATOM 1593 CA PRO A 224 53.272 29.877 38.804 1.00 79.25 C
+ATOM 1600 CA GLU A 225 51.296 33.124 39.020 1.00 81.84 C
+ATOM 1609 CA ASN A 226 47.873 31.528 38.622 1.00 78.84 C
+ATOM 1617 CA PHE A 227 48.418 28.176 40.350 1.00 75.28 C
+ATOM 1628 CA ARG A 228 49.090 27.305 43.996 1.00 72.05 C
+ATOM 1639 CA VAL A 229 49.165 23.724 45.323 1.00 68.82 C
+ATOM 1646 CA ASP A 230 49.258 22.581 48.958 1.00 66.54 C
+ATOM 1654 CA TYR A 231 49.605 18.943 49.968 1.00 60.31 C
+ATOM 1666 CA ALA A 232 48.551 17.560 53.332 1.00 57.39 C
+ATOM 1671 CA VAL A 233 50.260 14.228 53.945 1.00 57.14 C
+ATOM 1678 CA SER A 234 48.465 13.579 57.244 1.00 60.81 C
+ATOM 1684 CA ARG A 235 50.959 11.010 58.514 1.00 60.74 C
+ATOM 1695 CA GLU A 236 54.268 12.594 57.481 1.00 59.17 C
+ATOM 1704 CA GLN A 237 53.494 16.197 58.450 1.00 59.62 C
+ATOM 1713 CA THR A 238 52.590 18.236 61.521 1.00 63.18 C
+ATOM 1720 CA ASN A 239 52.019 21.937 62.188 1.00 66.71 C
+ATOM 1728 CA ALA A 240 52.096 23.767 65.537 1.00 70.06 C
+ATOM 1733 CA ALA A 241 51.302 21.400 68.410 1.00 72.44 C
+ATOM 1738 CA GLY A 242 52.383 18.324 66.438 1.00 72.38 C
+ATOM 1742 CA GLU A 243 48.826 18.169 65.110 1.00 69.71 C
+ATOM 1751 CA ARG A 244 48.674 15.776 62.148 1.00 67.21 C
+ATOM 1762 CA MET A 245 48.712 17.796 58.933 1.00 64.20 C
+ATOM 1770 CA TYR A 246 45.246 17.082 57.556 1.00 60.65 C
+ATOM 1782 CA ILE A 247 43.617 18.437 54.409 1.00 62.98 C
+ATOM 1790 CA GLN A 248 42.035 21.001 56.761 1.00 64.64 C
+ATOM 1799 CA THR A 249 45.057 21.461 59.009 1.00 63.37 C
+ATOM 1806 CA ARG A 250 46.891 22.664 55.903 1.00 62.47 C
+ATOM 1817 CA MET A 251 44.123 25.201 55.251 1.00 63.35 C
+ATOM 1825 CA ALA A 252 44.571 26.305 58.854 1.00 65.73 C
+ATOM 1830 CA GLU A 253 47.973 27.809 58.076 1.00 65.97 C
+ATOM 1839 CA TYR A 254 46.267 30.063 55.517 1.00 65.83 C
+ATOM 1851 CA LYS A 255 42.991 30.559 57.379 1.00 70.30 C
+ATOM 1860 CA GLU A 256 43.578 34.326 57.320 1.00 73.73 C
+ATOM 1869 CA GLU A 257 44.189 34.738 53.593 1.00 71.52 C
+ATOM 1878 CA LEU A 258 41.459 32.202 52.893 1.00 73.38 C
+ATOM 1886 CA TRP A 259 38.790 34.074 54.853 1.00 76.72 C
+ATOM 1900 CA GLU A 260 39.721 37.275 53.006 1.00 78.61 C
+ATOM 1909 CA LEU A 261 38.580 35.553 49.815 1.00 75.71 C
+ATOM 1917 CA LEU A 262 35.391 33.881 51.047 1.00 73.74 C
+ATOM 1925 CA LYS A 263 33.562 37.165 50.535 1.00 73.64 C
+ATOM 1934 CA LYS A 264 34.299 38.143 46.954 1.00 72.48 C
+ATOM 1943 CA ASP A 265 31.954 37.554 43.993 1.00 69.65 C
+ATOM 1951 CA ASN A 266 34.660 35.649 42.106 1.00 65.06 C
+ATOM 1959 CA THR A 267 35.835 33.117 44.683 1.00 58.24 C
+ATOM 1966 CA TYR A 268 34.459 29.646 43.909 1.00 51.04 C
+ATOM 1978 CA VAL A 269 35.192 26.827 46.382 1.00 44.95 C
+ATOM 1985 CA TYR A 270 35.012 23.150 45.368 1.00 44.96 C
+ATOM 1997 CA MET A 271 35.162 20.122 47.656 1.00 41.72 C
+ATOM 2005 CA CYS A 272 35.314 16.468 46.632 1.00 37.19 C
+ATOM 2011 CA GLY A 273 36.343 13.080 47.951 1.00 37.65 C
+ATOM 2015 CA LEU A 274 36.040 10.886 51.020 1.00 39.39 C
+ATOM 2023 CA LYS A 275 33.076 12.283 52.955 1.00 44.86 C
+ATOM 2032 CA GLY A 276 34.322 13.183 56.400 1.00 49.16 C
+ATOM 2036 CA MET A 277 36.932 15.608 55.168 1.00 53.30 C
+ATOM 2044 CA GLU A 278 33.917 17.921 55.165 1.00 56.74 C
+ATOM 2053 CA LYS A 279 33.531 18.089 58.947 1.00 59.30 C
+ATOM 2062 CA GLY A 280 36.982 19.413 59.776 1.00 58.94 C
+ATOM 2066 CA ILE A 281 36.705 22.048 57.063 1.00 61.43 C
+ATOM 2074 CA ASP A 282 33.453 23.402 58.515 1.00 67.06 C
+ATOM 2082 CA ASP A 283 35.050 23.189 61.972 1.00 74.12 C
+ATOM 2090 CA ILE A 284 37.991 25.422 61.040 1.00 78.49 C
+ATOM 2098 CA MET A 285 35.456 27.566 59.201 1.00 82.25 C
+ATOM 2106 CA VAL A 286 32.941 27.959 62.027 1.00 83.44 C
+ATOM 2113 CA SER A 287 35.610 29.113 64.469 1.00 83.43 C
+ATOM 2119 CA LEU A 288 36.927 31.601 61.887 1.00 85.53 C
+ATOM 2127 CA ALA A 289 33.506 33.025 60.970 1.00 86.85 C
+ATOM 2132 CA GLU A 290 31.841 32.696 64.387 1.00 89.26 C
+ATOM 2141 CA LYS A 291 34.438 35.312 65.347 1.00 88.73 C
+ATOM 2150 CA ASP A 292 33.635 37.891 62.652 1.00 88.03 C
+ATOM 2158 CA GLY A 293 30.219 37.450 61.081 1.00 87.88 C
+ATOM 2162 CA ILE A 294 27.319 35.051 61.511 1.00 84.61 C
+ATOM 2170 CA ASP A 295 27.665 31.329 62.188 1.00 82.45 C
+ATOM 2178 CA TRP A 296 29.539 29.627 59.355 1.00 80.12 C
+ATOM 2192 CA PHE A 297 26.527 27.452 58.512 1.00 78.99 C
+ATOM 2203 CA ASP A 298 24.167 30.241 57.486 1.00 76.37 C
+ATOM 2211 CA TYR A 299 27.074 31.748 55.561 1.00 74.07 C
+ATOM 2223 CA LYS A 300 27.679 28.620 53.473 1.00 74.31 C
+ATOM 2232 CA LYS A 301 24.059 29.146 52.464 1.00 75.97 C
+ATOM 2241 CA GLN A 302 24.921 32.563 51.018 1.00 75.38 C
+ATOM 2250 CA LEU A 303 27.896 31.099 49.155 1.00 72.10 C
+ATOM 2258 CA LYS A 304 25.917 28.207 47.690 1.00 72.08 C
+ATOM 2267 CA ARG A 305 23.595 31.021 46.594 1.00 74.82 C
+ATOM 2278 CA GLY A 306 26.071 32.136 43.958 1.00 71.84 C
+ATOM 2282 CA ASP A 307 27.505 28.682 43.220 1.00 67.23 C
+ATOM 2290 CA GLN A 308 30.620 29.291 45.346 1.00 60.18 C
+ATOM 2299 CA TRP A 309 30.585 26.177 47.537 1.00 52.25 C
+ATOM 2313 CA ASN A 310 29.894 22.997 45.597 1.00 45.03 C
+ATOM 2321 CA VAL A 311 30.327 19.716 47.403 1.00 39.13 C
+ATOM 2328 CA GLU A 312 30.507 16.190 46.110 1.00 35.17 C
+ATOM 2337 CA VAL A 313 31.761 13.957 48.861 1.00 30.12 C
+ATOM 2344 CA TYR A 314 31.112 10.230 49.021 1.00 28.23 C
+ATOM 2358 CA ALA B 1 2.311 24.702 44.475 1.00 74.17 C
+ATOM 2363 CA THR B 2 3.590 24.207 48.055 1.00 74.76 C
+ATOM 2370 CA TYR B 3 3.069 20.876 49.837 1.00 73.52 C
+ATOM 2382 CA ASN B 4 3.748 19.874 53.435 1.00 75.75 C
+ATOM 2390 CA VAL B 5 6.618 17.399 53.868 1.00 75.95 C
+ATOM 2397 CA LYS B 6 7.769 15.523 56.983 1.00 77.70 C
+ATOM 2406 CA LEU B 7 11.351 14.325 57.458 1.00 78.91 C
+ATOM 2414 CA ILE B 8 11.807 11.511 59.985 1.00 81.00 C
+ATOM 2422 CA THR B 9 15.560 12.046 60.247 1.00 87.49 C
+ATOM 2429 CA PRO B 10 17.662 9.793 62.539 1.00 92.94 C
+ATOM 2436 CA GLU B 11 18.161 13.147 64.282 1.00 96.61 C
+ATOM 2445 CA GLY B 12 14.579 14.154 65.041 1.00 97.52 C
+ATOM 2449 CA GLU B 13 11.602 14.823 62.748 1.00 96.90 C
+ATOM 2458 CA VAL B 14 11.547 17.892 60.480 1.00 96.63 C
+ATOM 2465 CA GLU B 15 8.340 19.701 59.440 1.00 94.86 C
+ATOM 2474 CA LEU B 16 9.471 21.479 56.254 1.00 91.55 C
+ATOM 2482 CA GLN B 17 7.281 23.141 53.598 1.00 89.75 C
+ATOM 2491 CA VAL B 18 8.485 22.069 50.145 1.00 87.92 C
+ATOM 2498 CA PRO B 19 6.906 23.558 46.964 1.00 86.35 C
+ATOM 2505 CA ASP B 20 5.990 21.744 43.717 1.00 86.29 C
+ATOM 2513 CA ASP B 21 8.578 22.751 41.083 1.00 83.78 C
+ATOM 2521 CA VAL B 22 11.385 22.401 43.639 1.00 80.98 C
+ATOM 2528 CA TYR B 23 13.439 19.280 44.481 1.00 77.04 C
+ATOM 2540 CA ILE B 24 13.212 18.196 48.120 1.00 76.45 C
+ATOM 2548 CA LEU B 25 16.959 18.133 48.851 1.00 75.15 C
+ATOM 2556 CA ASP B 26 17.154 21.745 47.689 1.00 75.80 C
+ATOM 2564 CA GLN B 27 14.616 22.906 50.280 1.00 76.31 C
+ATOM 2573 CA ALA B 28 16.562 20.957 52.914 1.00 78.86 C
+ATOM 2578 CA GLU B 29 19.698 23.011 52.198 1.00 81.51 C
+ATOM 2587 CA GLU B 30 17.491 26.106 52.510 1.00 83.25 C
+ATOM 2596 CA ASP B 31 15.857 25.933 55.935 1.00 81.92 C
+ATOM 2604 CA GLY B 32 19.280 24.859 57.151 1.00 79.08 C
+ATOM 2608 CA ILE B 33 18.621 21.130 57.157 1.00 76.93 C
+ATOM 2616 CA ASP B 34 21.528 18.731 56.618 1.00 73.53 C
+ATOM 2624 CA LEU B 35 20.738 15.738 54.421 1.00 67.74 C
+ATOM 2632 CA PRO B 36 23.138 13.391 52.547 1.00 65.90 C
+ATOM 2639 CA TYR B 37 23.916 14.226 48.912 1.00 64.85 C
+ATOM 2651 CA SER B 38 26.659 13.373 46.412 1.00 62.58 C
+ATOM 2657 CA CYS B 39 26.193 13.603 42.652 1.00 60.99 C
+ATOM 2663 CA ARG B 40 22.908 15.441 43.251 1.00 58.35 C
+ATOM 2674 CA ALA B 41 21.699 14.108 39.886 1.00 56.38 C
+ATOM 2679 CA GLY B 42 19.886 10.955 40.991 1.00 56.66 C
+ATOM 2683 CA SER B 43 22.465 8.336 40.010 1.00 58.55 C
+ATOM 2689 CA CYS B 44 23.548 7.052 43.447 1.00 56.27 C
+ATOM 2695 CA SER B 45 22.057 5.987 46.791 1.00 58.20 C
+ATOM 2701 CA SER B 46 23.574 8.773 48.890 1.00 59.13 C
+ATOM 2707 CA CYS B 47 20.220 10.475 49.517 1.00 65.64 C
+ATOM 2713 CA ALA B 48 17.911 7.436 49.610 1.00 69.71 C
+ATOM 2718 CA GLY B 49 14.733 7.635 51.681 1.00 73.09 C
+ATOM 2722 CA LYS B 50 11.712 5.340 52.183 1.00 73.77 C
+ATOM 2731 CA VAL B 51 8.551 7.412 51.568 1.00 76.51 C
+ATOM 2738 CA VAL B 52 5.237 7.081 53.429 1.00 78.85 C
+ATOM 2745 CA SER B 53 2.180 9.376 53.647 1.00 79.57 C
+ATOM 2751 CA GLY B 54 2.118 10.991 50.218 1.00 76.32 C
+ATOM 2755 CA SER B 55 3.577 10.944 46.726 1.00 76.31 C
+ATOM 2761 CA VAL B 56 6.436 12.592 44.828 1.00 77.50 C
+ATOM 2768 CA ASP B 57 7.691 12.960 41.243 1.00 76.83 C
+ATOM 2776 CA GLN B 58 11.150 11.483 40.555 1.00 76.66 C
+ATOM 2785 CA SER B 59 10.976 10.827 36.792 1.00 80.19 C
+ATOM 2791 CA ASP B 60 14.688 11.644 36.510 1.00 83.51 C
+ATOM 2799 CA GLN B 61 15.175 8.137 37.916 1.00 85.74 C
+ATOM 2808 CA SER B 62 18.644 7.080 36.699 1.00 85.85 C
+ATOM 2814 CA TYR B 63 19.324 5.049 39.852 1.00 84.49 C
+ATOM 2826 CA LEU B 64 15.683 4.296 40.629 1.00 89.06 C
+ATOM 2834 CA ASP B 65 15.356 0.604 39.742 1.00 92.21 C
+ATOM 2842 CA ASP B 66 12.421 -1.791 39.331 1.00 92.35 C
+ATOM 2850 CA GLY B 67 10.747 -2.542 42.659 1.00 89.07 C
+ATOM 2854 CA GLN B 68 12.336 0.632 44.010 1.00 88.41 C
+ATOM 2863 CA ILE B 69 9.483 2.828 42.742 1.00 86.11 C
+ATOM 2871 CA ALA B 70 7.060 0.441 44.446 1.00 81.10 C
+ATOM 2876 CA ASP B 71 8.985 -0.310 47.648 1.00 76.82 C
+ATOM 2884 CA GLY B 72 8.653 3.423 48.186 1.00 73.00 C
+ATOM 2888 CA TRP B 73 12.342 4.386 48.095 1.00 67.93 C
+ATOM 2902 CA VAL B 74 13.052 8.007 47.136 1.00 63.84 C
+ATOM 2909 CA LEU B 75 16.093 9.940 45.892 1.00 58.37 C
+ATOM 2917 CA THR B 76 15.524 13.198 47.826 1.00 55.82 C
+ATOM 2924 CA CYS B 77 17.941 15.109 45.556 1.00 58.23 C
+ATOM 2930 CA HIS B 78 15.777 14.389 42.513 1.00 64.55 C
+ATOM 2940 CA ALA B 79 12.108 14.429 43.512 1.00 68.40 C
+ATOM 2945 CA TYR B 80 9.442 17.152 43.581 1.00 69.69 C
+ATOM 2957 CA PRO B 81 6.414 16.584 45.842 1.00 71.39 C
+ATOM 2964 CA THR B 82 3.015 16.014 44.179 1.00 73.67 C
+ATOM 2971 CA SER B 83 1.278 15.771 47.557 1.00 76.90 C
+ATOM 2977 CA ASP B 84 1.940 16.119 51.289 1.00 75.20 C
+ATOM 2985 CA VAL B 85 4.840 13.765 52.050 1.00 71.37 C
+ATOM 2992 CA VAL B 86 6.363 11.824 54.956 1.00 70.12 C
+ATOM 2999 CA ILE B 87 9.770 10.300 54.188 1.00 74.18 C
+ATOM 3007 CA GLU B 88 12.211 8.403 56.410 1.00 78.53 C
+ATOM 3012 CA THR B 89 15.541 9.964 55.407 1.00 79.79 C
+ATOM 3019 CA HIS B 90 19.062 8.538 55.881 1.00 79.40 C
+ATOM 3029 CA LYS B 91 17.584 5.099 55.099 1.00 84.52 C
+ATOM 3038 CA GLU B 92 20.016 2.596 53.549 1.00 91.64 C
+ATOM 3047 CA GLU B 93 20.192 -0.858 51.981 1.00 98.97 C
+ATOM 3056 CA GLU B 94 23.321 -2.924 51.298 1.00106.32 C
+ATOM 3065 CA LEU B 95 22.104 -6.552 51.453 1.00111.32 C
+ATOM 3073 CA THR B 96 18.778 -8.417 51.866 1.00116.01 C
+ATOM 3080 CA GLY B 97 18.877 -11.302 49.394 1.00116.63 C
+ATOM 3084 CA ALA B 98 22.056 -9.833 47.910 1.00116.02 C
+ATOM 3091 CA GLU C 19 26.080 -2.480 15.294 1.00 73.96 C
+ATOM 3100 CA SER C 20 23.405 0.198 14.956 1.00 67.27 C
+ATOM 3106 CA LYS C 21 22.937 3.927 15.380 1.00 59.27 C
+ATOM 3115 CA LYS C 22 19.198 3.481 15.874 1.00 58.42 C
+ATOM 3124 CA GLN C 23 17.251 3.141 19.137 1.00 59.89 C
+ATOM 3133 CA GLU C 24 17.931 -0.276 20.610 1.00 62.66 C
+ATOM 3142 CA GLU C 25 16.850 -0.453 24.226 1.00 64.27 C
+ATOM 3151 CA GLY C 26 13.211 -0.817 25.116 1.00 61.78 C
+ATOM 3155 CA VAL C 27 12.703 -2.073 21.582 1.00 58.37 C
+ATOM 3162 CA VAL C 28 10.779 -5.347 21.485 1.00 54.17 C
+ATOM 3169 CA THR C 29 9.481 -7.339 18.549 1.00 52.79 C
+ATOM 3176 CA ASN C 30 6.670 -9.775 17.786 1.00 51.30 C
+ATOM 3184 CA LEU C 31 4.863 -9.997 21.112 1.00 51.05 C
+ATOM 3192 CA TYR C 32 1.766 -11.297 19.327 1.00 50.51 C
+ATOM 3204 CA LYS C 33 1.373 -13.532 16.266 1.00 49.49 C
+ATOM 3213 CA PRO C 34 -1.609 -14.150 13.925 1.00 50.98 C
+ATOM 3220 CA LYS C 35 -2.450 -17.248 16.011 1.00 55.46 C
+ATOM 3229 CA GLU C 36 -2.977 -15.400 19.288 1.00 53.79 C
+ATOM 3238 CA PRO C 37 -3.251 -11.638 18.607 1.00 49.32 C
+ATOM 3245 CA TYR C 38 -3.674 -9.050 21.318 1.00 46.76 C
+ATOM 3257 CA VAL C 39 -7.276 -7.947 21.418 1.00 43.68 C
+ATOM 3264 CA GLY C 40 -7.415 -4.194 21.922 1.00 41.62 C
+ATOM 3268 CA ARG C 41 -10.273 -1.719 21.954 1.00 40.07 C
+ATOM 3279 CA CYS C 42 -11.026 1.064 19.477 1.00 36.37 C
+ATOM 3285 CA LEU C 43 -11.330 4.206 21.583 1.00 31.09 C
+ATOM 3293 CA LEU C 44 -11.337 6.671 18.673 1.00 28.46 C
+ATOM 3301 CA ASN C 45 -11.792 6.653 14.923 1.00 26.74 C
+ATOM 3309 CA THR C 46 -11.954 9.920 13.013 1.00 25.29 C
+ATOM 3316 CA LYS C 47 -11.667 10.775 9.352 1.00 21.50 C
+ATOM 3325 CA ILE C 48 -8.895 13.355 9.121 1.00 19.33 C
+ATOM 3333 CA THR C 49 -9.125 14.281 5.442 1.00 20.38 C
+ATOM 3340 CA GLY C 50 -11.630 16.676 3.855 1.00 20.12 C
+ATOM 3344 CA ASP C 51 -14.895 15.345 2.412 1.00 21.75 C
+ATOM 3352 CA ASP C 52 -13.889 16.693 -0.999 1.00 21.19 C
+ATOM 3360 CA ALA C 53 -10.651 14.683 -0.749 1.00 21.06 C
+ATOM 3365 CA PRO C 54 -10.036 11.974 -3.413 1.00 21.39 C
+ATOM 3372 CA GLY C 55 -9.982 9.067 -0.977 1.00 24.42 C
+ATOM 3376 CA GLU C 56 -10.374 9.298 2.857 1.00 22.08 C
+ATOM 3385 CA THR C 57 -7.723 8.611 5.517 1.00 20.31 C
+ATOM 3392 CA TRP C 58 -8.541 7.849 9.162 1.00 19.33 C
+ATOM 3406 CA HIS C 59 -6.758 8.520 12.438 1.00 22.68 C
+ATOM 3416 CA MET C 60 -7.645 5.951 15.108 1.00 27.16 C
+ATOM 3424 CA VAL C 61 -6.672 5.224 18.723 1.00 29.32 C
+ATOM 3431 CA PHE C 62 -6.669 1.704 20.220 1.00 34.23 C
+ATOM 3442 CA SER C 63 -6.102 0.643 23.847 1.00 37.05 C
+ATOM 3448 CA THR C 64 -3.096 -1.517 24.798 1.00 41.86 C
+ATOM 3455 CA GLU C 65 -3.169 -1.652 28.621 1.00 48.33 C
+ATOM 3464 CA GLY C 66 0.537 -0.885 28.318 1.00 52.45 C
+ATOM 3468 CA LYS C 67 0.955 -4.385 26.891 1.00 54.14 C
+ATOM 3477 CA ILE C 68 2.429 -3.211 23.570 1.00 51.52 C
+ATOM 3485 CA PRO C 69 5.602 -1.279 24.487 1.00 49.85 C
+ATOM 3492 CA TYR C 70 6.523 -0.180 20.967 1.00 44.48 C
+ATOM 3504 CA ARG C 71 9.185 2.353 19.993 1.00 40.96 C
+ATOM 3515 CA GLU C 72 8.727 5.317 17.688 1.00 33.49 C
+ATOM 3524 CA GLY C 73 8.913 3.876 14.164 1.00 30.16 C
+ATOM 3528 CA GLN C 74 7.423 0.399 14.427 1.00 31.26 C
+ATOM 3537 CA SER C 75 4.187 -0.913 12.966 1.00 33.65 C
+ATOM 3543 CA ILE C 76 1.454 -3.212 14.278 1.00 33.75 C
+ATOM 3551 CA GLY C 77 -0.295 -5.923 12.356 1.00 34.32 C
+ATOM 3555 CA VAL C 78 -4.060 -6.111 12.164 1.00 36.67 C
+ATOM 3562 CA ILE C 79 -6.137 -9.230 11.507 1.00 41.91 C
+ATOM 3570 CA ALA C 80 -9.427 -8.086 10.024 1.00 44.06 C
+ATOM 3575 CA ASP C 81 -12.530 -9.927 11.224 1.00 47.03 C
+ATOM 3583 CA GLY C 82 -13.972 -12.487 8.829 1.00 53.52 C
+ATOM 3587 CA VAL C 83 -12.521 -14.951 6.324 1.00 62.57 C
+ATOM 3594 CA ASP C 84 -11.856 -14.200 2.630 1.00 71.97 C
+ATOM 3602 CA LYS C 85 -12.935 -17.403 0.861 1.00 76.86 C
+ATOM 3611 CA ASN C 86 -13.690 -18.960 4.253 1.00 76.52 C
+ATOM 3619 CA GLY C 87 -10.006 -19.837 4.066 1.00 76.22 C
+ATOM 3623 CA LYS C 88 -8.802 -19.138 7.616 1.00 71.60 C
+ATOM 3632 CA PRO C 89 -8.651 -15.577 8.944 1.00 64.14 C
+ATOM 3639 CA HIS C 90 -7.547 -12.649 6.805 1.00 52.35 C
+ATOM 3649 CA LYS C 91 -3.753 -12.529 6.474 1.00 46.81 C
+ATOM 3658 CA VAL C 92 -2.180 -9.868 8.686 1.00 43.48 C
+ATOM 3665 CA ARG C 93 -1.491 -6.414 7.232 1.00 36.99 C
+ATOM 3676 CA LEU C 94 0.983 -3.882 8.601 1.00 32.95 C
+ATOM 3684 CA TYR C 95 0.340 -0.239 9.510 1.00 24.84 C
+ATOM 3696 CA SER C 96 3.003 2.101 10.803 1.00 23.32 C
+ATOM 3702 CA ILE C 97 2.244 3.502 14.236 1.00 24.12 C
+ATOM 3710 CA ALA C 98 1.243 7.179 13.932 1.00 22.32 C
+ATOM 3715 CA SER C 99 1.572 7.636 17.676 1.00 25.69 C
+ATOM 3721 CA SER C 100 4.752 7.924 19.726 1.00 28.83 C
+ATOM 3727 CA ALA C 101 5.741 5.521 22.508 1.00 35.61 C
+ATOM 3732 CA ILE C 102 3.906 7.635 25.079 1.00 38.39 C
+ATOM 3740 CA GLY C 103 0.899 7.826 22.742 1.00 31.93 C
+ATOM 3744 CA ASP C 104 -1.803 10.384 21.986 1.00 28.77 C
+ATOM 3752 CA PHE C 105 -3.050 10.293 25.607 1.00 37.05 C
+ATOM 3763 CA GLY C 106 0.503 10.389 26.967 1.00 39.36 C
+ATOM 3767 CA ASP C 107 -0.221 7.437 29.266 1.00 41.44 C
+ATOM 3775 CA SER C 108 1.566 4.766 27.217 1.00 42.18 C
+ATOM 3781 CA LYS C 109 -1.747 2.877 27.156 1.00 42.45 C
+ATOM 3790 CA THR C 110 -2.698 3.586 23.515 1.00 38.10 C
+ATOM 3797 CA VAL C 111 -1.603 2.971 19.906 1.00 32.79 C
+ATOM 3804 CA SER C 112 -2.671 5.020 16.872 1.00 29.60 C
+ATOM 3810 CA LEU C 113 -2.713 4.324 13.126 1.00 25.68 C
+ATOM 3818 CA CYS C 114 -3.142 6.498 9.999 1.00 24.23 C
+ATOM 3824 CA VAL C 115 -5.345 4.496 7.641 1.00 22.80 C
+ATOM 3831 CA LYS C 116 -6.221 5.196 4.015 1.00 22.11 C
+ATOM 3840 CA ARG C 117 -9.458 3.521 2.955 1.00 25.68 C
+ATOM 3851 CA LEU C 118 -8.447 1.440 -0.100 1.00 28.80 C
+ATOM 3859 CA ILE C 119 -11.140 1.661 -2.792 1.00 31.75 C
+ATOM 3867 CA TYR C 120 -10.086 0.716 -6.312 1.00 32.93 C
+ATOM 3879 CA THR C 121 -11.388 -0.733 -9.598 1.00 36.84 C
+ATOM 3886 CA ASN C 122 -10.258 -4.257 -10.546 1.00 36.90 C
+ATOM 3894 CA ASP C 123 -9.574 -5.562 -14.056 1.00 45.45 C
+ATOM 3902 CA ALA C 124 -13.196 -6.758 -14.269 1.00 44.66 C
+ATOM 3907 CA GLY C 125 -14.207 -3.102 -14.023 1.00 45.49 C
+ATOM 3911 CA GLU C 126 -16.059 -3.511 -10.722 1.00 45.54 C
+ATOM 3920 CA ILE C 127 -15.507 -1.321 -7.638 1.00 39.70 C
+ATOM 3928 CA VAL C 128 -13.846 -3.171 -4.762 1.00 38.09 C
+ATOM 3935 CA LYS C 129 -12.759 -2.512 -1.198 1.00 33.77 C
+ATOM 3944 CA GLY C 130 -9.566 -3.363 0.599 1.00 31.98 C
+ATOM 3948 CA VAL C 131 -10.443 -5.797 3.385 1.00 33.16 C
+ATOM 3955 CA CYS C 132 -8.241 -4.645 6.257 1.00 29.97 C
+ATOM 3961 CA SER C 133 -8.238 -0.898 5.607 1.00 30.67 C
+ATOM 3967 CA ASN C 134 -12.022 -0.902 5.268 1.00 30.35 C
+ATOM 3975 CA PHE C 135 -12.375 -2.946 8.424 1.00 29.86 C
+ATOM 3986 CA LEU C 136 -10.223 -0.334 10.195 1.00 29.42 C
+ATOM 3994 CA CYS C 137 -11.779 2.834 8.813 1.00 32.27 C
+ATOM 4000 CA ASP C 138 -15.116 1.280 9.724 1.00 34.29 C
+ATOM 4008 CA LEU C 139 -14.287 0.699 13.399 1.00 37.51 C
+ATOM 4016 CA GLN C 140 -16.635 2.170 16.028 1.00 43.76 C
+ATOM 4025 CA PRO C 141 -15.630 3.032 19.581 1.00 42.77 C
+ATOM 4032 CA GLY C 142 -16.082 -0.210 21.478 1.00 42.83 C
+ATOM 4036 CA ASP C 143 -15.117 -2.625 18.696 1.00 40.91 C
+ATOM 4044 CA ASN C 144 -12.182 -4.947 19.288 1.00 45.66 C
+ATOM 4052 CA VAL C 145 -9.056 -5.146 17.145 1.00 46.95 C
+ATOM 4059 CA GLN C 146 -6.707 -8.107 16.606 1.00 48.69 C
+ATOM 4068 CA ILE C 147 -3.249 -6.538 17.123 1.00 46.84 C
+ATOM 4076 CA THR C 148 -0.010 -8.392 16.264 1.00 46.26 C
+ATOM 4083 CA GLY C 149 3.543 -7.117 16.634 1.00 45.60 C
+ATOM 4087 CA PRO C 150 5.248 -4.818 17.394 1.00 44.97 C
+ATOM 4094 CA VAL C 151 7.423 -5.293 14.321 1.00 44.50 C
+ATOM 4101 CA GLY C 152 10.289 -3.716 12.438 1.00 45.33 C
+ATOM 4105 CA LYS C 153 13.599 -2.161 13.435 1.00 48.64 C
+ATOM 4114 CA GLU C 154 14.166 -0.437 10.074 1.00 48.20 C
+ATOM 4123 CA MET C 155 12.437 2.888 10.737 1.00 41.77 C
+ATOM 4131 CA LEU C 156 13.839 3.081 14.267 1.00 38.27 C
+ATOM 4139 CA MET C 157 15.076 6.540 15.308 1.00 34.29 C
+ATOM 4147 CA PRO C 158 18.782 7.419 15.339 1.00 34.05 C
+ATOM 4154 CA LYS C 159 20.262 7.521 18.845 1.00 35.82 C
+ATOM 4163 CA ASP C 160 22.076 10.792 18.273 1.00 35.95 C
+ATOM 4171 CA PRO C 161 19.683 13.401 19.809 1.00 35.63 C
+ATOM 4178 CA ASN C 162 21.563 15.948 17.758 1.00 33.92 C
+ATOM 4186 CA ALA C 163 21.028 14.172 14.487 1.00 30.82 C
+ATOM 4191 CA THR C 164 19.693 15.722 11.305 1.00 25.18 C
+ATOM 4198 CA ILE C 165 16.617 13.601 10.636 1.00 19.91 C
+ATOM 4206 CA ILE C 166 15.351 13.978 7.060 1.00 13.76 C
+ATOM 4214 CA MET C 167 11.843 12.550 6.703 1.00 14.98 C
+ATOM 4222 CA LEU C 168 10.385 11.831 3.251 1.00 16.64 C
+ATOM 4230 CA ALA C 169 6.747 10.808 3.007 1.00 15.85 C
+ATOM 4235 CA THR C 170 3.765 10.346 0.737 1.00 14.23 C
+ATOM 4242 CA GLY C 171 0.255 9.724 2.035 1.00 13.78 C
+ATOM 4246 CA THR C 172 -0.103 7.560 5.139 1.00 17.62 C
+ATOM 4253 CA GLY C 173 3.646 7.343 4.821 1.00 17.20 C
+ATOM 4257 CA ILE C 174 3.469 10.213 7.270 1.00 15.91 C
+ATOM 4265 CA ALA C 175 2.586 7.783 10.110 1.00 15.63 C
+ATOM 4270 CA PRO C 176 6.023 6.933 11.582 1.00 17.04 C
+ATOM 4277 CA PHE C 177 7.215 10.514 11.327 1.00 18.21 C
+ATOM 4288 CA ARG C 178 4.268 11.745 13.359 1.00 22.35 C
+ATOM 4299 CA SER C 179 5.563 9.289 15.983 1.00 25.22 C
+ATOM 4305 CA PHE C 180 9.139 10.593 15.614 1.00 25.98 C
+ATOM 4316 CA LEU C 181 7.925 14.180 15.767 1.00 29.12 C
+ATOM 4324 CA TRP C 182 5.625 13.641 18.714 1.00 31.35 C
+ATOM 4338 CA LYS C 183 8.488 12.385 20.871 1.00 30.92 C
+ATOM 4347 CA MET C 184 10.841 15.050 19.503 1.00 24.85 C
+ATOM 4355 CA PHE C 185 8.741 18.202 20.114 1.00 22.97 C
+ATOM 4366 CA PHE C 186 5.604 17.337 22.076 1.00 27.77 C
+ATOM 4377 CA GLU C 187 7.117 15.432 25.009 1.00 37.71 C
+ATOM 4386 CA LYS C 188 9.542 15.977 27.878 1.00 53.59 C
+ATOM 4395 CA HIS C 189 12.355 13.416 28.180 1.00 63.67 C
+ATOM 4405 CA ASP C 190 15.318 13.181 30.569 1.00 66.93 C
+ATOM 4413 CA ASP C 191 17.480 11.106 28.238 1.00 59.79 C
+ATOM 4421 CA TYR C 192 16.190 12.725 25.047 1.00 51.96 C
+ATOM 4433 CA LYS C 193 16.700 16.406 24.324 1.00 47.01 C
+ATOM 4442 CA PHE C 194 16.580 16.471 20.530 1.00 39.85 C
+ATOM 4453 CA ASN C 195 18.572 19.494 19.409 1.00 37.52 C
+ATOM 4461 CA GLY C 196 19.361 18.548 15.845 1.00 32.08 C
+ATOM 4465 CA LEU C 197 17.310 19.266 12.766 1.00 28.26 C
+ATOM 4473 CA GLY C 198 14.051 17.526 11.928 1.00 25.05 C
+ATOM 4477 CA TRP C 199 13.211 18.137 8.269 1.00 19.81 C
+ATOM 4491 CA LEU C 200 9.908 16.742 7.059 1.00 13.86 C
+ATOM 4499 CA PHE C 201 8.855 16.521 3.429 1.00 14.83 C
+ATOM 4510 CA LEU C 202 5.288 15.361 2.717 1.00 16.12 C
+ATOM 4518 CA GLY C 203 3.701 14.731 -0.681 1.00 13.79 C
+ATOM 4522 CA VAL C 204 -0.051 14.414 -1.182 1.00 11.75 C
+ATOM 4529 CA PRO C 205 -2.113 15.264 -4.308 1.00 14.66 C
+ATOM 4536 CA THR C 206 -4.553 17.737 -2.778 1.00 16.37 C
+ATOM 4543 CA SER C 207 -4.756 20.169 0.120 1.00 18.01 C
+ATOM 4549 CA SER C 208 -7.780 18.225 1.280 1.00 17.59 C
+ATOM 4555 CA SER C 209 -5.452 15.198 1.550 1.00 16.19 C
+ATOM 4561 CA LEU C 210 -2.972 16.940 3.860 1.00 14.22 C
+ATOM 4569 CA LEU C 211 -2.255 14.980 7.059 1.00 14.43 C
+ATOM 4577 CA TYR C 212 -1.624 16.449 10.549 1.00 18.94 C
+ATOM 4589 CA LYS C 213 -0.818 19.896 9.150 1.00 22.61 C
+ATOM 4598 CA GLU C 214 -2.039 21.572 12.352 1.00 25.73 C
+ATOM 4607 CA GLU C 215 0.152 19.413 14.514 1.00 19.23 C
+ATOM 4616 CA PHE C 216 3.216 20.178 12.439 1.00 17.80 C
+ATOM 4627 CA GLY C 217 2.478 23.890 12.512 1.00 19.90 C
+ATOM 4631 CA LYS C 218 2.578 24.001 16.294 1.00 25.54 C
+ATOM 4640 CA MET C 219 5.810 22.021 16.188 1.00 26.79 C
+ATOM 4648 CA LYS C 220 7.224 24.606 13.819 1.00 31.85 C
+ATOM 4657 CA GLU C 221 6.071 27.341 16.219 1.00 38.62 C
+ATOM 4666 CA ARG C 222 7.760 25.760 19.233 1.00 39.10 C
+ATOM 4677 CA ALA C 223 11.124 24.971 17.668 1.00 35.43 C
+ATOM 4682 CA PRO C 224 11.696 27.100 14.528 1.00 32.99 C
+ATOM 4689 CA GLU C 225 15.425 26.331 14.360 1.00 33.87 C
+ATOM 4698 CA ASN C 226 15.038 22.591 14.986 1.00 30.46 C
+ATOM 4706 CA PHE C 227 12.088 21.755 12.732 1.00 24.98 C
+ATOM 4717 CA ARG C 228 11.351 22.384 9.075 1.00 19.87 C
+ATOM 4728 CA VAL C 229 8.435 21.010 7.118 1.00 14.21 C
+ATOM 4735 CA ASP C 230 7.739 21.452 3.398 1.00 12.26 C
+ATOM 4743 CA TYR C 231 4.627 20.147 1.722 1.00 14.42 C
+ATOM 4755 CA ALA C 232 4.334 19.003 -1.872 1.00 9.99 C
+ATOM 4760 CA VAL C 233 0.778 19.232 -3.168 1.00 10.49 C
+ATOM 4767 CA SER C 234 1.043 17.769 -6.694 1.00 19.00 C
+ATOM 4773 CA ARG C 235 -2.240 19.042 -8.206 1.00 23.13 C
+ATOM 4784 CA GLU C 236 -2.069 22.459 -6.578 1.00 17.58 C
+ATOM 4793 CA GLN C 237 1.546 23.511 -6.623 1.00 15.89 C
+ATOM 4802 CA THR C 238 4.202 24.018 -9.275 1.00 17.86 C
+ATOM 4809 CA ASN C 239 7.922 24.800 -9.182 1.00 15.15 C
+ATOM 4817 CA ALA C 240 9.558 27.791 -10.892 1.00 21.51 C
+ATOM 4822 CA ALA C 241 9.475 25.887 -14.174 1.00 24.05 C
+ATOM 4827 CA GLY C 242 5.741 25.110 -13.938 1.00 26.25 C
+ATOM 4831 CA GLU C 243 5.999 21.359 -13.153 1.00 25.92 C
+ATOM 4840 CA ARG C 244 3.679 19.536 -10.704 1.00 24.04 C
+ATOM 4851 CA MET C 245 5.076 19.643 -7.174 1.00 18.58 C
+ATOM 4859 CA TYR C 246 5.784 16.047 -6.100 1.00 14.16 C
+ATOM 4871 CA ILE C 247 7.910 15.343 -3.034 1.00 16.78 C
+ATOM 4879 CA GLN C 248 11.089 15.070 -5.120 1.00 18.72 C
+ATOM 4888 CA THR C 249 10.168 18.255 -6.921 1.00 20.93 C
+ATOM 4895 CA ARG C 250 9.962 20.031 -3.567 1.00 19.25 C
+ATOM 4906 CA MET C 251 13.275 18.471 -2.561 1.00 19.40 C
+ATOM 4914 CA ALA C 252 14.910 19.812 -5.760 1.00 20.48 C
+ATOM 4919 CA GLU C 253 14.456 23.418 -4.569 1.00 18.19 C
+ATOM 4928 CA TYR C 254 16.804 22.515 -1.673 1.00 17.80 C
+ATOM 4940 CA LYS C 255 19.038 20.415 -3.902 1.00 20.66 C
+ATOM 4949 CA GLU C 256 22.452 21.603 -2.682 1.00 16.05 C
+ATOM 4958 CA GLU C 257 21.544 21.914 0.993 1.00 15.89 C
+ATOM 4967 CA LEU C 258 20.377 18.297 0.919 1.00 20.74 C
+ATOM 4975 CA TRP C 259 23.388 16.939 -0.965 1.00 23.45 C
+ATOM 4989 CA GLU C 260 25.645 18.669 1.563 1.00 24.08 C
+ATOM 4998 CA LEU C 261 23.573 17.378 4.477 1.00 24.74 C
+ATOM 5006 CA LEU C 262 24.020 13.928 2.938 1.00 26.14 C
+ATOM 5014 CA LYS C 263 27.792 14.091 3.402 1.00 25.40 C
+ATOM 5023 CA LYS C 264 27.457 14.521 7.176 1.00 31.47 C
+ATOM 5032 CA ASP C 265 27.877 11.474 9.425 1.00 35.31 C
+ATOM 5040 CA ASN C 266 24.934 12.482 11.620 1.00 29.63 C
+ATOM 5048 CA THR C 267 22.321 12.795 8.832 1.00 28.00 C
+ATOM 5055 CA TYR C 268 19.556 10.160 8.808 1.00 27.00 C
+ATOM 5067 CA VAL C 269 17.143 9.903 5.884 1.00 24.65 C
+ATOM 5074 CA TYR C 270 13.890 8.016 6.276 1.00 23.37 C
+ATOM 5086 CA MET C 271 11.373 7.327 3.518 1.00 18.93 C
+ATOM 5094 CA CYS C 272 7.834 6.074 4.043 1.00 18.24 C
+ATOM 5100 CA GLY C 273 4.784 5.874 1.826 1.00 22.39 C
+ATOM 5104 CA LEU C 274 3.837 4.483 -1.568 1.00 26.95 C
+ATOM 5112 CA LYS C 275 6.305 2.384 -3.532 1.00 32.36 C
+ATOM 5121 CA GLY C 276 7.741 4.199 -6.514 1.00 37.46 C
+ATOM 5125 CA MET C 277 7.714 7.455 -4.608 1.00 28.76 C
+ATOM 5133 CA GLU C 278 11.430 6.639 -4.425 1.00 32.22 C
+ATOM 5142 CA LYS C 279 12.017 6.321 -8.153 1.00 29.94 C
+ATOM 5151 CA GLY C 280 11.317 10.057 -8.293 1.00 24.18 C
+ATOM 5155 CA ILE C 281 13.766 10.673 -5.460 1.00 23.68 C
+ATOM 5163 CA ASP C 282 16.431 8.365 -6.934 1.00 26.58 C
+ATOM 5171 CA ASP C 283 16.211 10.530 -10.054 1.00 28.70 C
+ATOM 5179 CA ILE C 284 17.089 13.937 -8.538 1.00 27.28 C
+ATOM 5187 CA MET C 285 19.706 12.222 -6.388 1.00 27.45 C
+ATOM 5195 CA VAL C 286 21.377 10.712 -9.470 1.00 30.74 C
+ATOM 5202 CA SER C 287 21.619 14.159 -11.061 1.00 32.14 C
+ATOM 5208 CA LEU C 288 23.240 15.463 -7.873 1.00 34.20 C
+ATOM 5216 CA ALA C 289 25.801 12.653 -7.874 1.00 40.16 C
+ATOM 5221 CA GLU C 290 26.837 12.825 -11.536 1.00 41.84 C
+ATOM 5230 CA LYS C 291 27.855 16.387 -10.793 1.00 43.17 C
+ATOM 5239 CA ASP C 292 30.299 15.115 -8.139 1.00 41.84 C
+ATOM 5247 CA GLY C 293 31.237 12.232 -10.420 1.00 46.12 C
+ATOM 5251 CA ILE C 294 30.053 9.669 -7.864 1.00 45.54 C
+ATOM 5259 CA ASP C 295 27.399 6.998 -8.480 1.00 41.14 C
+ATOM 5267 CA TRP C 296 24.222 7.605 -6.479 1.00 30.67 C
+ATOM 5281 CA PHE C 297 23.381 3.910 -6.151 1.00 31.97 C
+ATOM 5292 CA ASP C 298 26.856 2.916 -4.907 1.00 38.12 C
+ATOM 5300 CA TYR C 299 26.671 5.875 -2.540 1.00 39.05 C
+ATOM 5312 CA LYS C 300 23.196 4.971 -1.294 1.00 41.63 C
+ATOM 5321 CA LYS C 301 24.542 1.489 -0.577 1.00 43.40 C
+ATOM 5330 CA GLN C 302 27.207 3.064 1.608 1.00 43.79 C
+ATOM 5339 CA LEU C 303 24.476 5.181 3.238 1.00 41.51 C
+ATOM 5347 CA LYS C 304 22.138 2.343 4.264 1.00 45.18 C
+ATOM 5356 CA ARG C 305 25.322 0.535 5.256 1.00 46.65 C
+ATOM 5367 CA GLY C 306 25.613 3.181 7.945 1.00 40.29 C
+ATOM 5371 CA ASP C 307 21.954 3.487 8.940 1.00 41.21 C
+ATOM 5379 CA GLN C 308 21.463 6.730 7.023 1.00 35.55 C
+ATOM 5388 CA TRP C 309 18.961 5.674 4.361 1.00 31.22 C
+ATOM 5402 CA ASN C 310 16.018 3.728 5.752 1.00 31.61 C
+ATOM 5410 CA VAL C 311 13.120 2.841 3.452 1.00 32.13 C
+ATOM 5417 CA GLU C 312 9.705 1.332 4.261 1.00 31.51 C
+ATOM 5426 CA VAL C 313 7.466 1.606 1.209 1.00 26.39 C
+ATOM 5433 CA TYR C 314 4.403 -0.343 0.111 1.00 25.42 C
-(((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);\r
+(((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);
-/**\r
- * Copyright 2010 Tim Down.\r
- *\r
- * Licensed under the Apache License, Version 2.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- *\r
- * http://www.apache.org/licenses/LICENSE-2.0\r
- *\r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- */\r
+/**
+ * Copyright 2010 Tim Down.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
var Hashtable=(function(){var p="function";var n=(typeof Array.prototype.splice==p)?function(s,r){s.splice(r,1)}:function(u,t){var s,v,r;if(t===u.length-1){u.length=t}else{s=u.slice(t+1);u.length=t;for(v=0,r=s.length;v<r;++v){u[t+v]=s[v]}}};function a(t){var r;if(typeof t=="string"){return t}else{if(typeof t.hashCode==p){r=t.hashCode();return(typeof r=="string")?r:a(r)}else{if(typeof t.toString==p){return t.toString()}else{try{return String(t)}catch(s){return Object.prototype.toString.call(t)}}}}}function g(r,s){return r.equals(s)}function e(r,s){return(typeof s.equals==p)?s.equals(r):(r===s)}function c(r){return function(s){if(s===null){throw new Error("null is not a valid "+r)}else{if(typeof s=="undefined"){throw new Error(r+" must not be undefined")}}}}var q=c("key"),l=c("value");function d(u,s,t,r){this[0]=u;this.entries=[];this.addEntry(s,t);if(r!==null){this.getEqualityFunction=function(){return r}}}var h=0,j=1,f=2;function o(r){return function(t){var s=this.entries.length,v,u=this.getEqualityFunction(t);while(s--){v=this.entries[s];if(u(t,v[0])){switch(r){case h:return true;case j:return v;case f:return[s,v[1]]}}}return false}}function k(r){return function(u){var v=u.length;for(var t=0,s=this.entries.length;t<s;++t){u[v+t]=this.entries[t][r]}}}d.prototype={getEqualityFunction:function(r){return(typeof r.equals==p)?g:e},getEntryForKey:o(j),getEntryAndIndexForKey:o(f),removeEntryForKey:function(s){var r=this.getEntryAndIndexForKey(s);if(r){n(this.entries,r[0]);return r[1]}return null},addEntry:function(r,s){this.entries[this.entries.length]=[r,s]},keys:k(0),values:k(1),getEntries:function(s){var u=s.length;for(var t=0,r=this.entries.length;t<r;++t){s[u+t]=this.entries[t].slice(0)}},containsKey:o(h),containsValue:function(s){var r=this.entries.length;while(r--){if(s===this.entries[r][1]){return true}}return false}};function m(s,t){var r=s.length,u;while(r--){u=s[r];if(t===u[0]){return r}}return null}function i(r,s){var t=r[s];return(t&&(t instanceof d))?t:null}function b(t,r){var w=this;var v=[];var u={};var x=(typeof t==p)?t:a;var s=(typeof r==p)?r:null;this.put=function(B,C){q(B);l(C);var D=x(B),E,A,z=null;E=i(u,D);if(E){A=E.getEntryForKey(B);if(A){z=A[1];A[1]=C}else{E.addEntry(B,C)}}else{E=new d(D,B,C,s);v[v.length]=E;u[D]=E}return z};this.get=function(A){q(A);var B=x(A);var C=i(u,B);if(C){var z=C.getEntryForKey(A);if(z){return z[1]}}return null};this.containsKey=function(A){q(A);var z=x(A);var B=i(u,z);return B?B.containsKey(A):false};this.containsValue=function(A){l(A);var z=v.length;while(z--){if(v[z].containsValue(A)){return true}}return false};this.clear=function(){v.length=0;u={}};this.isEmpty=function(){return !v.length};var y=function(z){return function(){var A=[],B=v.length;while(B--){v[B][z](A)}return A}};this.keys=y("keys");this.values=y("values");this.entries=y("getEntries");this.remove=function(B){q(B);var C=x(B),z,A=null;var D=i(u,C);if(D){A=D.removeEntryForKey(B);if(A!==null){if(!D.entries.length){z=m(v,C);n(v,z);delete u[C]}}}return A};this.size=function(){var A=0,z=v.length;while(z--){A+=v[z].entries.length}return A};this.each=function(C){var z=w.entries(),A=z.length,B;while(A--){B=z[A];C(B[0],B[1])}};this.putAll=function(H,C){var B=H.entries();var E,F,D,z,A=B.length;var G=(typeof C==p);while(A--){E=B[A];F=E[0];D=E[1];if(G&&(z=w.get(F))){D=C(F,z,D)}w.put(F,D)}};this.clone=function(){var z=new b(t,r);z.putAll(w);return z}}return b})();
\ No newline at end of file
-/* Jmol 12.0 script library Jmol.js 9:48 PM 1/31/2011 Bob Hanson\r
-\r
- checkbox heirarchy -- see http://chemapps.stolaf.edu/jmol/docs/examples-11/check.htm\r
-\r
- based on:\r
- *\r
- * Copyright (C) 2004-2005 Miguel, Jmol Development, www.jmol.org\r
- *\r
- * Contact: hansonr@stolaf.edu\r
- *\r
- * This library is free software; you can redistribute it and/or\r
- * modify it under the terms of the GNU Lesser General Public\r
- * License as published by the Free Software Foundation; either\r
- * version 2.1 of the License, or (at your option) any later version.\r
- *\r
- * This library is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
- * Lesser General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU Lesser General Public\r
- * License along with this library; if not, write to the Free Software\r
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA\r
- * 02111-1307 USA.\r
- */\r
-\r
-// for documentation see www.jmol.org/jslibrary\r
-\r
-try{if(typeof(_jmol)!="undefined")exit()\r
-\r
-// place "?NOAPPLET" on your command line to check applet control action with a textarea\r
-// place "?JMOLJAR=xxxxx" to use a specific jar file\r
-\r
-// bob hanson -- jmolResize(w,h) -- resizes absolutely or by percent (w or h 0.5 means 50%)\r
-// angel herraez -- update of jmolResize(w,h,targetSuffix) so it is not tied to first applet\r
-// bob hanson -- jmolEvaluate -- evaluates molecular math 8:37 AM 2/23/2007\r
-// bob hanson -- jmolScriptMessage -- returns all "scriptStatus" messages 8:37 AM 2/23/2007\r
-// bob hanson -- jmolScriptEcho -- returns all "scriptEcho" messages 8:37 AM 2/23/2007\r
-// bob hanson -- jmolScriptWait -- 11:31 AM 5/2/2006\r
-// bob hanson -- remove trailing separatorHTML in radio groups -- 12:18 PM 5/6/2006\r
-// bob hanson -- adds support for dynamic DOM script nodes 7:04 AM 5/19/2006\r
-// bob hanson -- adds try/catch for wiki - multiple code passes 7:05 AM 5/19/2006\r
-// bob hanson -- auto-initiates to defaultdir/defaultjar -- change as desired.\r
-// bob hanson -- adding save/restore orientation w/ and w/o delay 11:49 AM 5/25/2006\r
-// bob hanson -- adding AjaxJS service 11:16 AM 6/3/2006\r
-// bob hanson -- fix for iframes not available for finding applet\r
-// bob hanson -- added applet fake ?NOAPPLET URL flag\r
-// bob hanson -- added jmolSetCallback(calbackName, funcName) 3:32 PM 6/13/2006\r
-// used PRIOR to jmolApplet() or jmolAppletInline()\r
-// added 4th array element in jmolRadioGroup -- title\r
-// added <span> and id around link, checkbox, radio, menu\r
-// fixing AJAX loads for MSIE/Opera-Mozilla incompatibility\r
-// -- renamed Jmol-11.js from Jmol-new.js; JmolApplet.jar from JmolAppletProto.jar\r
-// renamed Jmol.js for Jmol 11 distribution\r
-// -- modified jmolRestoreOrientation() to be immediate, no 1-second delay\r
-// bob hanson -- jmolScriptWait always returns a string -- 11:23 AM 9/16/2006\r
-// bh -- jmolCommandInput()\r
-// bh -- jmolSetTranslation(TF) -- forces translation even if there might be message callback issues\r
-// bh -- minor fixes suggested by Angel\r
-// bh -- adds jmolSetSyncId() and jmolGetSyncId()\r
-// bh 3/2008 -- adds jmolAppendInlineScript() and jmolAppendInlineArray()\r
-// bh 3/2008 -- fixes IE7 bug in relation to jmolLoadInlineArray()\r
-// bh 6/2008 -- adds jmolSetAppletWindow()\r
-// Angel H. 6/2008 -- added html <label> tags to checkboxes and radio buttons [in jmolCheckbox() and _jmolRadio() functions]\r
-// bh 7/2008 -- code fix "for(i..." not "for(var i..."\r
-// bh 12/2008 -- jmolLoadInline, jmolLoadInlineArray, jmolLoadInlineScript, jmolAppendInlineScript, jmolAppendInlineArray all return error message or null (Jmol 11.7.16)\r
-// bh 12/2008 -- jmolScriptWaitOutput() -- waits for script to complete and delivers output normally sent to console\r
-\r
-// bh 5/2009 -- Support for XHTML using jmolSetXHTML(id)\r
-// ah & bh 6/2009 -- New jmolResizeApplet() more flexible, similar to jmolApplet() size syntax\r
-// bh 11/2009 -- care in accessing top.document\r
-// bh 12/2009 -- added jmolSetParameter(name, value)\r
-// bh 12/2009 -- added PARAMS=name:value;name:value;name:value... for command line\r
-// bh 12/2009 -- overhaul of target checking\r
-// bh 1/2010 -- all _xxxx() methods ALWAYS have complete argument list\r
-// bh 1/2010 -- adds option to run a JavaScript function from any Jmol control. \r
-// This is accomplished by passing an array rather than a script:\r
-// jmolHref([myfunc,"my param 1", "my param 2"], "testing")\r
-// function myfunc(jmolControlObject, [myfunc,"my param 1", "my param 2"], target){...}\r
-// and allows much more flexibility with responding to controls\r
-// bh 4/2010 -- added jmolSetMemoryMb(nMb)\r
-// ah 1/2011 -- wider detection of browsers; more browsers now use the object tag instead of the applet tag; \r
-// fix of object tag (removed classid) accounts for change of behavior in Chrome\r
-// bh 3/2011 -- added jmolLoadAjax_STOLAF_NIH\r
-\r
-var defaultdir = "."\r
-var defaultjar = "JmolApplet.jar"\r
-\r
-\r
-// Note added 12:41 PM 9/21/2008 by Bob Hanson, hansonr@stolaf.edu:\r
-\r
-// JMOLJAR=xxxxx.jar on the URL for this page will override\r
-// the JAR file specified in the jmolInitialize() call.\r
-\r
-// The idea is that it can be very useful to test a web page with different JAR files\r
-// Or for an expert user to substitute a signed applet for an unsigned one\r
-// so as to use a broader range of models or to create JPEG files, for example.\r
-\r
-// If the JAR file is not in the current directory (has any sort of "/" in its name)\r
-// then the user is presented with a warning and asked whether it is OK to change Jar files.\r
-// The default action, if the user just presses "OK" is to NOT allow the change. \r
-// The user must type the word "yes" in the prompt box for the change to be approved.\r
-\r
-// If you don't want people to be able to switch in their own JAR file on your page,\r
-// simply set this next line to read "var allowJMOLJAR = false".\r
-\r
-\r
-var undefined; // for IE 5 ... wherein undefined is undefined\r
-\r
-////////////////////////////////////////////////////////////////\r
-// Basic Scripting infrastruture\r
-////////////////////////////////////////////////////////////////\r
-\r
-function jmolInitialize(codebaseDirectory, fileNameOrUseSignedApplet) {\r
- if (_jmol.initialized)\r
- return;\r
- _jmol.initialized = true;\r
- if(_jmol.jmoljar) {\r
- var f = _jmol.jmoljar;\r
- if (f.indexOf("/") >= 0) {\r
- alert ("This web page URL is requesting that the applet used be " + f + ". This is a possible security risk, particularly if the applet is signed, because signed applets can read and write files on your local machine or network.")\r
- var ok = prompt("Do you want to use applet " + f + "? ","yes or no")\r
- if (ok == "yes") {\r
- codebaseDirectory = f.substring(0, f.lastIndexOf("/"));\r
- fileNameOrUseSignedApplet = f.substring(f.lastIndexOf("/") + 1);\r
- } else {\r
- _jmolGetJarFilename(fileNameOrUseSignedApplet);\r
- alert("The web page URL was ignored. Continuing using " + _jmol.archivePath + ' in directory "' + codebaseDirectory + '"');\r
- }\r
- } else {\r
- fileNameOrUseSignedApplet = f;\r
- }\r
- }\r
- _jmolSetCodebase(codebaseDirectory);\r
- _jmolGetJarFilename(fileNameOrUseSignedApplet);\r
- _jmolOnloadResetForms();\r
-}\r
-\r
-function jmolSetTranslation(TF) {\r
- _jmol.params.doTranslate = ''+TF;\r
-}\r
-\r
-function _jmolGetJarFilename(fileNameOrFlag) {\r
- _jmol.archivePath =\r
- (typeof(fileNameOrFlag) == "string" ? fileNameOrFlag : (fileNameOrFlag ? "JmolAppletSigned" : "JmolApplet") + "0.jar");\r
-}\r
-\r
-function jmolSetDocument(doc) {\r
- _jmol.currentDocument = doc;\r
-}\r
-\r
-function jmolSetAppletColor(boxbgcolor, boxfgcolor, progresscolor) {\r
- _jmolInitCheck();\r
- _jmol.params.boxbgcolor = boxbgcolor;\r
- if (boxfgcolor)\r
- _jmol.params.boxfgcolor = boxfgcolor\r
- else if (boxbgcolor == "white" || boxbgcolor == "#FFFFFF")\r
- _jmol.params.boxfgcolor = "black";\r
- else\r
- _jmol.params.boxfgcolor = "white";\r
- if (progresscolor)\r
- _jmol.params.progresscolor = progresscolor;\r
- if (_jmol.debugAlert)\r
- alert(" boxbgcolor=" + _jmol.params.boxbgcolor +\r
- " boxfgcolor=" + _jmol.params.boxfgcolor +\r
- " progresscolor=" + _jmol.params.progresscolor);\r
-}\r
-\r
-function jmolSetAppletWindow(w) {\r
- _jmol.appletWindow = w;\r
-}\r
-\r
-function jmolApplet(size, script, nameSuffix) {\r
- _jmolInitCheck();\r
- return _jmolApplet(size, null, script, nameSuffix);\r
-}\r
-\r
-////////////////////////////////////////////////////////////////\r
-// Basic controls\r
-////////////////////////////////////////////////////////////////\r
-\r
-// undefined means it wasn't there; null means it was explicitly listed as null (so as to skip it)\r
-\r
-function jmolButton(script, label, id, title) {\r
- _jmolInitCheck();\r
- id != undefined && id != null || (id = "jmolButton" + _jmol.buttonCount);\r
- label != undefined && label != null || (label = script.substring(0, 32));\r
- ++_jmol.buttonCount;\r
- var scriptIndex = _jmolAddScript(script);\r
- var t = "<span id=\"span_"+id+"\""+(title ? " title=\"" + title + "\"":"")+"><input type='button' name='" + id + "' id='" + id +\r
- "' value='" + label +\r
- "' onclick='_jmolClick(this," + scriptIndex + _jmol.targetText +\r
- ")' onmouseover='_jmolMouseOver(" + scriptIndex +\r
- ");return true' onmouseout='_jmolMouseOut()' " +\r
- _jmol.buttonCssText + " /></span>";\r
- if (_jmol.debugAlert)\r
- alert(t);\r
- return _jmolDocumentWrite(t);\r
-}\r
-\r
-function jmolCheckbox(scriptWhenChecked, scriptWhenUnchecked,\r
- labelHtml, isChecked, id, title) {\r
- _jmolInitCheck();\r
- id != undefined && id != null || (id = "jmolCheckbox" + _jmol.checkboxCount);\r
- ++_jmol.checkboxCount;\r
- if (scriptWhenChecked == undefined || scriptWhenChecked == null ||\r
- scriptWhenUnchecked == undefined || scriptWhenUnchecked == null) {\r
- alert("jmolCheckbox requires two scripts");\r
- return;\r
- }\r
- if (labelHtml == undefined || labelHtml == null) {\r
- alert("jmolCheckbox requires a label");\r
- return;\r
- }\r
- var indexChecked = _jmolAddScript(scriptWhenChecked);\r
- var indexUnchecked = _jmolAddScript(scriptWhenUnchecked);\r
- var eospan = "</span>"\r
- var t = "<span id=\"span_"+id+"\""+(title ? " title=\"" + title + "\"":"")+"><input type='checkbox' name='" + id + "' id='" + id +\r
- "' onclick='_jmolCbClick(this," +\r
- indexChecked + "," + indexUnchecked + _jmol.targetText +\r
- ")' onmouseover='_jmolCbOver(this," + indexChecked + "," +\r
- indexUnchecked +\r
- ");return true' onmouseout='_jmolMouseOut()' " +\r
- (isChecked ? "checked='true' " : "")+ _jmol.checkboxCssText + " />" \r
- if (labelHtml.toLowerCase().indexOf("<td>")>=0) {\r
- t += eospan\r
- eospan = "";\r
- }\r
- t += "<label for=\"" + id + "\">" + labelHtml + "</label>" +eospan;\r
- if (_jmol.debugAlert)\r
- alert(t);\r
- return _jmolDocumentWrite(t);\r
-}\r
-\r
-function jmolStartNewRadioGroup() {\r
- ++_jmol.radioGroupCount;\r
-}\r
-\r
-function jmolRadioGroup(arrayOfRadioButtons, separatorHtml, groupName, id, title) {\r
- /*\r
-\r
- array: [radio1,radio2,radio3...]\r
- where radioN = ["script","label",isSelected,"id","title"]\r
-\r
- */\r
-\r
- _jmolInitCheck();\r
- var type = typeof arrayOfRadioButtons;\r
- if (type != "object" || type == null || ! arrayOfRadioButtons.length) {\r
- alert("invalid arrayOfRadioButtons");\r
- return;\r
- }\r
- separatorHtml != undefined && separatorHtml != null || (separatorHtml = " ");\r
- var len = arrayOfRadioButtons.length;\r
- jmolStartNewRadioGroup();\r
- groupName || (groupName = "jmolRadioGroup" + (_jmol.radioGroupCount - 1));\r
- var t = "<span id='"+(id ? id : groupName)+"'>";\r
- for (var i = 0; i < len; ++i) {\r
- if (i == len - 1)\r
- separatorHtml = "";\r
- var radio = arrayOfRadioButtons[i];\r
- type = typeof radio;\r
- if (type == "object") {\r
- t += _jmolRadio(radio[0], radio[1], radio[2], separatorHtml, groupName, (radio.length > 3 ? radio[3]: (id ? id : groupName)+"_"+i), (radio.length > 4 ? radio[4] : 0), title);\r
- } else {\r
- t += _jmolRadio(radio, null, null, separatorHtml, groupName, (id ? id : groupName)+"_"+i, title);\r
- }\r
- }\r
- t+="</span>"\r
- if (_jmol.debugAlert)\r
- alert(t);\r
- return _jmolDocumentWrite(t);\r
-}\r
-\r
-\r
-function jmolRadio(script, labelHtml, isChecked, separatorHtml, groupName, id, title) {\r
- _jmolInitCheck();\r
- if (_jmol.radioGroupCount == 0)\r
- ++_jmol.radioGroupCount;\r
- var t = _jmolRadio(script, labelHtml, isChecked, separatorHtml, groupName, (id ? id : groupName + "_" + _jmol.radioCount), title ? title : 0);\r
- if (_jmol.debugAlert)\r
- alert(t);\r
- return _jmolDocumentWrite(t);\r
-}\r
-\r
-function jmolLink(script, label, id, title) {\r
- _jmolInitCheck();\r
- id != undefined && id != null || (id = "jmolLink" + _jmol.linkCount);\r
- label != undefined && label != null || (label = script.substring(0, 32));\r
- ++_jmol.linkCount;\r
- var scriptIndex = _jmolAddScript(script);\r
- var t = "<span id=\"span_"+id+"\""+(title ? " title=\"" + title + "\"":"")+"><a name='" + id + "' id='" + id + \r
- "' href='javascript:_jmolClick(this," + scriptIndex + _jmol.targetText + ");' onmouseover='_jmolMouseOver(" + scriptIndex +\r
- ");return true;' onmouseout='_jmolMouseOut()' " +\r
- _jmol.linkCssText + ">" + label + "</a></span>";\r
- if (_jmol.debugAlert)\r
- alert(t);\r
- return _jmolDocumentWrite(t);\r
-}\r
-\r
-function jmolCommandInput(label, size, id, title) {\r
- _jmolInitCheck();\r
- id != undefined && id != null || (id = "jmolCmd" + _jmol.cmdCount);\r
- label != undefined && label != null || (label = "Execute");\r
- size != undefined && !isNaN(size) || (size = 60);\r
- ++_jmol.cmdCount;\r
- var t = "<span id=\"span_"+id+"\""+(title ? " title=\"" + title + "\"":"")+"><input name='" + id + "' id='" + id + \r
- "' size='"+size+"' onkeypress='_jmolCommandKeyPress(event,\""+id+"\"" + _jmol.targetText + ")'><input type=button value = '"+label+"' onclick='jmolScript(document.getElementById(\""+id+"\").value" + _jmol.targetText + ")' /></span>";\r
- if (_jmol.debugAlert)\r
- alert(t);\r
- return _jmolDocumentWrite(t);\r
-}\r
-\r
-function _jmolCommandKeyPress(e, id, target) {\r
- var keycode = (window.event ? window.event.keyCode : e ? e.which : 0);\r
- if (keycode == 13) {\r
- var inputBox = document.getElementById(id)\r
- _jmolScriptExecute(inputBox, inputBox.value, target)\r
- }\r
-}\r
-\r
-function _jmolScriptExecute(element,script,target) {\r
- if (typeof(script) == "object")\r
- script[0](element, script, target)\r
- else\r
- jmolScript(script, target) \r
-}\r
-\r
-function jmolMenu(arrayOfMenuItems, size, id, title) {\r
- _jmolInitCheck();\r
- id != undefined && id != null || (id = "jmolMenu" + _jmol.menuCount);\r
- ++_jmol.menuCount;\r
- var type = typeof arrayOfMenuItems;\r
- if (type != null && type == "object" && arrayOfMenuItems.length) {\r
- var len = arrayOfMenuItems.length;\r
- if (typeof size != "number" || size == 1)\r
- size = null;\r
- else if (size < 0)\r
- size = len;\r
- var sizeText = size ? " size='" + size + "' " : "";\r
- var t = "<span id=\"span_"+id+"\""+(title ? " title=\"" + title + "\"":"")+"><select name='" + id + "' id='" + id +\r
- "' onChange='_jmolMenuSelected(this" + _jmol.targetText + ")'" +\r
- sizeText + _jmol.menuCssText + ">";\r
- for (var i = 0; i < len; ++i) {\r
- var menuItem = arrayOfMenuItems[i];\r
- type = typeof menuItem;\r
- var script, text;\r
- var isSelected = undefined;\r
- if (type == "object" && menuItem != null) {\r
- script = menuItem[0];\r
- text = menuItem[1];\r
- isSelected = menuItem[2];\r
- } else {\r
- script = text = menuItem;\r
- }\r
- text != undefined && text != null || (text = script); \r
- if (script=="#optgroup") {\r
- t += "<optgroup label='" + text + "'>"; \r
- } else if (script=="#optgroupEnd") {\r
- t += "</optgroup>"; \r
- } else { \r
- var scriptIndex = _jmolAddScript(script);\r
- var selectedText = isSelected ? "' selected='true'>" : "'>";\r
- t += "<option value='" + scriptIndex + selectedText + text + "</option>";\r
- }\r
- }\r
- t += "</select></span>";\r
- if (_jmol.debugAlert)\r
- alert(t);\r
- return _jmolDocumentWrite(t);\r
- }\r
-}\r
-\r
-function jmolHtml(html) {\r
- return _jmolDocumentWrite(html);\r
-}\r
-\r
-function jmolBr() {\r
- return _jmolDocumentWrite("<br />");\r
-}\r
-\r
-////////////////////////////////////////////////////////////////\r
-// advanced scripting functions\r
-////////////////////////////////////////////////////////////////\r
-\r
-function jmolDebugAlert(enableAlerts) {\r
- _jmol.debugAlert = (enableAlerts == undefined || enableAlerts)\r
-}\r
-\r
-function jmolAppletInline(size, inlineModel, script, nameSuffix) {\r
- _jmolInitCheck();\r
- return _jmolApplet(size, _jmolSterilizeInline(inlineModel),\r
- script, nameSuffix);\r
-}\r
-\r
-function jmolSetTarget(targetSuffix) {\r
- _jmol.targetSuffix = targetSuffix;\r
- _jmol.targetText = targetSuffix ? ",\"" + targetSuffix + "\"" : ",0";\r
-}\r
-\r
-function jmolScript(script, targetSuffix) {\r
- if (script) {\r
- _jmolCheckBrowser();\r
- if (targetSuffix == "all") {\r
- with (_jmol) {\r
- for (var i = 0; i < appletSuffixes.length; ++i) {\r
- var applet = _jmolGetApplet(appletSuffixes[i]);\r
- if (applet) applet.script(script);\r
- }\r
- }\r
- } else {\r
- var applet=_jmolGetApplet(targetSuffix);\r
- if (applet) applet.script(script);\r
- }\r
- }\r
-}\r
-\r
-function jmolLoadInline(model, targetSuffix) {\r
- if (!model)return "ERROR: NO MODEL"\r
- var applet=_jmolGetApplet(targetSuffix);\r
- if (!applet)return "ERROR: NO APPLET"\r
- if (typeof(model) == "string")\r
- return applet.loadInlineString(model, "", false);\r
- else\r
- return applet.loadInlineArray(model, "", false);\r
-}\r
-\r
-\r
-function jmolLoadInlineScript(model, script, targetSuffix) {\r
- if (!model)return "ERROR: NO MODEL"\r
- var applet=_jmolGetApplet(targetSuffix);\r
- if (!applet)return "ERROR: NO APPLET"\r
- return applet.loadInlineString(model, script, false);\r
-}\r
-\r
-\r
-function jmolLoadInlineArray(ModelArray, script, targetSuffix) {\r
- if (!model)return "ERROR: NO MODEL"\r
- script || (script="")\r
- var applet=_jmolGetApplet(targetSuffix);\r
- if (!applet)return "ERROR: NO APPLET"\r
- try {\r
- return applet.loadInlineArray(ModelArray, script, false);\r
- } catch (err) {\r
- //IE 7 bug\r
- return applet.loadInlineString(ModelArray.join("\n"), script, false);\r
- }\r
-}\r
-\r
-function jmolAppendInlineArray(ModelArray, script, targetSuffix) {\r
- if (!model)return "ERROR: NO MODEL"\r
- script || (script="")\r
- var applet=_jmolGetApplet(targetSuffix);\r
- if (!applet)return "ERROR: NO APPLET"\r
- try {\r
- return applet.loadInlineArray(ModelArray, script, true);\r
- } catch (err) {\r
- //IE 7 bug\r
- return applet.loadInlineString(ModelArray.join("\n"), script, true);\r
- }\r
-}\r
-\r
-function jmolAppendInlineScript(model, script, targetSuffix) {\r
- if (!model)return "ERROR: NO MODEL"\r
- var applet=_jmolGetApplet(targetSuffix);\r
- if (!applet)return "ERROR: NO APPLET"\r
- return applet.loadInlineString(model, script, true);\r
-}\r
-\r
-function jmolCheckBrowser(action, urlOrMessage, nowOrLater) {\r
- if (typeof action == "string") {\r
- action = action.toLowerCase();\r
- action == "alert" || action == "redirect" || action == "popup" || (action = null);\r
- }\r
- if (typeof action != "string")\r
- alert("jmolCheckBrowser(action, urlOrMessage, nowOrLater)\n\n" +\r
- "action must be 'alert', 'redirect', or 'popup'");\r
- else {\r
- if (typeof urlOrMessage != "string")\r
- alert("jmolCheckBrowser(action, urlOrMessage, nowOrLater)\n\n" +\r
- "urlOrMessage must be a string");\r
- else {\r
- _jmol.checkBrowserAction = action;\r
- _jmol.checkBrowserUrlOrMessage = urlOrMessage;\r
- }\r
- }\r
- if (typeof nowOrLater == "string" && nowOrLater.toLowerCase() == "now")\r
- _jmolCheckBrowser();\r
-}\r
-\r
-////////////////////////////////////////////////////////////////\r
-// Cascading Style Sheet Class support\r
-////////////////////////////////////////////////////////////////\r
-\r
-function jmolSetAppletCssClass(appletCssClass) {\r
- if (_jmol.hasGetElementById) {\r
- _jmol.appletCssClass = appletCssClass;\r
- _jmol.appletCssText = appletCssClass ? "class='" + appletCssClass + "' " : "";\r
- }\r
-}\r
-\r
-function jmolSetButtonCssClass(buttonCssClass) {\r
- if (_jmol.hasGetElementById) {\r
- _jmol.buttonCssClass = buttonCssClass;\r
- _jmol.buttonCssText = buttonCssClass ? "class='" + buttonCssClass + "' " : "";\r
- }\r
-}\r
-\r
-function jmolSetCheckboxCssClass(checkboxCssClass) {\r
- if (_jmol.hasGetElementById) {\r
- _jmol.checkboxCssClass = checkboxCssClass;\r
- _jmol.checkboxCssText = checkboxCssClass ? "class='" + checkboxCssClass + "' " : "";\r
- }\r
-}\r
-\r
-function jmolSetRadioCssClass(radioCssClass) {\r
- if (_jmol.hasGetElementById) {\r
- _jmol.radioCssClass = radioCssClass;\r
- _jmol.radioCssText = radioCssClass ? "class='" + radioCssClass + "' " : "";\r
- }\r
-}\r
-\r
-function jmolSetLinkCssClass(linkCssClass) {\r
- if (_jmol.hasGetElementById) {\r
- _jmol.linkCssClass = linkCssClass;\r
- _jmol.linkCssText = linkCssClass ? "class='" + linkCssClass + "' " : "";\r
- }\r
-}\r
-\r
-function jmolSetMenuCssClass(menuCssClass) {\r
- if (_jmol.hasGetElementById) {\r
- _jmol.menuCssClass = menuCssClass;\r
- _jmol.menuCssText = menuCssClass ? "class='" + menuCssClass + "' " : "";\r
- }\r
-}\r
-\r
-////////////////////////////////////////////////////////////////\r
-// functions for INTERNAL USE ONLY which are subject to change\r
-// use at your own risk ... you have been WARNED!\r
-////////////////////////////////////////////////////////////////\r
-var _jmol = {\r
- currentDocument: document,\r
-\r
- debugAlert: false,\r
- \r
- codebase: "",\r
- modelbase: ".",\r
- \r
- appletCount: 0,\r
- appletSuffixes: [],\r
- appletWindow: null,\r
- allowedJmolSize: [25, 2048, 300], // min, max, default (pixels)\r
- /* By setting the _jmol.allowedJmolSize[] variable in the webpage \r
- before calling jmolApplet(), limits for applet size can be overriden.\r
- 2048 standard for GeoWall (http://geowall.geo.lsa.umich.edu/home.html)\r
- */ \r
- buttonCount: 0,\r
- checkboxCount: 0,\r
- linkCount: 0,\r
- cmdCount: 0,\r
- menuCount: 0,\r
- radioCount: 0,\r
- radioGroupCount: 0,\r
- \r
- appletCssClass: null,\r
- appletCssText: "",\r
- buttonCssClass: null,\r
- buttonCssText: "",\r
- checkboxCssClass: null,\r
- checkboxCssText: "",\r
- java_arguments: "-Xmx512m",\r
- radioCssClass: null,\r
- radioCssText: "",\r
- linkCssClass: null,\r
- linkCssText: "",\r
- menuCssClass: null,\r
- menuCssText: "",\r
- \r
- targetSuffix: 0,\r
- targetText: ",0",\r
- scripts: [""],\r
- params: {\r
- syncId: ("" + Math.random()).substring(3),\r
- progressbar: "true",\r
- progresscolor: "blue",\r
- boxbgcolor: "black",\r
- boxfgcolor: "white",\r
- boxmessage: "Downloading JmolApplet ..."\r
- },\r
- ua: navigator.userAgent.toLowerCase(),\r
- // uaVersion: parseFloat(navigator.appVersion), // not used\r
- \r
- os: "unknown",\r
- browser: "unknown",\r
- browserVersion: 0,\r
- hasGetElementById: !!document.getElementById,\r
- isJavaEnabled: navigator.javaEnabled(),\r
- // isNetscape47Win: false, // not used, N4.7 is no longer supported even for detection\r
- useIEObject: false,\r
- useHtml4Object: false,\r
- \r
- windowsClassId: "clsid:8AD9C840-044E-11D1-B3E9-00805F499D93",\r
- windowsCabUrl:\r
- "http://java.sun.com/update/1.6.0/jinstall-6u22-windows-i586.cab",\r
-\r
- isBrowserCompliant: false,\r
- isJavaCompliant: false,\r
- isFullyCompliant: false,\r
-\r
- initialized: false,\r
- initChecked: false,\r
- \r
- browserChecked: false,\r
- checkBrowserAction: "alert",\r
- checkBrowserUrlOrMessage: null,\r
-\r
- archivePath: null, // JmolApplet0.jar OR JmolAppletSigned0.jar\r
-\r
- previousOnloadHandler: null,\r
-\r
- jmoljar: null, \r
- useNoApplet: false,\r
-\r
- ready: {}\r
-}\r
-\r
-with (_jmol) {\r
- function _jmolTestUA(candidate) {\r
- var ua = _jmol.ua;\r
- var index = ua.indexOf(candidate);\r
- if (index < 0)\r
- return false;\r
- _jmol.browser = candidate;\r
- _jmol.browserVersion = parseFloat(ua.substring(index+candidate.length+1));\r
- return true;\r
- }\r
- \r
- function _jmolTestOS(candidate) {\r
- if (_jmol.ua.indexOf(candidate) < 0)\r
- return false;\r
- _jmol.os = candidate;\r
- return true;\r
- }\r
- \r
- _jmolTestUA("konqueror") ||\r
- _jmolTestUA("webkit") ||\r
- _jmolTestUA("omniweb") ||\r
- _jmolTestUA("opera") ||\r
- _jmolTestUA("webtv") ||\r
- _jmolTestUA("icab") ||\r
- _jmolTestUA("msie") ||\r
- (_jmol.ua.indexOf("compatible") < 0 && _jmolTestUA("mozilla")); //Netscape, Mozilla, Seamonkey, Firefox and anything assimilated\r
- \r
- _jmolTestOS("linux") ||\r
- _jmolTestOS("unix") ||\r
- _jmolTestOS("mac") ||\r
- _jmolTestOS("win");\r
-\r
- /* not used:\r
- isNetscape47Win = (os == "win" && browser == "mozilla" &&\r
- browserVersion >= 4.78 && browserVersion <= 4.8);\r
- */\r
-\r
- if (os == "win") {\r
- isBrowserCompliant = hasGetElementById;\r
- } else if (os == "mac") { // mac is the problem child :-(\r
- if (browser == "mozilla" && browserVersion >= 5) {\r
- // miguel 2004 11 17\r
- // checking the plugins array does not work because\r
- // Netscape 7.2 OS X still has Java 1.3.1 listed even though\r
- // javaplugin.sf.net is installed to upgrade to 1.4.2\r
- eval("try {var v = java.lang.System.getProperty('java.version');" +\r
- " _jmol.isBrowserCompliant = v >= '1.4.2';" +\r
- " } catch (e) { }");\r
- } else if (browser == "opera" && browserVersion <= 7.54) {\r
- isBrowserCompliant = false;\r
- } else {\r
- isBrowserCompliant = hasGetElementById &&\r
- !((browser == "msie") ||\r
- (browser == "webkit" && browserVersion < 125.12));\r
- }\r
- } else if (os == "linux" || os == "unix") {\r
- if (browser == "konqueror" && browserVersion <= 3.3)\r
- isBrowserCompliant = false;\r
- else\r
- isBrowserCompliant = hasGetElementById;\r
- } else { // other OS\r
- isBrowserCompliant = hasGetElementById;\r
- }\r
-\r
- // possibly more checks in the future for this\r
- isJavaCompliant = isJavaEnabled;\r
-\r
- isFullyCompliant = isBrowserCompliant && isJavaCompliant;\r
-\r
- useIEObject = (os == "win" && browser == "msie" && browserVersion >= 5.5);\r
- useHtml4Object =\r
- (browser == "mozilla" && browserVersion >= 5) ||\r
- (browser == "opera" && browserVersion >= 8) ||\r
- (browser == "webkit" && browserVersion >= 412.2);\r
- try {\r
- if (top.location.search.indexOf("JMOLJAR=")>=0)\r
- jmoljar = top.location.search.split("JMOLJAR=")[1].split("&")[0];\r
- } catch(e) {\r
- // can't access top.location\r
- }\r
- try {\r
- useNoApplet = (top.location.search.indexOf("NOAPPLET")>=0);\r
- } catch(e) {\r
- // can't access top.document\r
- }\r
-}\r
-\r
-function jmolSetMemoryMb(nMb) {\r
- _jmol.java_arguments = "-Xmx" + Math.round(nMb) + "m"\r
-}\r
-\r
-function jmolSetParameter(name,value) {\r
- _jmol.params[name] = value\r
-}\r
-\r
-function jmolSetCallback(callbackName,funcName) {\r
- _jmol.params[callbackName] = funcName\r
-}\r
-\r
- try {\r
-// note this is done FIRST, so it cannot override a setting done by the developer\r
- if (top.location.search.indexOf("PARAMS=")>=0) {\r
- var pars = unescape(top.location.search.split("PARAMS=")[1].split("&")[0]).split(";");\r
- for (var i = 0; i < pars.length; i++) {\r
- var p = pars[i].split(":");\r
- jmolSetParameter(p[0],p[1]);\r
- }\r
- }\r
- } catch(e) {\r
- // can't access top.location\r
- }\r
-\r
-function jmolSetSyncId(n) {\r
- return _jmol.params["syncId"] = n\r
-}\r
-\r
-function jmolGetSyncId() {\r
- return _jmol.params["syncId"]\r
-}\r
-\r
-function jmolSetLogLevel(n) {\r
- _jmol.params.logLevel = ''+n;\r
-}\r
-\r
- /* AngelH, mar2007:\r
- By (re)setting these variables in the webpage before calling jmolApplet(), \r
- a custom message can be provided (e.g. localized for user's language) when no Java is installed.\r
- */\r
-if (noJavaMsg==undefined) var noJavaMsg = \r
- "You do not have Java applets enabled in your web browser, or your browser is blocking this applet.<br />\n" +\r
- "Check the warning message from your browser and/or enable Java applets in<br />\n" +\r
- "your web browser preferences, or install the Java Runtime Environment from <a href='http://www.java.com'>www.java.com</a><br />";\r
-if (noJavaMsg2==undefined) var noJavaMsg2 = \r
- "You do not have the<br />\n" +\r
- "Java Runtime Environment<br />\n" +\r
- "installed for applet support.<br />\n" +\r
- "Visit <a href='http://www.java.com'>www.java.com</a>";\r
-function _jmolApplet(size, inlineModel, script, nameSuffix) {\r
- /* AngelH, mar2007\r
- Fixed percent / pixel business, to avoid browser errors:\r
- put "px" where needed, avoid where not.\r
-\r
- Bob Hanson, 1/2010\r
- Fixed inline escape changing returns to | \r
- */\r
- with (_jmol) {\r
- nameSuffix == undefined && (nameSuffix = appletCount);\r
- appletSuffixes.push(nameSuffix);\r
- ++appletCount;\r
- script || (script = "select *");\r
- var sz = _jmolGetAppletSize(size);\r
- var widthAndHeight = " width='" + sz[0] + "' height='" + sz[1] + "' ";\r
- var tHeader, tFooter;\r
- codebase || jmolInitialize(".");\r
- if (useIEObject || useHtml4Object) {\r
- params.archive = archivePath;\r
- params.mayscript = 'true';\r
- params.codebase = codebase;\r
- params.code = 'JmolApplet';\r
- tHeader = \r
- "<object name='jmolApplet" + nameSuffix +\r
- "' id='jmolApplet" + nameSuffix + "' " + appletCssText + "\n" +\r
- widthAndHeight + "\n";\r
- tFooter = "</object>";\r
- }\r
- if (java_arguments)\r
- params.java_arguments = java_arguments;\r
- if (useIEObject) { // use MSFT IE6 object tag with .cab file reference\r
- tHeader += " classid='" + windowsClassId + "'\n" +\r
- (windowsCabUrl ? " codebase='" + windowsCabUrl + "'\n" : "") + ">\n";\r
- } else if (useHtml4Object) { // use HTML4 object tag\r
- tHeader += " type='application/x-java-applet'\n>\n";\r
- /* " classid='java:JmolApplet'\n" + AH removed this\r
- Chromium Issue 62076: Java Applets using an <object> with a classid paramater don't load.\r
- http://code.google.com/p/chromium/issues/detail?id=62076\r
- They say this is the correct behavior according to the spec, and there's no indication at this point \r
- that WebKit will be changing the handling, so eventually Safari will acquire this behavior too.\r
- Removing the classid parameter seems to be well tolerated by all browsers (even IE!).\r
- */\r
- } else { // use applet tag\r
- tHeader = \r
- "<applet name='jmolApplet" + nameSuffix +\r
- "' id='jmolApplet" + nameSuffix + "' " + appletCssText + "\n" +\r
- widthAndHeight + "\n" +\r
- " code='JmolApplet'" +\r
- " archive='" + archivePath + "' codebase='" + codebase + "'\n" +\r
- " mayscript='true'>\n";\r
- tFooter = "</applet>";\r
- }\r
- var visitJava;\r
- if (useIEObject || useHtml4Object) {\r
- var szX = "width:" + sz[0]\r
- if ( szX.indexOf("%")==-1 ) szX+="px" \r
- var szY = "height:" + sz[1]\r
- if ( szY.indexOf("%")==-1 ) szY+="px" \r
- visitJava =\r
- "<p style='background-color:yellow; color:black; " +\r
- szX + ";" + szY + ";" +\r
- // why doesn't this vertical-align work?\r
- "text-align:center;vertical-align:middle;'>\n" +\r
- noJavaMsg +\r
- "</p>";\r
- } else {\r
- visitJava =\r
- "<table bgcolor='yellow'><tr>" +\r
- "<td align='center' valign='middle' " + widthAndHeight + "><font color='black'>\n" +\r
- noJavaMsg2 +\r
- "</font></td></tr></table>";\r
- }\r
- params.loadInline = (inlineModel ? inlineModel : "");\r
- params.script = (script ? _jmolSterilizeScript(script) : "");\r
- var t = tHeader + _jmolParams() + visitJava + tFooter;\r
- jmolSetTarget(nameSuffix);\r
- ready["jmolApplet" + nameSuffix] = false;\r
- if (_jmol.debugAlert)\r
- alert(t);\r
- return _jmolDocumentWrite(t);\r
- }\r
-}\r
-\r
-function _jmolParams() {\r
- var t = "";\r
- for (var i in _jmol.params)\r
- if(_jmol.params[i]!="")\r
- t+=" <param name='"+i+"' value='"+_jmol.params[i]+"' />\n";\r
- return t\r
-}\r
-\r
-function _jmolInitCheck() {\r
- if (_jmol.initChecked)\r
- return;\r
- _jmol.initChecked = true;\r
- jmolInitialize(defaultdir, defaultjar)\r
-}\r
-\r
-function _jmolCheckBrowser() {\r
- with (_jmol) {\r
- if (browserChecked)\r
- return;\r
- browserChecked = true;\r
- \r
- if (isFullyCompliant)\r
- return true;\r
-\r
- if (checkBrowserAction == "redirect")\r
- location.href = checkBrowserUrlOrMessage;\r
- else if (checkBrowserAction == "popup")\r
- _jmolPopup(checkBrowserUrlOrMessage);\r
- else {\r
- var msg = checkBrowserUrlOrMessage;\r
- if (msg == null)\r
- msg = "Your web browser is not fully compatible with Jmol\n\n" +\r
- "browser: " + browser +\r
- " version: " + browserVersion +\r
- " os: " + os +\r
- " isBrowserCompliant: " + isBrowserCompliant +\r
- " isJavaCompliant: " + isJavaCompliant +\r
- "\n\n" + ua;\r
- alert(msg);\r
- }\r
- }\r
- return false;\r
-}\r
-\r
-function jmolSetXHTML(id) {\r
- _jmol.isXHTML = true\r
- _jmol.XhtmlElement = null\r
- _jmol.XhtmlAppendChild = false\r
- if (id){\r
- _jmol.XhtmlElement = document.getElementById(id)\r
- _jmol.XhtmlAppendChild = true\r
- }\r
-}\r
-\r
-function _jmolDocumentWrite(text) {\r
- if (_jmol.currentDocument) {\r
- if (_jmol.isXHTML && !_jmol.XhtmlElement) {\r
- var s = document.getElementsByTagName("script")\r
- _jmol.XhtmlElement = s.item(s.length - 1)\r
- _jmol.XhtmlAppendChild = false\r
- }\r
- if (_jmol.XhtmlElement) {\r
- _jmolDomDocumentWrite(text)\r
- } else {\r
- _jmol.currentDocument.write(text);\r
- }\r
- }\r
- return text;\r
-}\r
-\r
-function _jmolDomDocumentWrite(data) {\r
- var pt = 0\r
- var Ptr = []\r
- Ptr[0] = 0\r
- while (Ptr[0] < data.length) {\r
- var child = _jmolGetDomElement(data, Ptr)\r
- if (!child)break\r
- if (_jmol.XhtmlAppendChild)\r
- _jmol.XhtmlElement.appendChild(child)\r
- else\r
- _jmol.XhtmlElement.parentNode.insertBefore(child, _jmol.XhtmlElement); \r
- }\r
-}\r
-function _jmolGetDomElement(data, Ptr, closetag, lvel) {\r
- var e = document.createElement("span")\r
- e.innerHTML = data\r
- Ptr[0] = data.length\r
- return e\r
-\r
-//unnecessary?\r
-\r
- closetag || (closetag = "")\r
- lvel || (lvel = 0)\r
- var pt0 = Ptr[0]\r
- var pt = pt0\r
- while (pt < data.length && data.charAt(pt) != "<") pt++\r
- if (pt != pt0) {\r
- var text = data.substring(pt0, pt)\r
- Ptr[0] = pt\r
- return document.createTextNode(text)\r
- } \r
- pt0 = ++pt\r
- var ch\r
- while (pt < data.length && "\n\r\t >".indexOf(ch = data.charAt(pt)) < 0) pt++\r
- var tagname = data.substring(pt0, pt)\r
- var e = (tagname == closetag || tagname == "/" ? "" \r
- : document.createElementNS ? document.createElementNS('http://www.w3.org/1999/xhtml', tagname)\r
- : document.createElement(tagname));\r
- if (ch == ">") {\r
- Ptr[0] = ++pt\r
- return e\r
- }\r
- while (pt < data.length && (ch = data.charAt(pt)) != ">") {\r
- while (pt < data.length && "\n\r\t ".indexOf(ch = data.charAt(pt)) >= 0) pt++\r
- pt0 = pt\r
- while (pt < data.length && "\n\r\t =/>".indexOf(ch = data.charAt(pt)) < 0) pt++\r
- var attrname = data.substring(pt0, pt).toLowerCase()\r
- if (attrname && ch != "=") \r
- e.setAttribute(attrname, "true")\r
- while (pt < data.length && "\n\r\t ".indexOf(ch = data.charAt(pt)) >= 0) pt++\r
- if (ch == "/") {\r
- Ptr[0] = pt + 2\r
- return e\r
- } else if (ch == "=") {\r
- var quote = data.charAt(++pt)\r
- pt0 = ++pt\r
- while (pt < data.length && (ch = data.charAt(pt)) != quote) pt++\r
- var attrvalue = data.substring(pt0, pt)\r
- e.setAttribute(attrname, attrvalue)\r
- pt++\r
- }\r
- }\r
- Ptr[0] = ++pt\r
- while (Ptr[0] < data.length) {\r
- var child = _jmolGetDomElement(data, Ptr, "/" + tagname, lvel+1)\r
- if (!child)break\r
- e.appendChild(child)\r
- }\r
- return e\r
-}\r
-\r
-function _jmolPopup(url) {\r
- var popup = window.open(url, "JmolPopup",\r
- "left=150,top=150,height=400,width=600," +\r
- "directories=yes,location=yes,menubar=yes," +\r
- "toolbar=yes," +\r
- "resizable=yes,scrollbars=yes,status=yes");\r
- if (popup.focus)\r
- poup.focus();\r
-}\r
-\r
-function _jmolReadyCallback(name) {\r
- if (_jmol.debugAlert)\r
- alert(name + " is ready");\r
- _jmol.ready["" + name] = true;\r
-}\r
-\r
-function _jmolSterilizeScript(script) {\r
- script = script.replace(/'/g, "'");\r
- if (_jmol.debugAlert)\r
- alert("script:\n" + script);\r
- return script;\r
-}\r
-\r
-function _jmolSterilizeInline(model) {\r
- model = model.replace(/\r|\n|\r\n/g, (model.indexOf("|") >= 0 ? "\\/n" : "|")).replace(/'/g, "'");\r
- if (_jmol.debugAlert)\r
- alert("inline model:\n" + model);\r
- return model;\r
-}\r
-\r
-function _jmolRadio(script, labelHtml, isChecked, separatorHtml, groupName, id, title) {\r
- ++_jmol.radioCount;\r
- groupName != undefined && groupName != null || (groupName = "jmolRadioGroup" + (_jmol.radioGroupCount - 1));\r
- if (!script)\r
- return "";\r
- labelHtml != undefined && labelHtml != null || (labelHtml = script.substring(0, 32));\r
- separatorHtml || (separatorHtml = "")\r
- var scriptIndex = _jmolAddScript(script);\r
- var eospan = "</span>"\r
- var t = "<span id=\"span_"+id+"\""+(title ? " title=\"" + title + "\"":"")+"><input name='" \r
- + groupName + "' id='"+id+"' type='radio' onclick='_jmolClick(this," +\r
- scriptIndex + _jmol.targetText + ");return true;' onmouseover='_jmolMouseOver(" +\r
- scriptIndex + ");return true;' onmouseout='_jmolMouseOut()' " +\r
- (isChecked ? "checked='true' " : "") + _jmol.radioCssText + " />"\r
- if (labelHtml.toLowerCase().indexOf("<td>")>=0) {\r
- t += eospan\r
- eospan = "";\r
- }\r
- t += "<label for=\"" + id + "\">" + labelHtml + "</label>" +eospan + separatorHtml;\r
-\r
- return t;\r
-}\r
-\r
-function _jmolFindApplet(target) {\r
- // first look for the target in the current window\r
- var applet = _jmolFindAppletInWindow(_jmol.appletWindow != null ? _jmol.appletWindow : window, target);\r
- // THEN look for the target in child frames\r
- if (applet == undefined)\r
- applet = _jmolSearchFrames(window, target);\r
- // FINALLY look for the target in sibling frames\r
- if (applet == undefined)\r
- applet = _jmolSearchFrames(top, target); // look starting in top frame\r
- return applet;\r
-}\r
-\r
-function _jmolGetApplet(targetSuffix){\r
- var target = "jmolApplet" + (targetSuffix ? targetSuffix : "0");\r
- var applet = _jmolFindApplet(target);\r
- if (applet) return applet\r
- _jmol.alerted || alert("could not find applet " + target);\r
- _jmol.alerted = true;\r
- return null\r
-}\r
-\r
-function _jmolSearchFrames(win, target) {\r
- var applet;\r
- var frames = win.frames;\r
- if (frames && frames.length) { // look in all the frames below this window\r
- try{\r
- for (var i = 0; i < frames.length; ++i) {\r
- applet = _jmolSearchFrames(frames[i], target);\r
- if (applet)\r
- return applet;\r
- }\r
- }catch(e) {\r
- if (_jmol.debugAlert)\r
- alert("Jmol.js _jmolSearchFrames cannot access " + win.name + ".frame[" + i + "] consider using jmolSetAppletWindow()") \r
- }\r
- }\r
- return applet = _jmolFindAppletInWindow(win, target)\r
-}\r
-\r
-function _jmolFindAppletInWindow(win, target) {\r
- var doc = win.document;\r
- if (doc.getElementById(target))\r
- return doc.getElementById(target);\r
- else if (doc.applets)\r
- return doc.applets[target];\r
- else\r
- return doc[target]; \r
-}\r
-\r
-function _jmolAddScript(script) {\r
- if (!script)\r
- return 0;\r
- var index = _jmol.scripts.length;\r
- _jmol.scripts[index] = script;\r
- return index;\r
-}\r
-\r
-function _jmolClick(elementClicked, scriptIndex, targetSuffix) {\r
- _jmol.element = elementClicked;\r
- _jmolScriptExecute(elementClicked, _jmol.scripts[scriptIndex], targetSuffix);\r
-}\r
-\r
-function _jmolMenuSelected(menuObject, targetSuffix) {\r
- var scriptIndex = menuObject.value;\r
- if (scriptIndex != undefined) {\r
- _jmolScriptExecute(menuObject, _jmol.scripts[scriptIndex], targetSuffix);\r
- return;\r
- }\r
- var len = menuObject.length;\r
- if (typeof len == "number") {\r
- for (var i = 0; i < len; ++i) {\r
- if (menuObject[i].selected) {\r
- _jmolClick(menuObject[i], menuObject[i].value, targetSuffix);\r
- return;\r
- }\r
- }\r
- }\r
- alert("?Que? menu selected bug #8734");\r
-}\r
-\r
-\r
-_jmol.checkboxMasters = {};\r
-_jmol.checkboxItems = {};\r
-\r
-function jmolSetCheckboxGroup(chkMaster,chkBox) {\r
- var id = chkMaster;\r
- if(typeof(id)=="number")id = "jmolCheckbox" + id;\r
- chkMaster = document.getElementById(id);\r
- if (!chkMaster)alert("jmolSetCheckboxGroup: master checkbox not found: " + id);\r
- var m = _jmol.checkboxMasters[id] = {};\r
- m.chkMaster = chkMaster;\r
- m.chkGroup = {};\r
- for (var i = 1; i < arguments.length; i++){\r
- var id = arguments[i];\r
- if(typeof(id)=="number")id = "jmolCheckbox" + id;\r
- checkboxItem = document.getElementById(id);\r
- if (!checkboxItem)alert("jmolSetCheckboxGroup: group checkbox not found: " + id);\r
- m.chkGroup[id] = checkboxItem;\r
- _jmol.checkboxItems[id] = m;\r
- }\r
-}\r
-\r
-function _jmolNotifyMaster(m){\r
- //called when a group item is checked\r
- var allOn = true;\r
- var allOff = true;\r
- for (var chkBox in m.chkGroup){\r
- if(m.chkGroup[chkBox].checked)\r
- allOff = false;\r
- else\r
- allOn = false;\r
- }\r
- if (allOn)m.chkMaster.checked = true; \r
- if (allOff)m.chkMaster.checked = false;\r
- if ((allOn || allOff) && _jmol.checkboxItems[m.chkMaster.id])\r
- _jmolNotifyMaster(_jmol.checkboxItems[m.chkMaster.id])\r
-}\r
-\r
-function _jmolNotifyGroup(m, isOn){\r
- //called when a master item is checked\r
- for (var chkBox in m.chkGroup){\r
- var item = m.chkGroup[chkBox]\r
- item.checked = isOn;\r
- if (_jmol.checkboxMasters[item.id])\r
- _jmolNotifyGroup(_jmol.checkboxMasters[item.id], isOn)\r
- }\r
-}\r
-\r
-function _jmolCbClick(ckbox, whenChecked, whenUnchecked, targetSuffix) {\r
- _jmol.control = ckbox\r
- _jmolClick(ckbox, ckbox.checked ? whenChecked : whenUnchecked, targetSuffix);\r
- if(_jmol.checkboxMasters[ckbox.id])\r
- _jmolNotifyGroup(_jmol.checkboxMasters[ckbox.id], ckbox.checked)\r
- if(_jmol.checkboxItems[ckbox.id])\r
- _jmolNotifyMaster(_jmol.checkboxItems[ckbox.id])\r
-}\r
-\r
-function _jmolCbOver(ckbox, whenChecked, whenUnchecked) {\r
- window.status = _jmol.scripts[ckbox.checked ? whenUnchecked : whenChecked];\r
-}\r
-\r
-function _jmolMouseOver(scriptIndex) {\r
- window.status = _jmol.scripts[scriptIndex];\r
-}\r
-\r
-function _jmolMouseOut() {\r
- window.status = " ";\r
- return true;\r
-}\r
-\r
-function _jmolSetCodebase(codebase) {\r
- _jmol.codebase = codebase ? codebase : ".";\r
- if (_jmol.debugAlert)\r
- alert("jmolCodebase=" + _jmol.codebase);\r
-}\r
-\r
-function _jmolOnloadResetForms() {\r
- // must be evaluated ONLY once\r
- _jmol.previousOnloadHandler = window.onload;\r
- window.onload =\r
- function() {\r
- with (_jmol) {\r
- if (buttonCount+checkboxCount+menuCount+radioCount+radioGroupCount > 0) {\r
- var forms = document.forms;\r
- for (var i = forms.length; --i >= 0; )\r
- forms[i].reset();\r
- }\r
- if (previousOnloadHandler)\r
- previousOnloadHandler();\r
- }\r
- }\r
-}\r
-\r
-////////////////////////////////////\r
-/////extensions for getProperty/////\r
-////////////////////////////////////\r
-\r
-\r
-function _jmolEvalJSON(s,key){\r
- s=s+""\r
- if(!s)return []\r
- if(s.charAt(0)!="{"){\r
- if(s.indexOf(" | ")>=0)s=s.replace(/\ \|\ /g, "\n")\r
- return s\r
- }\r
- var A = eval("("+s+")")\r
- if(!A)return\r
- if(key && A[key])A=A[key]\r
- return A\r
-}\r
-\r
-function _jmolEnumerateObject(A,key){\r
- var sout=""\r
- if(typeof(A) == "string" && A!="null"){\r
- sout+="\n"+key+"=\""+A+"\""\r
- }else if(!isNaN(A)||A==null){\r
- sout+="\n"+key+"="+(A+""==""?"null":A)\r
- }else if(A.length){\r
- sout+=key+"=[]"\r
- for(var i=0;i<A.length;i++){\r
- sout+="\n"\r
- if(typeof(A[i]) == "object"||typeof(A[i]) == "array"){\r
- sout+=_jmolEnumerateObject(A[i],key+"["+i+"]")\r
- }else{\r
- sout+=key+"["+i+"]="+(typeof(A[i]) == "string" && A[i]!="null"?"\""+A[i].replace(/\"/g,"\\\"")+"\"":A[i])\r
- }\r
- }\r
- }else{\r
- if(key != ""){\r
- sout+=key+"={}"\r
- key+="."\r
- }\r
- \r
- for(var i in A){\r
- sout+="\n"\r
- if(typeof(A[i]) == "object"||typeof(A[i]) == "array"){\r
- sout+=_jmolEnumerateObject(A[i],key+i)\r
- }else{\r
- sout+=key+i+"="+(typeof(A[i]) == "string" && A[i]!="null"?"\""+A[i].replace(/\"/g,"\\\"")+"\"":A[i])\r
- }\r
- }\r
- } \r
- return sout\r
-}\r
-\r
-\r
-function _jmolSortKey0(a,b){\r
- return (a[0]<b[0]?1:a[0]>b[0]?-1:0)\r
-}\r
-\r
-function _jmolSortMessages(A){\r
- if(!A || typeof(A)!="object")return []\r
- var B = []\r
- for(var i=A.length-1;i>=0;i--)for(var j=0;j<A[i].length;j++)B[B.length]=A[i][j]\r
- if(B.length == 0) return\r
- B=B.sort(_jmolSortKey0)\r
- return B\r
-}\r
-\r
-/////////additional extensions //////////\r
-\r
-\r
-function _jmolDomScriptLoad(URL){\r
- //open(URL) //to debug\r
- _jmol.servercall=URL\r
- var node = document.getElementById("_jmolScriptNode")\r
- if (node && _jmol.browser!="msie"){\r
- document.getElementsByTagName("HEAD")[0].removeChild(node)\r
- node=null\r
- }\r
- if (node) {\r
- node.setAttribute("src",URL)\r
- } else {\r
- node=document.createElement("script")\r
- node.setAttribute("id","_jmolScriptNode")\r
- node.setAttribute("type","text/javascript")\r
- node.setAttribute("src",URL)\r
- document.getElementsByTagName("HEAD")[0].appendChild(node)\r
- }\r
-}\r
-\r
-\r
-function _jmolExtractPostData(url){\r
- S=url.split("&POST:")\r
- var s=""\r
- for(var i=1;i<S.length;i++){\r
- KV=S[i].split("=")\r
- s+="&POSTKEY"+i+"="+KV[0]\r
- s+="&POSTVALUE"+i+"="+KV[1]\r
- }\r
- return "&url="+escape(S[0])+s\r
-}\r
-\r
-function _jmolLoadModel(targetSuffix,remoteURL,array,isError,errorMessage){\r
- //called by server, but in client\r
- //overload this function to customize return\r
- _jmol.remoteURL=remoteURL\r
- isError && alert(errorMessage)\r
- jmolLoadInlineScript(array.join("\n"),_jmol.optionalscript,targetSuffix)\r
-}\r
-\r
-//////////user property/status functions/////////\r
-\r
-function jmolGetStatus(strStatus,targetSuffix){\r
- return _jmolSortMessages(jmolGetPropertyAsArray("jmolStatus",strStatus,targetSuffix))\r
-}\r
-\r
-function jmolGetPropertyAsArray(sKey,sValue,targetSuffix) {\r
- return _jmolEvalJSON(jmolGetPropertyAsJSON(sKey,sValue,targetSuffix),sKey)\r
-}\r
-\r
-function jmolGetPropertyAsString(sKey,sValue,targetSuffix) {\r
- var applet = _jmolGetApplet(targetSuffix);\r
- sValue == undefined && (sValue="");\r
- return (applet ? applet.getPropertyAsString(sKey,sValue) + "" : "")\r
-}\r
-\r
-function jmolGetPropertyAsJSON(sKey,sValue,targetSuffix) {\r
- sValue == undefined && (sValue = "")\r
- var applet = _jmolGetApplet(targetSuffix);\r
- try {\r
- return (applet ? applet.getPropertyAsJSON(sKey,sValue) + "" : "")\r
- } catch(e) {\r
- return ""\r
- }\r
-}\r
-\r
-function jmolGetPropertyAsJavaObject(sKey,sValue,targetSuffix) {\r
- sValue == undefined && (sValue = "")\r
- var applet = _jmolGetApplet(targetSuffix);\r
- return (applet ? applet.getProperty(sKey,sValue) : null)\r
-}\r
-\r
-\r
-function jmolDecodeJSON(s) {\r
- return _jmolEnumerateObject(_jmolEvalJSON(s),"")\r
-}\r
-\r
-\r
-///////// synchronous scripting ////////\r
-\r
-function jmolScriptWait(script, targetSuffix) {\r
- targetSuffix == undefined && (targetSuffix="0")\r
- var Ret=jmolScriptWaitAsArray(script, targetSuffix)\r
- var s = ""\r
- for(var i=Ret.length;--i>=0;)\r
- for(var j=0;j< Ret[i].length;j++)\r
- s+=Ret[i][j]+"\n"\r
- return s\r
-}\r
-\r
-function jmolScriptWaitOutput(script, targetSuffix) {\r
- targetSuffix == undefined && (targetSuffix="0")\r
- var ret = ""\r
- try{\r
- if (script) {\r
- _jmolCheckBrowser();\r
- var applet=_jmolGetApplet(targetSuffix);\r
- if (applet) ret += applet.scriptWaitOutput(script);\r
- }\r
- }catch(e){\r
- }\r
- return ret;\r
-}\r
-\r
-function jmolEvaluate(molecularMath, targetSuffix) {\r
-\r
- //carries out molecular math on a model\r
-\r
- targetSuffix == undefined && (targetSuffix="0")\r
- var result = "" + jmolGetPropertyAsJavaObject("evaluate", molecularMath, targetSuffix);\r
- var s = result.replace(/\-*\d+/,"")\r
- if (s == "" && !isNaN(parseInt(result)))return parseInt(result);\r
- var s = result.replace(/\-*\d*\.\d*/,"")\r
- if (s == "" && !isNaN(parseFloat(result)))return parseFloat(result);\r
- return result;\r
-}\r
-\r
-function jmolScriptEcho(script, targetSuffix) {\r
- // returns a newline-separated list of all echos from a script\r
- targetSuffix == undefined && (targetSuffix="0")\r
- var Ret=jmolScriptWaitAsArray(script, targetSuffix)\r
- var s = ""\r
- for(var i=Ret.length;--i>=0;)\r
- for(var j=Ret[i].length;--j>=0;)\r
- if (Ret[i][j][1] == "scriptEcho")s+=Ret[i][j][3]+"\n"\r
- return s.replace(/ \| /g, "\n")\r
-}\r
-\r
-\r
-function jmolScriptMessage(script, targetSuffix) {\r
- // returns a newline-separated list of all messages from a script, ending with "script completed\n"\r
- targetSuffix == undefined && (targetSuffix="0")\r
- var Ret=jmolScriptWaitAsArray(script, targetSuffix)\r
- var s = ""\r
- for(var i=Ret.length;--i>=0;)\r
- for(var j=Ret[i].length;--j>=0;)\r
- if (Ret[i][j][1] == "scriptStatus")s+=Ret[i][j][3]+"\n"\r
- return s.replace(/ \| /g, "\n")\r
-}\r
-\r
-\r
-function jmolScriptWaitAsArray(script, targetSuffix) {\r
- var ret = ""\r
- try{\r
- jmolGetStatus("scriptEcho,scriptMessage,scriptStatus,scriptError",targetSuffix)\r
- if (script) {\r
- _jmolCheckBrowser();\r
- var applet=_jmolGetApplet(targetSuffix);\r
- if (applet) ret += applet.scriptWait(script);\r
- ret = _jmolEvalJSON(ret,"jmolStatus")\r
- if(typeof ret == "object")\r
- return ret\r
- }\r
- }catch(e){\r
- }\r
- return [[ret]]\r
-}\r
-\r
-\r
-\r
-//////////// save/restore orientation /////////////\r
-\r
-function jmolSaveOrientation(id, targetSuffix) { \r
- targetSuffix == undefined && (targetSuffix="0")\r
- return _jmol["savedOrientation"+id] = jmolGetPropertyAsArray("orientationInfo","info",targetSuffix).moveTo\r
-}\r
-\r
-function jmolRestoreOrientation(id, targetSuffix) {\r
- targetSuffix == undefined && (targetSuffix="0")\r
- var s=_jmol["savedOrientation"+id]\r
- if (!s || s == "")return\r
- s=s.replace(/1\.0/,"0")\r
- return jmolScriptWait(s,targetSuffix)\r
-}\r
-\r
-function jmolRestoreOrientationDelayed(id, delay, targetSuffix) {\r
- arguments.length < 2 && (delay=1)\r
- targetSuffix == undefined && (targetSuffix="0")\r
- var s=_jmol["savedOrientation"+id]\r
- if (!s || s == "")return\r
- s=s.replace(/1\.0/,delay)\r
- return jmolScriptWait(s,targetSuffix)\r
-}\r
-\r
-//////////// add parameter /////////////\r
-/*\r
- * for adding callbacks or other parameters. Use:\r
-\r
- jmolSetDocument(0)\r
- var s= jmolApplet(....)\r
- s = jmolAppletAddParam(s,"messageCallback", "myFunctionName")\r
- document.write(s)\r
- jmolSetDocument(document) // if you want to then write buttons and such normally\r
- \r
- */\r
-\r
-function jmolAppletAddParam(appletCode,name,value){\r
- return (value == "" ? appletCode : appletCode.replace(/\<param/,"\n<param name='"+name+"' value='"+value+"' />\n<param"))\r
-}\r
-\r
-///////////////auto load Research Consortium for Structural Biology (RCSB) data ///////////\r
-\r
-function jmolLoadAjax_STOLAF_RCSB(fileformat,pdbid,optionalscript,targetSuffix){\r
-\r
- _jmol.thismodel || (_jmol.thismodel = "1crn")\r
- _jmol.serverURL || (_jmol.serverURL="http://fusion.stolaf.edu/chemistry/jmol/getajaxjs.cfm")\r
- _jmol.RCSBserver || (_jmol.RCSBserver="http://www.rcsb.org")\r
- _jmol.defaultURL_RCSB || (_jmol.defaultURL_RCSB=_jmol.RCSBserver+"/pdb/files/1CRN.CIF")\r
- fileformat || (fileformat="PDB")\r
- pdbid || (pdbid=prompt("Enter a 4-digit PDB ID:",_jmol.thismodel))\r
- if(!pdbid || pdbid.length != 4)return ""\r
- targetSuffix || (targetSuffix="0")\r
- optionalscript || (optionalscript="")\r
- var url=_jmol.defaultURL_RCSB.replace(/1CRN/g,pdbid.toUpperCase())\r
- fileformat=="CIF" || (url=url.replace(/CIF/,fileformat))\r
- _jmol.optionalscript=optionalscript\r
- _jmol.thismodel=pdbid\r
- _jmol.thistargetsuffix=targetSuffix\r
- _jmol.thisurl=url\r
- _jmol.modelArray = []\r
- url=_jmol.serverURL+"?returnfunction=_jmolLoadModel&returnArray=_jmol.modelArray&id="+targetSuffix+_jmolExtractPostData(url)\r
- _jmolDomScriptLoad(url)\r
- return url\r
-}\r
-\r
-\r
-///////////////auto load NIH CACTVS data -- compound name or SMILES ///////////\r
-\r
-function jmolLoadAjax_STOLAF_NIH(compoundid,optionalscript,targetSuffix){\r
- _jmol.thismodel || (_jmol.thismodel = "aspirin")\r
- _jmol.serverURL || (_jmol.serverURL="http://fusion.stolaf.edu/chemistry/jmol/getajaxjs.cfm")\r
- _jmol.defaultURL_NIH || (_jmol.defaultURL_NIH="http://cactus.nci.nih.gov/chemical/structure/FILE/file?format=sdf&get3d=True")\r
- compoundid || (compoundid=prompt("Enter a compound name or a SMILES string:",_jmol.thismodel))\r
- if(!compoundid)return ""\r
- targetSuffix || (targetSuffix="0")\r
- optionalscript || (optionalscript="")\r
- var url=_jmol.defaultURL_NIH.replace(/FILE/g,compoundid)\r
- _jmol.optionalscript=optionalscript\r
- _jmol.thismodel=compoundid\r
- _jmol.thistargetsuffix=targetSuffix\r
- _jmol.thisurl=url\r
- _jmol.modelArray = []\r
- url=_jmol.serverURL+"?returnfunction=_jmolLoadModel&returnArray=_jmol.modelArray&id="+targetSuffix+_jmolExtractPostData(url)\r
- _jmolDomScriptLoad(url)\r
- return url\r
-}\r
-\r
-\r
-/////////////// St. Olaf College AJAX server -- ANY URL ///////////\r
-\r
-function jmolLoadAjax_STOLAF_ANY(url, userid, optionalscript,targetSuffix){\r
- _jmol.serverURL="http://fusion.stolaf.edu/chemistry/jmol/getajaxjs.cfm"\r
- _jmol.thisurlANY || (_jmol.thisurlANY = "http://www.stolaf.edu/depts/chemistry/mo/struc/data/ycp3-1.mol")\r
- url || (url=prompt("Enter any (uncompressed file) URL:", _jmol.thisurlANY))\r
- userid || (userid="0")\r
- targetSuffix || (targetSuffix="0")\r
- optionalscript || (optionalscript="")\r
- _jmol.optionalscript=optionalscript\r
- _jmol.thistargetsuffix=targetSuffix\r
- _jmol.modelArray = []\r
- _jmol.thisurl = url\r
- url=_jmol.serverURL+"?returnfunction=_jmolLoadModel&returnArray=_jmol.modelArray&id="+targetSuffix+_jmolExtractPostData(url)\r
- _jmolDomScriptLoad(url)\r
-}\r
-\r
-\r
-/////////////// Mineralogical Society of America (MSA) data /////////\r
-\r
-function jmolLoadAjax_MSA(key,value,optionalscript,targetSuffix){\r
-\r
- _jmol.thiskeyMSA || (_jmol.thiskeyMSA = "mineral")\r
- _jmol.thismodelMSA || (_jmol.thismodelMSA = "quartz")\r
- _jmol.ajaxURL_MSA || (_jmol.ajaxURL_MSA="http://rruff.geo.arizona.edu/AMS/result.php?mineral=quartz&viewing=ajaxjs")\r
- key || (key=prompt("Enter a field:", _jmol.thiskeyMSA))\r
- if(!key)return ""\r
- value || (value=prompt("Enter a "+key+":", _jmol.thismodelMSA))\r
- if(!value)return ""\r
- targetSuffix || (targetSuffix="0")\r
- optionalscript || (optionalscript="")\r
- optionalscript == 1 && (optionalscript='load "" {1 1 1}')\r
- var url=_jmol.ajaxURL_MSA.replace(/mineral/g,key).replace(/quartz/g,value)\r
- _jmol.optionalscript=optionalscript\r
- _jmol.thiskeyMSA=key\r
- _jmol.thismodelMSA=value\r
- _jmol.thistargetsuffix=targetSuffix\r
- _jmol.thisurl=url\r
- _jmol.modelArray = []\r
- loadModel=_jmolLoadModel\r
- _jmolDomScriptLoad(url)\r
- return url\r
-}\r
-\r
-\r
-\r
-function jmolLoadAjaxJS(url, userid, optionalscript,targetSuffix){\r
- userid || (userid="0")\r
- targetSuffix || (targetSuffix="0")\r
- optionalscript || (optionalscript="")\r
- _jmol.optionalscript=optionalscript\r
- _jmol.thismodel=userid\r
- _jmol.thistargetsuffix=targetSuffix\r
- _jmol.modelArray = []\r
- _jmol.thisurl = url\r
- url+="&returnFunction=_jmolLoadModel&returnArray=_jmol.modelArray&id="+targetSuffix\r
- _jmolDomScriptLoad(url)\r
-}\r
-\r
-\r
-//// in case Jmol library has already been loaded:\r
-\r
-}catch(e){}\r
-\r
-///////////////moving atoms //////////////\r
-\r
-// HIGHLY experimental!!\r
-\r
-function jmolSetAtomCoord(i,x,y,z,targetSuffix){\r
- _jmolCheckBrowser();\r
- var applet=_jmolGetApplet(targetSuffix);\r
- if (applet) applet.getProperty('jmolViewer').setAtomCoord(i,x,y,z)\r
-}\r
-\r
-function jmolSetAtomCoordRelative(i,x,y,z,targetSuffix){\r
- _jmolCheckBrowser();\r
- var applet=_jmolGetApplet(targetSuffix);\r
- if (applet) applet.getProperty('jmolViewer').setAtomCoordRelative(i,x,y,z)\r
-}\r
-\r
-\r
-///////////////applet fake for testing buttons/////////////\r
-\r
-\r
-if(_jmol.useNoApplet){\r
- jmolApplet = function(w){\r
- var s="<table style='background-color:black' width="+w+"><tr height="+w+">"\r
- +"<td align=center valign=center style='background-color:white'>"\r
- +"Applet would be here"\r
- +"<p><textarea id=fakeApplet rows=5 cols=50></textarea>"\r
- +"</td></tr></table>"\r
- return _jmolDocumentWrite(s)\r
- }\r
-\r
- _jmolFindApplet = function(){return jmolApplet0}\r
-\r
- jmolApplet0 = {\r
- script: function(script){document.getElementById("fakeApplet").value="\njmolScript:\n"+script}\r
- ,scriptWait: function(script){document.getElementById("fakeApplet").value="\njmolScriptWait:\n"+script} \r
- ,loadInline: function(data,script){document.getElementById("fakeApplet").value="\njmolLoadInline data:\n"+data+"\n\nscript:\n"+script}\r
- }\r
-}\r
-\r
-\r
-///////////////////////////////////////////\r
-\r
- // This should no longer be needed, jmolResizeApplet() is better; kept for backwards compatibility\r
- /*\r
- Resizes absolutely (pixels) or by percent of window (w or h 0.5 means 50%).\r
- targetSuffix is optional and defaults to zero (first applet in page).\r
- Both w and h are optional, but needed if you want to use targetSuffix.\r
- h defaults to w\r
- w defaults to 100% of window\r
- If either w or h is between 0 and 1, then it is taken as percent/100.\r
- If either w or h is greater than 1, then it is taken as a size (pixels). \r
- */\r
-function jmolResize(w,h,targetSuffix) {\r
- _jmol.alerted = true;\r
- var percentW = (!w ? 100 : w <= 1 && w > 0 ? w * 100 : 0);\r
- var percentH = (!h ? percentW : h <= 1 && h > 0 ? h * 100 : 0);\r
- if (_jmol.browser=="msie") {\r
- var width=document.body.clientWidth;\r
- var height=document.body.clientHeight;\r
- } else {\r
- var netscapeScrollWidth=15;\r
- var width=window.innerWidth - netscapeScrollWidth;\r
- var height=window.innerHeight-netscapeScrollWidth;\r
- }\r
- var applet = _jmolGetApplet(targetSuffix);\r
- if(!applet)return;\r
- applet.style.width = (percentW ? width * percentW/100 : w)+"px";\r
- applet.style.height = (percentH ? height * percentH/100 : (h ? h : w))+"px";\r
- //title=width + " " + height + " " + (new Date());\r
-}\r
-\r
-// 13 Jun 09 -- makes jmolResize() obsolete (kept for backwards compatibility)\r
-function jmolResizeApplet(size,targetSuffix) {\r
- // See _jmolGetAppletSize() for the formats accepted as size [same used by jmolApplet()]\r
- // Special case: an empty value for width or height is accepted, meaning no change in that dimension.\r
- _jmol.alerted = true;\r
- var applet = _jmolGetApplet(targetSuffix);\r
- if(!applet)return;\r
- var sz = _jmolGetAppletSize(size, "px");\r
- sz[0] && (applet.style.width = sz[0]);\r
- sz[1] && (applet.style.height = sz[1]);\r
-}\r
-\r
-function _jmolGetAppletSize(size, units) {\r
- /* Accepts single number or 2-value array, each one can be one of:\r
- percent (text string ending %), decimal 0 to 1 (percent/100), number, or text string (interpreted as nr.)\r
- [width, height] array of strings is returned, with units added if specified.\r
- Percent is relative to container div or element (which should have explicitly set size).\r
- */\r
- var width, height;\r
- if ( (typeof size) == "object" && size != null ) {\r
- width = size[0]; height = size[1];\r
- } else {\r
- width = height = size;\r
- }\r
- return [_jmolFixDim(width, units), _jmolFixDim(height, units)];\r
-}\r
-\r
-function _jmolFixDim(x, units) {\r
- var sx = "" + x;\r
- return (sx.length == 0 ? (units ? "" : _jmol.allowedJmolSize[2])\r
- : sx.indexOf("%") == sx.length-1 ? sx \r
- : (x = parseFloat(x)) <= 1 && x > 0 ? x * 100 + "%"\r
- : (isNaN(x = Math.floor(x)) ? _jmol.allowedJmolSize[2]\r
- : x < _jmol.allowedJmolSize[0] ? _jmol.allowedJmolSize[0]\r
- : x > _jmol.allowedJmolSize[1] ? _jmol.allowedJmolSize[1] \r
- : x) + (units ? units : ""));\r
-}\r
-\r
-\r
-\r
-\r
+/* Jmol 12.0 script library Jmol.js 9:48 PM 1/31/2011 Bob Hanson
+
+ checkbox heirarchy -- see http://chemapps.stolaf.edu/jmol/docs/examples-11/check.htm
+
+ based on:
+ *
+ * Copyright (C) 2004-2005 Miguel, Jmol Development, www.jmol.org
+ *
+ * Contact: hansonr@stolaf.edu
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307 USA.
+ */
+
+// for documentation see www.jmol.org/jslibrary
+
+try{if(typeof(_jmol)!="undefined")exit()
+
+// place "?NOAPPLET" on your command line to check applet control action with a textarea
+// place "?JMOLJAR=xxxxx" to use a specific jar file
+
+// bob hanson -- jmolResize(w,h) -- resizes absolutely or by percent (w or h 0.5 means 50%)
+// angel herraez -- update of jmolResize(w,h,targetSuffix) so it is not tied to first applet
+// bob hanson -- jmolEvaluate -- evaluates molecular math 8:37 AM 2/23/2007
+// bob hanson -- jmolScriptMessage -- returns all "scriptStatus" messages 8:37 AM 2/23/2007
+// bob hanson -- jmolScriptEcho -- returns all "scriptEcho" messages 8:37 AM 2/23/2007
+// bob hanson -- jmolScriptWait -- 11:31 AM 5/2/2006
+// bob hanson -- remove trailing separatorHTML in radio groups -- 12:18 PM 5/6/2006
+// bob hanson -- adds support for dynamic DOM script nodes 7:04 AM 5/19/2006
+// bob hanson -- adds try/catch for wiki - multiple code passes 7:05 AM 5/19/2006
+// bob hanson -- auto-initiates to defaultdir/defaultjar -- change as desired.
+// bob hanson -- adding save/restore orientation w/ and w/o delay 11:49 AM 5/25/2006
+// bob hanson -- adding AjaxJS service 11:16 AM 6/3/2006
+// bob hanson -- fix for iframes not available for finding applet
+// bob hanson -- added applet fake ?NOAPPLET URL flag
+// bob hanson -- added jmolSetCallback(calbackName, funcName) 3:32 PM 6/13/2006
+// used PRIOR to jmolApplet() or jmolAppletInline()
+// added 4th array element in jmolRadioGroup -- title
+// added <span> and id around link, checkbox, radio, menu
+// fixing AJAX loads for MSIE/Opera-Mozilla incompatibility
+// -- renamed Jmol-11.js from Jmol-new.js; JmolApplet.jar from JmolAppletProto.jar
+// renamed Jmol.js for Jmol 11 distribution
+// -- modified jmolRestoreOrientation() to be immediate, no 1-second delay
+// bob hanson -- jmolScriptWait always returns a string -- 11:23 AM 9/16/2006
+// bh -- jmolCommandInput()
+// bh -- jmolSetTranslation(TF) -- forces translation even if there might be message callback issues
+// bh -- minor fixes suggested by Angel
+// bh -- adds jmolSetSyncId() and jmolGetSyncId()
+// bh 3/2008 -- adds jmolAppendInlineScript() and jmolAppendInlineArray()
+// bh 3/2008 -- fixes IE7 bug in relation to jmolLoadInlineArray()
+// bh 6/2008 -- adds jmolSetAppletWindow()
+// Angel H. 6/2008 -- added html <label> tags to checkboxes and radio buttons [in jmolCheckbox() and _jmolRadio() functions]
+// bh 7/2008 -- code fix "for(i..." not "for(var i..."
+// bh 12/2008 -- jmolLoadInline, jmolLoadInlineArray, jmolLoadInlineScript, jmolAppendInlineScript, jmolAppendInlineArray all return error message or null (Jmol 11.7.16)
+// bh 12/2008 -- jmolScriptWaitOutput() -- waits for script to complete and delivers output normally sent to console
+
+// bh 5/2009 -- Support for XHTML using jmolSetXHTML(id)
+// ah & bh 6/2009 -- New jmolResizeApplet() more flexible, similar to jmolApplet() size syntax
+// bh 11/2009 -- care in accessing top.document
+// bh 12/2009 -- added jmolSetParameter(name, value)
+// bh 12/2009 -- added PARAMS=name:value;name:value;name:value... for command line
+// bh 12/2009 -- overhaul of target checking
+// bh 1/2010 -- all _xxxx() methods ALWAYS have complete argument list
+// bh 1/2010 -- adds option to run a JavaScript function from any Jmol control.
+// This is accomplished by passing an array rather than a script:
+// jmolHref([myfunc,"my param 1", "my param 2"], "testing")
+// function myfunc(jmolControlObject, [myfunc,"my param 1", "my param 2"], target){...}
+// and allows much more flexibility with responding to controls
+// bh 4/2010 -- added jmolSetMemoryMb(nMb)
+// ah 1/2011 -- wider detection of browsers; more browsers now use the object tag instead of the applet tag;
+// fix of object tag (removed classid) accounts for change of behavior in Chrome
+// bh 3/2011 -- added jmolLoadAjax_STOLAF_NIH
+
+var defaultdir = "."
+var defaultjar = "JmolApplet.jar"
+
+
+// Note added 12:41 PM 9/21/2008 by Bob Hanson, hansonr@stolaf.edu:
+
+// JMOLJAR=xxxxx.jar on the URL for this page will override
+// the JAR file specified in the jmolInitialize() call.
+
+// The idea is that it can be very useful to test a web page with different JAR files
+// Or for an expert user to substitute a signed applet for an unsigned one
+// so as to use a broader range of models or to create JPEG files, for example.
+
+// If the JAR file is not in the current directory (has any sort of "/" in its name)
+// then the user is presented with a warning and asked whether it is OK to change Jar files.
+// The default action, if the user just presses "OK" is to NOT allow the change.
+// The user must type the word "yes" in the prompt box for the change to be approved.
+
+// If you don't want people to be able to switch in their own JAR file on your page,
+// simply set this next line to read "var allowJMOLJAR = false".
+
+
+var undefined; // for IE 5 ... wherein undefined is undefined
+
+////////////////////////////////////////////////////////////////
+// Basic Scripting infrastruture
+////////////////////////////////////////////////////////////////
+
+function jmolInitialize(codebaseDirectory, fileNameOrUseSignedApplet) {
+ if (_jmol.initialized)
+ return;
+ _jmol.initialized = true;
+ if(_jmol.jmoljar) {
+ var f = _jmol.jmoljar;
+ if (f.indexOf("/") >= 0) {
+ alert ("This web page URL is requesting that the applet used be " + f + ". This is a possible security risk, particularly if the applet is signed, because signed applets can read and write files on your local machine or network.")
+ var ok = prompt("Do you want to use applet " + f + "? ","yes or no")
+ if (ok == "yes") {
+ codebaseDirectory = f.substring(0, f.lastIndexOf("/"));
+ fileNameOrUseSignedApplet = f.substring(f.lastIndexOf("/") + 1);
+ } else {
+ _jmolGetJarFilename(fileNameOrUseSignedApplet);
+ alert("The web page URL was ignored. Continuing using " + _jmol.archivePath + ' in directory "' + codebaseDirectory + '"');
+ }
+ } else {
+ fileNameOrUseSignedApplet = f;
+ }
+ }
+ _jmolSetCodebase(codebaseDirectory);
+ _jmolGetJarFilename(fileNameOrUseSignedApplet);
+ _jmolOnloadResetForms();
+}
+
+function jmolSetTranslation(TF) {
+ _jmol.params.doTranslate = ''+TF;
+}
+
+function _jmolGetJarFilename(fileNameOrFlag) {
+ _jmol.archivePath =
+ (typeof(fileNameOrFlag) == "string" ? fileNameOrFlag : (fileNameOrFlag ? "JmolAppletSigned" : "JmolApplet") + "0.jar");
+}
+
+function jmolSetDocument(doc) {
+ _jmol.currentDocument = doc;
+}
+
+function jmolSetAppletColor(boxbgcolor, boxfgcolor, progresscolor) {
+ _jmolInitCheck();
+ _jmol.params.boxbgcolor = boxbgcolor;
+ if (boxfgcolor)
+ _jmol.params.boxfgcolor = boxfgcolor
+ else if (boxbgcolor == "white" || boxbgcolor == "#FFFFFF")
+ _jmol.params.boxfgcolor = "black";
+ else
+ _jmol.params.boxfgcolor = "white";
+ if (progresscolor)
+ _jmol.params.progresscolor = progresscolor;
+ if (_jmol.debugAlert)
+ alert(" boxbgcolor=" + _jmol.params.boxbgcolor +
+ " boxfgcolor=" + _jmol.params.boxfgcolor +
+ " progresscolor=" + _jmol.params.progresscolor);
+}
+
+function jmolSetAppletWindow(w) {
+ _jmol.appletWindow = w;
+}
+
+function jmolApplet(size, script, nameSuffix) {
+ _jmolInitCheck();
+ return _jmolApplet(size, null, script, nameSuffix);
+}
+
+////////////////////////////////////////////////////////////////
+// Basic controls
+////////////////////////////////////////////////////////////////
+
+// undefined means it wasn't there; null means it was explicitly listed as null (so as to skip it)
+
+function jmolButton(script, label, id, title) {
+ _jmolInitCheck();
+ id != undefined && id != null || (id = "jmolButton" + _jmol.buttonCount);
+ label != undefined && label != null || (label = script.substring(0, 32));
+ ++_jmol.buttonCount;
+ var scriptIndex = _jmolAddScript(script);
+ var t = "<span id=\"span_"+id+"\""+(title ? " title=\"" + title + "\"":"")+"><input type='button' name='" + id + "' id='" + id +
+ "' value='" + label +
+ "' onclick='_jmolClick(this," + scriptIndex + _jmol.targetText +
+ ")' onmouseover='_jmolMouseOver(" + scriptIndex +
+ ");return true' onmouseout='_jmolMouseOut()' " +
+ _jmol.buttonCssText + " /></span>";
+ if (_jmol.debugAlert)
+ alert(t);
+ return _jmolDocumentWrite(t);
+}
+
+function jmolCheckbox(scriptWhenChecked, scriptWhenUnchecked,
+ labelHtml, isChecked, id, title) {
+ _jmolInitCheck();
+ id != undefined && id != null || (id = "jmolCheckbox" + _jmol.checkboxCount);
+ ++_jmol.checkboxCount;
+ if (scriptWhenChecked == undefined || scriptWhenChecked == null ||
+ scriptWhenUnchecked == undefined || scriptWhenUnchecked == null) {
+ alert("jmolCheckbox requires two scripts");
+ return;
+ }
+ if (labelHtml == undefined || labelHtml == null) {
+ alert("jmolCheckbox requires a label");
+ return;
+ }
+ var indexChecked = _jmolAddScript(scriptWhenChecked);
+ var indexUnchecked = _jmolAddScript(scriptWhenUnchecked);
+ var eospan = "</span>"
+ var t = "<span id=\"span_"+id+"\""+(title ? " title=\"" + title + "\"":"")+"><input type='checkbox' name='" + id + "' id='" + id +
+ "' onclick='_jmolCbClick(this," +
+ indexChecked + "," + indexUnchecked + _jmol.targetText +
+ ")' onmouseover='_jmolCbOver(this," + indexChecked + "," +
+ indexUnchecked +
+ ");return true' onmouseout='_jmolMouseOut()' " +
+ (isChecked ? "checked='true' " : "")+ _jmol.checkboxCssText + " />"
+ if (labelHtml.toLowerCase().indexOf("<td>")>=0) {
+ t += eospan
+ eospan = "";
+ }
+ t += "<label for=\"" + id + "\">" + labelHtml + "</label>" +eospan;
+ if (_jmol.debugAlert)
+ alert(t);
+ return _jmolDocumentWrite(t);
+}
+
+function jmolStartNewRadioGroup() {
+ ++_jmol.radioGroupCount;
+}
+
+function jmolRadioGroup(arrayOfRadioButtons, separatorHtml, groupName, id, title) {
+ /*
+
+ array: [radio1,radio2,radio3...]
+ where radioN = ["script","label",isSelected,"id","title"]
+
+ */
+
+ _jmolInitCheck();
+ var type = typeof arrayOfRadioButtons;
+ if (type != "object" || type == null || ! arrayOfRadioButtons.length) {
+ alert("invalid arrayOfRadioButtons");
+ return;
+ }
+ separatorHtml != undefined && separatorHtml != null || (separatorHtml = " ");
+ var len = arrayOfRadioButtons.length;
+ jmolStartNewRadioGroup();
+ groupName || (groupName = "jmolRadioGroup" + (_jmol.radioGroupCount - 1));
+ var t = "<span id='"+(id ? id : groupName)+"'>";
+ for (var i = 0; i < len; ++i) {
+ if (i == len - 1)
+ separatorHtml = "";
+ var radio = arrayOfRadioButtons[i];
+ type = typeof radio;
+ if (type == "object") {
+ t += _jmolRadio(radio[0], radio[1], radio[2], separatorHtml, groupName, (radio.length > 3 ? radio[3]: (id ? id : groupName)+"_"+i), (radio.length > 4 ? radio[4] : 0), title);
+ } else {
+ t += _jmolRadio(radio, null, null, separatorHtml, groupName, (id ? id : groupName)+"_"+i, title);
+ }
+ }
+ t+="</span>"
+ if (_jmol.debugAlert)
+ alert(t);
+ return _jmolDocumentWrite(t);
+}
+
+
+function jmolRadio(script, labelHtml, isChecked, separatorHtml, groupName, id, title) {
+ _jmolInitCheck();
+ if (_jmol.radioGroupCount == 0)
+ ++_jmol.radioGroupCount;
+ var t = _jmolRadio(script, labelHtml, isChecked, separatorHtml, groupName, (id ? id : groupName + "_" + _jmol.radioCount), title ? title : 0);
+ if (_jmol.debugAlert)
+ alert(t);
+ return _jmolDocumentWrite(t);
+}
+
+function jmolLink(script, label, id, title) {
+ _jmolInitCheck();
+ id != undefined && id != null || (id = "jmolLink" + _jmol.linkCount);
+ label != undefined && label != null || (label = script.substring(0, 32));
+ ++_jmol.linkCount;
+ var scriptIndex = _jmolAddScript(script);
+ var t = "<span id=\"span_"+id+"\""+(title ? " title=\"" + title + "\"":"")+"><a name='" + id + "' id='" + id +
+ "' href='javascript:_jmolClick(this," + scriptIndex + _jmol.targetText + ");' onmouseover='_jmolMouseOver(" + scriptIndex +
+ ");return true;' onmouseout='_jmolMouseOut()' " +
+ _jmol.linkCssText + ">" + label + "</a></span>";
+ if (_jmol.debugAlert)
+ alert(t);
+ return _jmolDocumentWrite(t);
+}
+
+function jmolCommandInput(label, size, id, title) {
+ _jmolInitCheck();
+ id != undefined && id != null || (id = "jmolCmd" + _jmol.cmdCount);
+ label != undefined && label != null || (label = "Execute");
+ size != undefined && !isNaN(size) || (size = 60);
+ ++_jmol.cmdCount;
+ var t = "<span id=\"span_"+id+"\""+(title ? " title=\"" + title + "\"":"")+"><input name='" + id + "' id='" + id +
+ "' size='"+size+"' onkeypress='_jmolCommandKeyPress(event,\""+id+"\"" + _jmol.targetText + ")'><input type=button value = '"+label+"' onclick='jmolScript(document.getElementById(\""+id+"\").value" + _jmol.targetText + ")' /></span>";
+ if (_jmol.debugAlert)
+ alert(t);
+ return _jmolDocumentWrite(t);
+}
+
+function _jmolCommandKeyPress(e, id, target) {
+ var keycode = (window.event ? window.event.keyCode : e ? e.which : 0);
+ if (keycode == 13) {
+ var inputBox = document.getElementById(id)
+ _jmolScriptExecute(inputBox, inputBox.value, target)
+ }
+}
+
+function _jmolScriptExecute(element,script,target) {
+ if (typeof(script) == "object")
+ script[0](element, script, target)
+ else
+ jmolScript(script, target)
+}
+
+function jmolMenu(arrayOfMenuItems, size, id, title) {
+ _jmolInitCheck();
+ id != undefined && id != null || (id = "jmolMenu" + _jmol.menuCount);
+ ++_jmol.menuCount;
+ var type = typeof arrayOfMenuItems;
+ if (type != null && type == "object" && arrayOfMenuItems.length) {
+ var len = arrayOfMenuItems.length;
+ if (typeof size != "number" || size == 1)
+ size = null;
+ else if (size < 0)
+ size = len;
+ var sizeText = size ? " size='" + size + "' " : "";
+ var t = "<span id=\"span_"+id+"\""+(title ? " title=\"" + title + "\"":"")+"><select name='" + id + "' id='" + id +
+ "' onChange='_jmolMenuSelected(this" + _jmol.targetText + ")'" +
+ sizeText + _jmol.menuCssText + ">";
+ for (var i = 0; i < len; ++i) {
+ var menuItem = arrayOfMenuItems[i];
+ type = typeof menuItem;
+ var script, text;
+ var isSelected = undefined;
+ if (type == "object" && menuItem != null) {
+ script = menuItem[0];
+ text = menuItem[1];
+ isSelected = menuItem[2];
+ } else {
+ script = text = menuItem;
+ }
+ text != undefined && text != null || (text = script);
+ if (script=="#optgroup") {
+ t += "<optgroup label='" + text + "'>";
+ } else if (script=="#optgroupEnd") {
+ t += "</optgroup>";
+ } else {
+ var scriptIndex = _jmolAddScript(script);
+ var selectedText = isSelected ? "' selected='true'>" : "'>";
+ t += "<option value='" + scriptIndex + selectedText + text + "</option>";
+ }
+ }
+ t += "</select></span>";
+ if (_jmol.debugAlert)
+ alert(t);
+ return _jmolDocumentWrite(t);
+ }
+}
+
+function jmolHtml(html) {
+ return _jmolDocumentWrite(html);
+}
+
+function jmolBr() {
+ return _jmolDocumentWrite("<br />");
+}
+
+////////////////////////////////////////////////////////////////
+// advanced scripting functions
+////////////////////////////////////////////////////////////////
+
+function jmolDebugAlert(enableAlerts) {
+ _jmol.debugAlert = (enableAlerts == undefined || enableAlerts)
+}
+
+function jmolAppletInline(size, inlineModel, script, nameSuffix) {
+ _jmolInitCheck();
+ return _jmolApplet(size, _jmolSterilizeInline(inlineModel),
+ script, nameSuffix);
+}
+
+function jmolSetTarget(targetSuffix) {
+ _jmol.targetSuffix = targetSuffix;
+ _jmol.targetText = targetSuffix ? ",\"" + targetSuffix + "\"" : ",0";
+}
+
+function jmolScript(script, targetSuffix) {
+ if (script) {
+ _jmolCheckBrowser();
+ if (targetSuffix == "all") {
+ with (_jmol) {
+ for (var i = 0; i < appletSuffixes.length; ++i) {
+ var applet = _jmolGetApplet(appletSuffixes[i]);
+ if (applet) applet.script(script);
+ }
+ }
+ } else {
+ var applet=_jmolGetApplet(targetSuffix);
+ if (applet) applet.script(script);
+ }
+ }
+}
+
+function jmolLoadInline(model, targetSuffix) {
+ if (!model)return "ERROR: NO MODEL"
+ var applet=_jmolGetApplet(targetSuffix);
+ if (!applet)return "ERROR: NO APPLET"
+ if (typeof(model) == "string")
+ return applet.loadInlineString(model, "", false);
+ else
+ return applet.loadInlineArray(model, "", false);
+}
+
+
+function jmolLoadInlineScript(model, script, targetSuffix) {
+ if (!model)return "ERROR: NO MODEL"
+ var applet=_jmolGetApplet(targetSuffix);
+ if (!applet)return "ERROR: NO APPLET"
+ return applet.loadInlineString(model, script, false);
+}
+
+
+function jmolLoadInlineArray(ModelArray, script, targetSuffix) {
+ if (!model)return "ERROR: NO MODEL"
+ script || (script="")
+ var applet=_jmolGetApplet(targetSuffix);
+ if (!applet)return "ERROR: NO APPLET"
+ try {
+ return applet.loadInlineArray(ModelArray, script, false);
+ } catch (err) {
+ //IE 7 bug
+ return applet.loadInlineString(ModelArray.join("\n"), script, false);
+ }
+}
+
+function jmolAppendInlineArray(ModelArray, script, targetSuffix) {
+ if (!model)return "ERROR: NO MODEL"
+ script || (script="")
+ var applet=_jmolGetApplet(targetSuffix);
+ if (!applet)return "ERROR: NO APPLET"
+ try {
+ return applet.loadInlineArray(ModelArray, script, true);
+ } catch (err) {
+ //IE 7 bug
+ return applet.loadInlineString(ModelArray.join("\n"), script, true);
+ }
+}
+
+function jmolAppendInlineScript(model, script, targetSuffix) {
+ if (!model)return "ERROR: NO MODEL"
+ var applet=_jmolGetApplet(targetSuffix);
+ if (!applet)return "ERROR: NO APPLET"
+ return applet.loadInlineString(model, script, true);
+}
+
+function jmolCheckBrowser(action, urlOrMessage, nowOrLater) {
+ if (typeof action == "string") {
+ action = action.toLowerCase();
+ action == "alert" || action == "redirect" || action == "popup" || (action = null);
+ }
+ if (typeof action != "string")
+ alert("jmolCheckBrowser(action, urlOrMessage, nowOrLater)\n\n" +
+ "action must be 'alert', 'redirect', or 'popup'");
+ else {
+ if (typeof urlOrMessage != "string")
+ alert("jmolCheckBrowser(action, urlOrMessage, nowOrLater)\n\n" +
+ "urlOrMessage must be a string");
+ else {
+ _jmol.checkBrowserAction = action;
+ _jmol.checkBrowserUrlOrMessage = urlOrMessage;
+ }
+ }
+ if (typeof nowOrLater == "string" && nowOrLater.toLowerCase() == "now")
+ _jmolCheckBrowser();
+}
+
+////////////////////////////////////////////////////////////////
+// Cascading Style Sheet Class support
+////////////////////////////////////////////////////////////////
+
+function jmolSetAppletCssClass(appletCssClass) {
+ if (_jmol.hasGetElementById) {
+ _jmol.appletCssClass = appletCssClass;
+ _jmol.appletCssText = appletCssClass ? "class='" + appletCssClass + "' " : "";
+ }
+}
+
+function jmolSetButtonCssClass(buttonCssClass) {
+ if (_jmol.hasGetElementById) {
+ _jmol.buttonCssClass = buttonCssClass;
+ _jmol.buttonCssText = buttonCssClass ? "class='" + buttonCssClass + "' " : "";
+ }
+}
+
+function jmolSetCheckboxCssClass(checkboxCssClass) {
+ if (_jmol.hasGetElementById) {
+ _jmol.checkboxCssClass = checkboxCssClass;
+ _jmol.checkboxCssText = checkboxCssClass ? "class='" + checkboxCssClass + "' " : "";
+ }
+}
+
+function jmolSetRadioCssClass(radioCssClass) {
+ if (_jmol.hasGetElementById) {
+ _jmol.radioCssClass = radioCssClass;
+ _jmol.radioCssText = radioCssClass ? "class='" + radioCssClass + "' " : "";
+ }
+}
+
+function jmolSetLinkCssClass(linkCssClass) {
+ if (_jmol.hasGetElementById) {
+ _jmol.linkCssClass = linkCssClass;
+ _jmol.linkCssText = linkCssClass ? "class='" + linkCssClass + "' " : "";
+ }
+}
+
+function jmolSetMenuCssClass(menuCssClass) {
+ if (_jmol.hasGetElementById) {
+ _jmol.menuCssClass = menuCssClass;
+ _jmol.menuCssText = menuCssClass ? "class='" + menuCssClass + "' " : "";
+ }
+}
+
+////////////////////////////////////////////////////////////////
+// functions for INTERNAL USE ONLY which are subject to change
+// use at your own risk ... you have been WARNED!
+////////////////////////////////////////////////////////////////
+var _jmol = {
+ currentDocument: document,
+
+ debugAlert: false,
+
+ codebase: "",
+ modelbase: ".",
+
+ appletCount: 0,
+ appletSuffixes: [],
+ appletWindow: null,
+ allowedJmolSize: [25, 2048, 300], // min, max, default (pixels)
+ /* By setting the _jmol.allowedJmolSize[] variable in the webpage
+ before calling jmolApplet(), limits for applet size can be overriden.
+ 2048 standard for GeoWall (http://geowall.geo.lsa.umich.edu/home.html)
+ */
+ buttonCount: 0,
+ checkboxCount: 0,
+ linkCount: 0,
+ cmdCount: 0,
+ menuCount: 0,
+ radioCount: 0,
+ radioGroupCount: 0,
+
+ appletCssClass: null,
+ appletCssText: "",
+ buttonCssClass: null,
+ buttonCssText: "",
+ checkboxCssClass: null,
+ checkboxCssText: "",
+ java_arguments: "-Xmx512m",
+ radioCssClass: null,
+ radioCssText: "",
+ linkCssClass: null,
+ linkCssText: "",
+ menuCssClass: null,
+ menuCssText: "",
+
+ targetSuffix: 0,
+ targetText: ",0",
+ scripts: [""],
+ params: {
+ syncId: ("" + Math.random()).substring(3),
+ progressbar: "true",
+ progresscolor: "blue",
+ boxbgcolor: "black",
+ boxfgcolor: "white",
+ boxmessage: "Downloading JmolApplet ..."
+ },
+ ua: navigator.userAgent.toLowerCase(),
+ // uaVersion: parseFloat(navigator.appVersion), // not used
+
+ os: "unknown",
+ browser: "unknown",
+ browserVersion: 0,
+ hasGetElementById: !!document.getElementById,
+ isJavaEnabled: navigator.javaEnabled(),
+ // isNetscape47Win: false, // not used, N4.7 is no longer supported even for detection
+ useIEObject: false,
+ useHtml4Object: false,
+
+ windowsClassId: "clsid:8AD9C840-044E-11D1-B3E9-00805F499D93",
+ windowsCabUrl:
+ "http://java.sun.com/update/1.6.0/jinstall-6u22-windows-i586.cab",
+
+ isBrowserCompliant: false,
+ isJavaCompliant: false,
+ isFullyCompliant: false,
+
+ initialized: false,
+ initChecked: false,
+
+ browserChecked: false,
+ checkBrowserAction: "alert",
+ checkBrowserUrlOrMessage: null,
+
+ archivePath: null, // JmolApplet0.jar OR JmolAppletSigned0.jar
+
+ previousOnloadHandler: null,
+
+ jmoljar: null,
+ useNoApplet: false,
+
+ ready: {}
+}
+
+with (_jmol) {
+ function _jmolTestUA(candidate) {
+ var ua = _jmol.ua;
+ var index = ua.indexOf(candidate);
+ if (index < 0)
+ return false;
+ _jmol.browser = candidate;
+ _jmol.browserVersion = parseFloat(ua.substring(index+candidate.length+1));
+ return true;
+ }
+
+ function _jmolTestOS(candidate) {
+ if (_jmol.ua.indexOf(candidate) < 0)
+ return false;
+ _jmol.os = candidate;
+ return true;
+ }
+
+ _jmolTestUA("konqueror") ||
+ _jmolTestUA("webkit") ||
+ _jmolTestUA("omniweb") ||
+ _jmolTestUA("opera") ||
+ _jmolTestUA("webtv") ||
+ _jmolTestUA("icab") ||
+ _jmolTestUA("msie") ||
+ (_jmol.ua.indexOf("compatible") < 0 && _jmolTestUA("mozilla")); //Netscape, Mozilla, Seamonkey, Firefox and anything assimilated
+
+ _jmolTestOS("linux") ||
+ _jmolTestOS("unix") ||
+ _jmolTestOS("mac") ||
+ _jmolTestOS("win");
+
+ /* not used:
+ isNetscape47Win = (os == "win" && browser == "mozilla" &&
+ browserVersion >= 4.78 && browserVersion <= 4.8);
+ */
+
+ if (os == "win") {
+ isBrowserCompliant = hasGetElementById;
+ } else if (os == "mac") { // mac is the problem child :-(
+ if (browser == "mozilla" && browserVersion >= 5) {
+ // miguel 2004 11 17
+ // checking the plugins array does not work because
+ // Netscape 7.2 OS X still has Java 1.3.1 listed even though
+ // javaplugin.sf.net is installed to upgrade to 1.4.2
+ eval("try {var v = java.lang.System.getProperty('java.version');" +
+ " _jmol.isBrowserCompliant = v >= '1.4.2';" +
+ " } catch (e) { }");
+ } else if (browser == "opera" && browserVersion <= 7.54) {
+ isBrowserCompliant = false;
+ } else {
+ isBrowserCompliant = hasGetElementById &&
+ !((browser == "msie") ||
+ (browser == "webkit" && browserVersion < 125.12));
+ }
+ } else if (os == "linux" || os == "unix") {
+ if (browser == "konqueror" && browserVersion <= 3.3)
+ isBrowserCompliant = false;
+ else
+ isBrowserCompliant = hasGetElementById;
+ } else { // other OS
+ isBrowserCompliant = hasGetElementById;
+ }
+
+ // possibly more checks in the future for this
+ isJavaCompliant = isJavaEnabled;
+
+ isFullyCompliant = isBrowserCompliant && isJavaCompliant;
+
+ useIEObject = (os == "win" && browser == "msie" && browserVersion >= 5.5);
+ useHtml4Object =
+ (browser == "mozilla" && browserVersion >= 5) ||
+ (browser == "opera" && browserVersion >= 8) ||
+ (browser == "webkit" && browserVersion >= 412.2);
+ try {
+ if (top.location.search.indexOf("JMOLJAR=")>=0)
+ jmoljar = top.location.search.split("JMOLJAR=")[1].split("&")[0];
+ } catch(e) {
+ // can't access top.location
+ }
+ try {
+ useNoApplet = (top.location.search.indexOf("NOAPPLET")>=0);
+ } catch(e) {
+ // can't access top.document
+ }
+}
+
+function jmolSetMemoryMb(nMb) {
+ _jmol.java_arguments = "-Xmx" + Math.round(nMb) + "m"
+}
+
+function jmolSetParameter(name,value) {
+ _jmol.params[name] = value
+}
+
+function jmolSetCallback(callbackName,funcName) {
+ _jmol.params[callbackName] = funcName
+}
+
+ try {
+// note this is done FIRST, so it cannot override a setting done by the developer
+ if (top.location.search.indexOf("PARAMS=")>=0) {
+ var pars = unescape(top.location.search.split("PARAMS=")[1].split("&")[0]).split(";");
+ for (var i = 0; i < pars.length; i++) {
+ var p = pars[i].split(":");
+ jmolSetParameter(p[0],p[1]);
+ }
+ }
+ } catch(e) {
+ // can't access top.location
+ }
+
+function jmolSetSyncId(n) {
+ return _jmol.params["syncId"] = n
+}
+
+function jmolGetSyncId() {
+ return _jmol.params["syncId"]
+}
+
+function jmolSetLogLevel(n) {
+ _jmol.params.logLevel = ''+n;
+}
+
+ /* AngelH, mar2007:
+ By (re)setting these variables in the webpage before calling jmolApplet(),
+ a custom message can be provided (e.g. localized for user's language) when no Java is installed.
+ */
+if (noJavaMsg==undefined) var noJavaMsg =
+ "You do not have Java applets enabled in your web browser, or your browser is blocking this applet.<br />\n" +
+ "Check the warning message from your browser and/or enable Java applets in<br />\n" +
+ "your web browser preferences, or install the Java Runtime Environment from <a href='http://www.java.com'>www.java.com</a><br />";
+if (noJavaMsg2==undefined) var noJavaMsg2 =
+ "You do not have the<br />\n" +
+ "Java Runtime Environment<br />\n" +
+ "installed for applet support.<br />\n" +
+ "Visit <a href='http://www.java.com'>www.java.com</a>";
+function _jmolApplet(size, inlineModel, script, nameSuffix) {
+ /* AngelH, mar2007
+ Fixed percent / pixel business, to avoid browser errors:
+ put "px" where needed, avoid where not.
+
+ Bob Hanson, 1/2010
+ Fixed inline escape changing returns to |
+ */
+ with (_jmol) {
+ nameSuffix == undefined && (nameSuffix = appletCount);
+ appletSuffixes.push(nameSuffix);
+ ++appletCount;
+ script || (script = "select *");
+ var sz = _jmolGetAppletSize(size);
+ var widthAndHeight = " width='" + sz[0] + "' height='" + sz[1] + "' ";
+ var tHeader, tFooter;
+ codebase || jmolInitialize(".");
+ if (useIEObject || useHtml4Object) {
+ params.archive = archivePath;
+ params.mayscript = 'true';
+ params.codebase = codebase;
+ params.code = 'JmolApplet';
+ tHeader =
+ "<object name='jmolApplet" + nameSuffix +
+ "' id='jmolApplet" + nameSuffix + "' " + appletCssText + "\n" +
+ widthAndHeight + "\n";
+ tFooter = "</object>";
+ }
+ if (java_arguments)
+ params.java_arguments = java_arguments;
+ if (useIEObject) { // use MSFT IE6 object tag with .cab file reference
+ tHeader += " classid='" + windowsClassId + "'\n" +
+ (windowsCabUrl ? " codebase='" + windowsCabUrl + "'\n" : "") + ">\n";
+ } else if (useHtml4Object) { // use HTML4 object tag
+ tHeader += " type='application/x-java-applet'\n>\n";
+ /* " classid='java:JmolApplet'\n" + AH removed this
+ Chromium Issue 62076: Java Applets using an <object> with a classid paramater don't load.
+ http://code.google.com/p/chromium/issues/detail?id=62076
+ They say this is the correct behavior according to the spec, and there's no indication at this point
+ that WebKit will be changing the handling, so eventually Safari will acquire this behavior too.
+ Removing the classid parameter seems to be well tolerated by all browsers (even IE!).
+ */
+ } else { // use applet tag
+ tHeader =
+ "<applet name='jmolApplet" + nameSuffix +
+ "' id='jmolApplet" + nameSuffix + "' " + appletCssText + "\n" +
+ widthAndHeight + "\n" +
+ " code='JmolApplet'" +
+ " archive='" + archivePath + "' codebase='" + codebase + "'\n" +
+ " mayscript='true'>\n";
+ tFooter = "</applet>";
+ }
+ var visitJava;
+ if (useIEObject || useHtml4Object) {
+ var szX = "width:" + sz[0]
+ if ( szX.indexOf("%")==-1 ) szX+="px"
+ var szY = "height:" + sz[1]
+ if ( szY.indexOf("%")==-1 ) szY+="px"
+ visitJava =
+ "<p style='background-color:yellow; color:black; " +
+ szX + ";" + szY + ";" +
+ // why doesn't this vertical-align work?
+ "text-align:center;vertical-align:middle;'>\n" +
+ noJavaMsg +
+ "</p>";
+ } else {
+ visitJava =
+ "<table bgcolor='yellow'><tr>" +
+ "<td align='center' valign='middle' " + widthAndHeight + "><font color='black'>\n" +
+ noJavaMsg2 +
+ "</font></td></tr></table>";
+ }
+ params.loadInline = (inlineModel ? inlineModel : "");
+ params.script = (script ? _jmolSterilizeScript(script) : "");
+ var t = tHeader + _jmolParams() + visitJava + tFooter;
+ jmolSetTarget(nameSuffix);
+ ready["jmolApplet" + nameSuffix] = false;
+ if (_jmol.debugAlert)
+ alert(t);
+ return _jmolDocumentWrite(t);
+ }
+}
+
+function _jmolParams() {
+ var t = "";
+ for (var i in _jmol.params)
+ if(_jmol.params[i]!="")
+ t+=" <param name='"+i+"' value='"+_jmol.params[i]+"' />\n";
+ return t
+}
+
+function _jmolInitCheck() {
+ if (_jmol.initChecked)
+ return;
+ _jmol.initChecked = true;
+ jmolInitialize(defaultdir, defaultjar)
+}
+
+function _jmolCheckBrowser() {
+ with (_jmol) {
+ if (browserChecked)
+ return;
+ browserChecked = true;
+
+ if (isFullyCompliant)
+ return true;
+
+ if (checkBrowserAction == "redirect")
+ location.href = checkBrowserUrlOrMessage;
+ else if (checkBrowserAction == "popup")
+ _jmolPopup(checkBrowserUrlOrMessage);
+ else {
+ var msg = checkBrowserUrlOrMessage;
+ if (msg == null)
+ msg = "Your web browser is not fully compatible with Jmol\n\n" +
+ "browser: " + browser +
+ " version: " + browserVersion +
+ " os: " + os +
+ " isBrowserCompliant: " + isBrowserCompliant +
+ " isJavaCompliant: " + isJavaCompliant +
+ "\n\n" + ua;
+ alert(msg);
+ }
+ }
+ return false;
+}
+
+function jmolSetXHTML(id) {
+ _jmol.isXHTML = true
+ _jmol.XhtmlElement = null
+ _jmol.XhtmlAppendChild = false
+ if (id){
+ _jmol.XhtmlElement = document.getElementById(id)
+ _jmol.XhtmlAppendChild = true
+ }
+}
+
+function _jmolDocumentWrite(text) {
+ if (_jmol.currentDocument) {
+ if (_jmol.isXHTML && !_jmol.XhtmlElement) {
+ var s = document.getElementsByTagName("script")
+ _jmol.XhtmlElement = s.item(s.length - 1)
+ _jmol.XhtmlAppendChild = false
+ }
+ if (_jmol.XhtmlElement) {
+ _jmolDomDocumentWrite(text)
+ } else {
+ _jmol.currentDocument.write(text);
+ }
+ }
+ return text;
+}
+
+function _jmolDomDocumentWrite(data) {
+ var pt = 0
+ var Ptr = []
+ Ptr[0] = 0
+ while (Ptr[0] < data.length) {
+ var child = _jmolGetDomElement(data, Ptr)
+ if (!child)break
+ if (_jmol.XhtmlAppendChild)
+ _jmol.XhtmlElement.appendChild(child)
+ else
+ _jmol.XhtmlElement.parentNode.insertBefore(child, _jmol.XhtmlElement);
+ }
+}
+function _jmolGetDomElement(data, Ptr, closetag, lvel) {
+ var e = document.createElement("span")
+ e.innerHTML = data
+ Ptr[0] = data.length
+ return e
+
+//unnecessary?
+
+ closetag || (closetag = "")
+ lvel || (lvel = 0)
+ var pt0 = Ptr[0]
+ var pt = pt0
+ while (pt < data.length && data.charAt(pt) != "<") pt++
+ if (pt != pt0) {
+ var text = data.substring(pt0, pt)
+ Ptr[0] = pt
+ return document.createTextNode(text)
+ }
+ pt0 = ++pt
+ var ch
+ while (pt < data.length && "\n\r\t >".indexOf(ch = data.charAt(pt)) < 0) pt++
+ var tagname = data.substring(pt0, pt)
+ var e = (tagname == closetag || tagname == "/" ? ""
+ : document.createElementNS ? document.createElementNS('http://www.w3.org/1999/xhtml', tagname)
+ : document.createElement(tagname));
+ if (ch == ">") {
+ Ptr[0] = ++pt
+ return e
+ }
+ while (pt < data.length && (ch = data.charAt(pt)) != ">") {
+ while (pt < data.length && "\n\r\t ".indexOf(ch = data.charAt(pt)) >= 0) pt++
+ pt0 = pt
+ while (pt < data.length && "\n\r\t =/>".indexOf(ch = data.charAt(pt)) < 0) pt++
+ var attrname = data.substring(pt0, pt).toLowerCase()
+ if (attrname && ch != "=")
+ e.setAttribute(attrname, "true")
+ while (pt < data.length && "\n\r\t ".indexOf(ch = data.charAt(pt)) >= 0) pt++
+ if (ch == "/") {
+ Ptr[0] = pt + 2
+ return e
+ } else if (ch == "=") {
+ var quote = data.charAt(++pt)
+ pt0 = ++pt
+ while (pt < data.length && (ch = data.charAt(pt)) != quote) pt++
+ var attrvalue = data.substring(pt0, pt)
+ e.setAttribute(attrname, attrvalue)
+ pt++
+ }
+ }
+ Ptr[0] = ++pt
+ while (Ptr[0] < data.length) {
+ var child = _jmolGetDomElement(data, Ptr, "/" + tagname, lvel+1)
+ if (!child)break
+ e.appendChild(child)
+ }
+ return e
+}
+
+function _jmolPopup(url) {
+ var popup = window.open(url, "JmolPopup",
+ "left=150,top=150,height=400,width=600," +
+ "directories=yes,location=yes,menubar=yes," +
+ "toolbar=yes," +
+ "resizable=yes,scrollbars=yes,status=yes");
+ if (popup.focus)
+ poup.focus();
+}
+
+function _jmolReadyCallback(name) {
+ if (_jmol.debugAlert)
+ alert(name + " is ready");
+ _jmol.ready["" + name] = true;
+}
+
+function _jmolSterilizeScript(script) {
+ script = script.replace(/'/g, "'");
+ if (_jmol.debugAlert)
+ alert("script:\n" + script);
+ return script;
+}
+
+function _jmolSterilizeInline(model) {
+ model = model.replace(/\r|\n|\r\n/g, (model.indexOf("|") >= 0 ? "\\/n" : "|")).replace(/'/g, "'");
+ if (_jmol.debugAlert)
+ alert("inline model:\n" + model);
+ return model;
+}
+
+function _jmolRadio(script, labelHtml, isChecked, separatorHtml, groupName, id, title) {
+ ++_jmol.radioCount;
+ groupName != undefined && groupName != null || (groupName = "jmolRadioGroup" + (_jmol.radioGroupCount - 1));
+ if (!script)
+ return "";
+ labelHtml != undefined && labelHtml != null || (labelHtml = script.substring(0, 32));
+ separatorHtml || (separatorHtml = "")
+ var scriptIndex = _jmolAddScript(script);
+ var eospan = "</span>"
+ var t = "<span id=\"span_"+id+"\""+(title ? " title=\"" + title + "\"":"")+"><input name='"
+ + groupName + "' id='"+id+"' type='radio' onclick='_jmolClick(this," +
+ scriptIndex + _jmol.targetText + ");return true;' onmouseover='_jmolMouseOver(" +
+ scriptIndex + ");return true;' onmouseout='_jmolMouseOut()' " +
+ (isChecked ? "checked='true' " : "") + _jmol.radioCssText + " />"
+ if (labelHtml.toLowerCase().indexOf("<td>")>=0) {
+ t += eospan
+ eospan = "";
+ }
+ t += "<label for=\"" + id + "\">" + labelHtml + "</label>" +eospan + separatorHtml;
+
+ return t;
+}
+
+function _jmolFindApplet(target) {
+ // first look for the target in the current window
+ var applet = _jmolFindAppletInWindow(_jmol.appletWindow != null ? _jmol.appletWindow : window, target);
+ // THEN look for the target in child frames
+ if (applet == undefined)
+ applet = _jmolSearchFrames(window, target);
+ // FINALLY look for the target in sibling frames
+ if (applet == undefined)
+ applet = _jmolSearchFrames(top, target); // look starting in top frame
+ return applet;
+}
+
+function _jmolGetApplet(targetSuffix){
+ var target = "jmolApplet" + (targetSuffix ? targetSuffix : "0");
+ var applet = _jmolFindApplet(target);
+ if (applet) return applet
+ _jmol.alerted || alert("could not find applet " + target);
+ _jmol.alerted = true;
+ return null
+}
+
+function _jmolSearchFrames(win, target) {
+ var applet;
+ var frames = win.frames;
+ if (frames && frames.length) { // look in all the frames below this window
+ try{
+ for (var i = 0; i < frames.length; ++i) {
+ applet = _jmolSearchFrames(frames[i], target);
+ if (applet)
+ return applet;
+ }
+ }catch(e) {
+ if (_jmol.debugAlert)
+ alert("Jmol.js _jmolSearchFrames cannot access " + win.name + ".frame[" + i + "] consider using jmolSetAppletWindow()")
+ }
+ }
+ return applet = _jmolFindAppletInWindow(win, target)
+}
+
+function _jmolFindAppletInWindow(win, target) {
+ var doc = win.document;
+ if (doc.getElementById(target))
+ return doc.getElementById(target);
+ else if (doc.applets)
+ return doc.applets[target];
+ else
+ return doc[target];
+}
+
+function _jmolAddScript(script) {
+ if (!script)
+ return 0;
+ var index = _jmol.scripts.length;
+ _jmol.scripts[index] = script;
+ return index;
+}
+
+function _jmolClick(elementClicked, scriptIndex, targetSuffix) {
+ _jmol.element = elementClicked;
+ _jmolScriptExecute(elementClicked, _jmol.scripts[scriptIndex], targetSuffix);
+}
+
+function _jmolMenuSelected(menuObject, targetSuffix) {
+ var scriptIndex = menuObject.value;
+ if (scriptIndex != undefined) {
+ _jmolScriptExecute(menuObject, _jmol.scripts[scriptIndex], targetSuffix);
+ return;
+ }
+ var len = menuObject.length;
+ if (typeof len == "number") {
+ for (var i = 0; i < len; ++i) {
+ if (menuObject[i].selected) {
+ _jmolClick(menuObject[i], menuObject[i].value, targetSuffix);
+ return;
+ }
+ }
+ }
+ alert("?Que? menu selected bug #8734");
+}
+
+
+_jmol.checkboxMasters = {};
+_jmol.checkboxItems = {};
+
+function jmolSetCheckboxGroup(chkMaster,chkBox) {
+ var id = chkMaster;
+ if(typeof(id)=="number")id = "jmolCheckbox" + id;
+ chkMaster = document.getElementById(id);
+ if (!chkMaster)alert("jmolSetCheckboxGroup: master checkbox not found: " + id);
+ var m = _jmol.checkboxMasters[id] = {};
+ m.chkMaster = chkMaster;
+ m.chkGroup = {};
+ for (var i = 1; i < arguments.length; i++){
+ var id = arguments[i];
+ if(typeof(id)=="number")id = "jmolCheckbox" + id;
+ checkboxItem = document.getElementById(id);
+ if (!checkboxItem)alert("jmolSetCheckboxGroup: group checkbox not found: " + id);
+ m.chkGroup[id] = checkboxItem;
+ _jmol.checkboxItems[id] = m;
+ }
+}
+
+function _jmolNotifyMaster(m){
+ //called when a group item is checked
+ var allOn = true;
+ var allOff = true;
+ for (var chkBox in m.chkGroup){
+ if(m.chkGroup[chkBox].checked)
+ allOff = false;
+ else
+ allOn = false;
+ }
+ if (allOn)m.chkMaster.checked = true;
+ if (allOff)m.chkMaster.checked = false;
+ if ((allOn || allOff) && _jmol.checkboxItems[m.chkMaster.id])
+ _jmolNotifyMaster(_jmol.checkboxItems[m.chkMaster.id])
+}
+
+function _jmolNotifyGroup(m, isOn){
+ //called when a master item is checked
+ for (var chkBox in m.chkGroup){
+ var item = m.chkGroup[chkBox]
+ item.checked = isOn;
+ if (_jmol.checkboxMasters[item.id])
+ _jmolNotifyGroup(_jmol.checkboxMasters[item.id], isOn)
+ }
+}
+
+function _jmolCbClick(ckbox, whenChecked, whenUnchecked, targetSuffix) {
+ _jmol.control = ckbox
+ _jmolClick(ckbox, ckbox.checked ? whenChecked : whenUnchecked, targetSuffix);
+ if(_jmol.checkboxMasters[ckbox.id])
+ _jmolNotifyGroup(_jmol.checkboxMasters[ckbox.id], ckbox.checked)
+ if(_jmol.checkboxItems[ckbox.id])
+ _jmolNotifyMaster(_jmol.checkboxItems[ckbox.id])
+}
+
+function _jmolCbOver(ckbox, whenChecked, whenUnchecked) {
+ window.status = _jmol.scripts[ckbox.checked ? whenUnchecked : whenChecked];
+}
+
+function _jmolMouseOver(scriptIndex) {
+ window.status = _jmol.scripts[scriptIndex];
+}
+
+function _jmolMouseOut() {
+ window.status = " ";
+ return true;
+}
+
+function _jmolSetCodebase(codebase) {
+ _jmol.codebase = codebase ? codebase : ".";
+ if (_jmol.debugAlert)
+ alert("jmolCodebase=" + _jmol.codebase);
+}
+
+function _jmolOnloadResetForms() {
+ // must be evaluated ONLY once
+ _jmol.previousOnloadHandler = window.onload;
+ window.onload =
+ function() {
+ with (_jmol) {
+ if (buttonCount+checkboxCount+menuCount+radioCount+radioGroupCount > 0) {
+ var forms = document.forms;
+ for (var i = forms.length; --i >= 0; )
+ forms[i].reset();
+ }
+ if (previousOnloadHandler)
+ previousOnloadHandler();
+ }
+ }
+}
+
+////////////////////////////////////
+/////extensions for getProperty/////
+////////////////////////////////////
+
+
+function _jmolEvalJSON(s,key){
+ s=s+""
+ if(!s)return []
+ if(s.charAt(0)!="{"){
+ if(s.indexOf(" | ")>=0)s=s.replace(/\ \|\ /g, "\n")
+ return s
+ }
+ var A = eval("("+s+")")
+ if(!A)return
+ if(key && A[key])A=A[key]
+ return A
+}
+
+function _jmolEnumerateObject(A,key){
+ var sout=""
+ if(typeof(A) == "string" && A!="null"){
+ sout+="\n"+key+"=\""+A+"\""
+ }else if(!isNaN(A)||A==null){
+ sout+="\n"+key+"="+(A+""==""?"null":A)
+ }else if(A.length){
+ sout+=key+"=[]"
+ for(var i=0;i<A.length;i++){
+ sout+="\n"
+ if(typeof(A[i]) == "object"||typeof(A[i]) == "array"){
+ sout+=_jmolEnumerateObject(A[i],key+"["+i+"]")
+ }else{
+ sout+=key+"["+i+"]="+(typeof(A[i]) == "string" && A[i]!="null"?"\""+A[i].replace(/\"/g,"\\\"")+"\"":A[i])
+ }
+ }
+ }else{
+ if(key != ""){
+ sout+=key+"={}"
+ key+="."
+ }
+
+ for(var i in A){
+ sout+="\n"
+ if(typeof(A[i]) == "object"||typeof(A[i]) == "array"){
+ sout+=_jmolEnumerateObject(A[i],key+i)
+ }else{
+ sout+=key+i+"="+(typeof(A[i]) == "string" && A[i]!="null"?"\""+A[i].replace(/\"/g,"\\\"")+"\"":A[i])
+ }
+ }
+ }
+ return sout
+}
+
+
+function _jmolSortKey0(a,b){
+ return (a[0]<b[0]?1:a[0]>b[0]?-1:0)
+}
+
+function _jmolSortMessages(A){
+ if(!A || typeof(A)!="object")return []
+ var B = []
+ for(var i=A.length-1;i>=0;i--)for(var j=0;j<A[i].length;j++)B[B.length]=A[i][j]
+ if(B.length == 0) return
+ B=B.sort(_jmolSortKey0)
+ return B
+}
+
+/////////additional extensions //////////
+
+
+function _jmolDomScriptLoad(URL){
+ //open(URL) //to debug
+ _jmol.servercall=URL
+ var node = document.getElementById("_jmolScriptNode")
+ if (node && _jmol.browser!="msie"){
+ document.getElementsByTagName("HEAD")[0].removeChild(node)
+ node=null
+ }
+ if (node) {
+ node.setAttribute("src",URL)
+ } else {
+ node=document.createElement("script")
+ node.setAttribute("id","_jmolScriptNode")
+ node.setAttribute("type","text/javascript")
+ node.setAttribute("src",URL)
+ document.getElementsByTagName("HEAD")[0].appendChild(node)
+ }
+}
+
+
+function _jmolExtractPostData(url){
+ S=url.split("&POST:")
+ var s=""
+ for(var i=1;i<S.length;i++){
+ KV=S[i].split("=")
+ s+="&POSTKEY"+i+"="+KV[0]
+ s+="&POSTVALUE"+i+"="+KV[1]
+ }
+ return "&url="+escape(S[0])+s
+}
+
+function _jmolLoadModel(targetSuffix,remoteURL,array,isError,errorMessage){
+ //called by server, but in client
+ //overload this function to customize return
+ _jmol.remoteURL=remoteURL
+ isError && alert(errorMessage)
+ jmolLoadInlineScript(array.join("\n"),_jmol.optionalscript,targetSuffix)
+}
+
+//////////user property/status functions/////////
+
+function jmolGetStatus(strStatus,targetSuffix){
+ return _jmolSortMessages(jmolGetPropertyAsArray("jmolStatus",strStatus,targetSuffix))
+}
+
+function jmolGetPropertyAsArray(sKey,sValue,targetSuffix) {
+ return _jmolEvalJSON(jmolGetPropertyAsJSON(sKey,sValue,targetSuffix),sKey)
+}
+
+function jmolGetPropertyAsString(sKey,sValue,targetSuffix) {
+ var applet = _jmolGetApplet(targetSuffix);
+ sValue == undefined && (sValue="");
+ return (applet ? applet.getPropertyAsString(sKey,sValue) + "" : "")
+}
+
+function jmolGetPropertyAsJSON(sKey,sValue,targetSuffix) {
+ sValue == undefined && (sValue = "")
+ var applet = _jmolGetApplet(targetSuffix);
+ try {
+ return (applet ? applet.getPropertyAsJSON(sKey,sValue) + "" : "")
+ } catch(e) {
+ return ""
+ }
+}
+
+function jmolGetPropertyAsJavaObject(sKey,sValue,targetSuffix) {
+ sValue == undefined && (sValue = "")
+ var applet = _jmolGetApplet(targetSuffix);
+ return (applet ? applet.getProperty(sKey,sValue) : null)
+}
+
+
+function jmolDecodeJSON(s) {
+ return _jmolEnumerateObject(_jmolEvalJSON(s),"")
+}
+
+
+///////// synchronous scripting ////////
+
+function jmolScriptWait(script, targetSuffix) {
+ targetSuffix == undefined && (targetSuffix="0")
+ var Ret=jmolScriptWaitAsArray(script, targetSuffix)
+ var s = ""
+ for(var i=Ret.length;--i>=0;)
+ for(var j=0;j< Ret[i].length;j++)
+ s+=Ret[i][j]+"\n"
+ return s
+}
+
+function jmolScriptWaitOutput(script, targetSuffix) {
+ targetSuffix == undefined && (targetSuffix="0")
+ var ret = ""
+ try{
+ if (script) {
+ _jmolCheckBrowser();
+ var applet=_jmolGetApplet(targetSuffix);
+ if (applet) ret += applet.scriptWaitOutput(script);
+ }
+ }catch(e){
+ }
+ return ret;
+}
+
+function jmolEvaluate(molecularMath, targetSuffix) {
+
+ //carries out molecular math on a model
+
+ targetSuffix == undefined && (targetSuffix="0")
+ var result = "" + jmolGetPropertyAsJavaObject("evaluate", molecularMath, targetSuffix);
+ var s = result.replace(/\-*\d+/,"")
+ if (s == "" && !isNaN(parseInt(result)))return parseInt(result);
+ var s = result.replace(/\-*\d*\.\d*/,"")
+ if (s == "" && !isNaN(parseFloat(result)))return parseFloat(result);
+ return result;
+}
+
+function jmolScriptEcho(script, targetSuffix) {
+ // returns a newline-separated list of all echos from a script
+ targetSuffix == undefined && (targetSuffix="0")
+ var Ret=jmolScriptWaitAsArray(script, targetSuffix)
+ var s = ""
+ for(var i=Ret.length;--i>=0;)
+ for(var j=Ret[i].length;--j>=0;)
+ if (Ret[i][j][1] == "scriptEcho")s+=Ret[i][j][3]+"\n"
+ return s.replace(/ \| /g, "\n")
+}
+
+
+function jmolScriptMessage(script, targetSuffix) {
+ // returns a newline-separated list of all messages from a script, ending with "script completed\n"
+ targetSuffix == undefined && (targetSuffix="0")
+ var Ret=jmolScriptWaitAsArray(script, targetSuffix)
+ var s = ""
+ for(var i=Ret.length;--i>=0;)
+ for(var j=Ret[i].length;--j>=0;)
+ if (Ret[i][j][1] == "scriptStatus")s+=Ret[i][j][3]+"\n"
+ return s.replace(/ \| /g, "\n")
+}
+
+
+function jmolScriptWaitAsArray(script, targetSuffix) {
+ var ret = ""
+ try{
+ jmolGetStatus("scriptEcho,scriptMessage,scriptStatus,scriptError",targetSuffix)
+ if (script) {
+ _jmolCheckBrowser();
+ var applet=_jmolGetApplet(targetSuffix);
+ if (applet) ret += applet.scriptWait(script);
+ ret = _jmolEvalJSON(ret,"jmolStatus")
+ if(typeof ret == "object")
+ return ret
+ }
+ }catch(e){
+ }
+ return [[ret]]
+}
+
+
+
+//////////// save/restore orientation /////////////
+
+function jmolSaveOrientation(id, targetSuffix) {
+ targetSuffix == undefined && (targetSuffix="0")
+ return _jmol["savedOrientation"+id] = jmolGetPropertyAsArray("orientationInfo","info",targetSuffix).moveTo
+}
+
+function jmolRestoreOrientation(id, targetSuffix) {
+ targetSuffix == undefined && (targetSuffix="0")
+ var s=_jmol["savedOrientation"+id]
+ if (!s || s == "")return
+ s=s.replace(/1\.0/,"0")
+ return jmolScriptWait(s,targetSuffix)
+}
+
+function jmolRestoreOrientationDelayed(id, delay, targetSuffix) {
+ arguments.length < 2 && (delay=1)
+ targetSuffix == undefined && (targetSuffix="0")
+ var s=_jmol["savedOrientation"+id]
+ if (!s || s == "")return
+ s=s.replace(/1\.0/,delay)
+ return jmolScriptWait(s,targetSuffix)
+}
+
+//////////// add parameter /////////////
+/*
+ * for adding callbacks or other parameters. Use:
+
+ jmolSetDocument(0)
+ var s= jmolApplet(....)
+ s = jmolAppletAddParam(s,"messageCallback", "myFunctionName")
+ document.write(s)
+ jmolSetDocument(document) // if you want to then write buttons and such normally
+
+ */
+
+function jmolAppletAddParam(appletCode,name,value){
+ return (value == "" ? appletCode : appletCode.replace(/\<param/,"\n<param name='"+name+"' value='"+value+"' />\n<param"))
+}
+
+///////////////auto load Research Consortium for Structural Biology (RCSB) data ///////////
+
+function jmolLoadAjax_STOLAF_RCSB(fileformat,pdbid,optionalscript,targetSuffix){
+
+ _jmol.thismodel || (_jmol.thismodel = "1crn")
+ _jmol.serverURL || (_jmol.serverURL="http://fusion.stolaf.edu/chemistry/jmol/getajaxjs.cfm")
+ _jmol.RCSBserver || (_jmol.RCSBserver="http://www.rcsb.org")
+ _jmol.defaultURL_RCSB || (_jmol.defaultURL_RCSB=_jmol.RCSBserver+"/pdb/files/1CRN.CIF")
+ fileformat || (fileformat="PDB")
+ pdbid || (pdbid=prompt("Enter a 4-digit PDB ID:",_jmol.thismodel))
+ if(!pdbid || pdbid.length != 4)return ""
+ targetSuffix || (targetSuffix="0")
+ optionalscript || (optionalscript="")
+ var url=_jmol.defaultURL_RCSB.replace(/1CRN/g,pdbid.toUpperCase())
+ fileformat=="CIF" || (url=url.replace(/CIF/,fileformat))
+ _jmol.optionalscript=optionalscript
+ _jmol.thismodel=pdbid
+ _jmol.thistargetsuffix=targetSuffix
+ _jmol.thisurl=url
+ _jmol.modelArray = []
+ url=_jmol.serverURL+"?returnfunction=_jmolLoadModel&returnArray=_jmol.modelArray&id="+targetSuffix+_jmolExtractPostData(url)
+ _jmolDomScriptLoad(url)
+ return url
+}
+
+
+///////////////auto load NIH CACTVS data -- compound name or SMILES ///////////
+
+function jmolLoadAjax_STOLAF_NIH(compoundid,optionalscript,targetSuffix){
+ _jmol.thismodel || (_jmol.thismodel = "aspirin")
+ _jmol.serverURL || (_jmol.serverURL="http://fusion.stolaf.edu/chemistry/jmol/getajaxjs.cfm")
+ _jmol.defaultURL_NIH || (_jmol.defaultURL_NIH="http://cactus.nci.nih.gov/chemical/structure/FILE/file?format=sdf&get3d=True")
+ compoundid || (compoundid=prompt("Enter a compound name or a SMILES string:",_jmol.thismodel))
+ if(!compoundid)return ""
+ targetSuffix || (targetSuffix="0")
+ optionalscript || (optionalscript="")
+ var url=_jmol.defaultURL_NIH.replace(/FILE/g,compoundid)
+ _jmol.optionalscript=optionalscript
+ _jmol.thismodel=compoundid
+ _jmol.thistargetsuffix=targetSuffix
+ _jmol.thisurl=url
+ _jmol.modelArray = []
+ url=_jmol.serverURL+"?returnfunction=_jmolLoadModel&returnArray=_jmol.modelArray&id="+targetSuffix+_jmolExtractPostData(url)
+ _jmolDomScriptLoad(url)
+ return url
+}
+
+
+/////////////// St. Olaf College AJAX server -- ANY URL ///////////
+
+function jmolLoadAjax_STOLAF_ANY(url, userid, optionalscript,targetSuffix){
+ _jmol.serverURL="http://fusion.stolaf.edu/chemistry/jmol/getajaxjs.cfm"
+ _jmol.thisurlANY || (_jmol.thisurlANY = "http://www.stolaf.edu/depts/chemistry/mo/struc/data/ycp3-1.mol")
+ url || (url=prompt("Enter any (uncompressed file) URL:", _jmol.thisurlANY))
+ userid || (userid="0")
+ targetSuffix || (targetSuffix="0")
+ optionalscript || (optionalscript="")
+ _jmol.optionalscript=optionalscript
+ _jmol.thistargetsuffix=targetSuffix
+ _jmol.modelArray = []
+ _jmol.thisurl = url
+ url=_jmol.serverURL+"?returnfunction=_jmolLoadModel&returnArray=_jmol.modelArray&id="+targetSuffix+_jmolExtractPostData(url)
+ _jmolDomScriptLoad(url)
+}
+
+
+/////////////// Mineralogical Society of America (MSA) data /////////
+
+function jmolLoadAjax_MSA(key,value,optionalscript,targetSuffix){
+
+ _jmol.thiskeyMSA || (_jmol.thiskeyMSA = "mineral")
+ _jmol.thismodelMSA || (_jmol.thismodelMSA = "quartz")
+ _jmol.ajaxURL_MSA || (_jmol.ajaxURL_MSA="http://rruff.geo.arizona.edu/AMS/result.php?mineral=quartz&viewing=ajaxjs")
+ key || (key=prompt("Enter a field:", _jmol.thiskeyMSA))
+ if(!key)return ""
+ value || (value=prompt("Enter a "+key+":", _jmol.thismodelMSA))
+ if(!value)return ""
+ targetSuffix || (targetSuffix="0")
+ optionalscript || (optionalscript="")
+ optionalscript == 1 && (optionalscript='load "" {1 1 1}')
+ var url=_jmol.ajaxURL_MSA.replace(/mineral/g,key).replace(/quartz/g,value)
+ _jmol.optionalscript=optionalscript
+ _jmol.thiskeyMSA=key
+ _jmol.thismodelMSA=value
+ _jmol.thistargetsuffix=targetSuffix
+ _jmol.thisurl=url
+ _jmol.modelArray = []
+ loadModel=_jmolLoadModel
+ _jmolDomScriptLoad(url)
+ return url
+}
+
+
+
+function jmolLoadAjaxJS(url, userid, optionalscript,targetSuffix){
+ userid || (userid="0")
+ targetSuffix || (targetSuffix="0")
+ optionalscript || (optionalscript="")
+ _jmol.optionalscript=optionalscript
+ _jmol.thismodel=userid
+ _jmol.thistargetsuffix=targetSuffix
+ _jmol.modelArray = []
+ _jmol.thisurl = url
+ url+="&returnFunction=_jmolLoadModel&returnArray=_jmol.modelArray&id="+targetSuffix
+ _jmolDomScriptLoad(url)
+}
+
+
+//// in case Jmol library has already been loaded:
+
+}catch(e){}
+
+///////////////moving atoms //////////////
+
+// HIGHLY experimental!!
+
+function jmolSetAtomCoord(i,x,y,z,targetSuffix){
+ _jmolCheckBrowser();
+ var applet=_jmolGetApplet(targetSuffix);
+ if (applet) applet.getProperty('jmolViewer').setAtomCoord(i,x,y,z)
+}
+
+function jmolSetAtomCoordRelative(i,x,y,z,targetSuffix){
+ _jmolCheckBrowser();
+ var applet=_jmolGetApplet(targetSuffix);
+ if (applet) applet.getProperty('jmolViewer').setAtomCoordRelative(i,x,y,z)
+}
+
+
+///////////////applet fake for testing buttons/////////////
+
+
+if(_jmol.useNoApplet){
+ jmolApplet = function(w){
+ var s="<table style='background-color:black' width="+w+"><tr height="+w+">"
+ +"<td align=center valign=center style='background-color:white'>"
+ +"Applet would be here"
+ +"<p><textarea id=fakeApplet rows=5 cols=50></textarea>"
+ +"</td></tr></table>"
+ return _jmolDocumentWrite(s)
+ }
+
+ _jmolFindApplet = function(){return jmolApplet0}
+
+ jmolApplet0 = {
+ script: function(script){document.getElementById("fakeApplet").value="\njmolScript:\n"+script}
+ ,scriptWait: function(script){document.getElementById("fakeApplet").value="\njmolScriptWait:\n"+script}
+ ,loadInline: function(data,script){document.getElementById("fakeApplet").value="\njmolLoadInline data:\n"+data+"\n\nscript:\n"+script}
+ }
+}
+
+
+///////////////////////////////////////////
+
+ // This should no longer be needed, jmolResizeApplet() is better; kept for backwards compatibility
+ /*
+ Resizes absolutely (pixels) or by percent of window (w or h 0.5 means 50%).
+ targetSuffix is optional and defaults to zero (first applet in page).
+ Both w and h are optional, but needed if you want to use targetSuffix.
+ h defaults to w
+ w defaults to 100% of window
+ If either w or h is between 0 and 1, then it is taken as percent/100.
+ If either w or h is greater than 1, then it is taken as a size (pixels).
+ */
+function jmolResize(w,h,targetSuffix) {
+ _jmol.alerted = true;
+ var percentW = (!w ? 100 : w <= 1 && w > 0 ? w * 100 : 0);
+ var percentH = (!h ? percentW : h <= 1 && h > 0 ? h * 100 : 0);
+ if (_jmol.browser=="msie") {
+ var width=document.body.clientWidth;
+ var height=document.body.clientHeight;
+ } else {
+ var netscapeScrollWidth=15;
+ var width=window.innerWidth - netscapeScrollWidth;
+ var height=window.innerHeight-netscapeScrollWidth;
+ }
+ var applet = _jmolGetApplet(targetSuffix);
+ if(!applet)return;
+ applet.style.width = (percentW ? width * percentW/100 : w)+"px";
+ applet.style.height = (percentH ? height * percentH/100 : (h ? h : w))+"px";
+ //title=width + " " + height + " " + (new Date());
+}
+
+// 13 Jun 09 -- makes jmolResize() obsolete (kept for backwards compatibility)
+function jmolResizeApplet(size,targetSuffix) {
+ // See _jmolGetAppletSize() for the formats accepted as size [same used by jmolApplet()]
+ // Special case: an empty value for width or height is accepted, meaning no change in that dimension.
+ _jmol.alerted = true;
+ var applet = _jmolGetApplet(targetSuffix);
+ if(!applet)return;
+ var sz = _jmolGetAppletSize(size, "px");
+ sz[0] && (applet.style.width = sz[0]);
+ sz[1] && (applet.style.height = sz[1]);
+}
+
+function _jmolGetAppletSize(size, units) {
+ /* Accepts single number or 2-value array, each one can be one of:
+ percent (text string ending %), decimal 0 to 1 (percent/100), number, or text string (interpreted as nr.)
+ [width, height] array of strings is returned, with units added if specified.
+ Percent is relative to container div or element (which should have explicitly set size).
+ */
+ var width, height;
+ if ( (typeof size) == "object" && size != null ) {
+ width = size[0]; height = size[1];
+ } else {
+ width = height = size;
+ }
+ return [_jmolFixDim(width, units), _jmolFixDim(height, units)];
+}
+
+function _jmolFixDim(x, units) {
+ var sx = "" + x;
+ return (sx.length == 0 ? (units ? "" : _jmol.allowedJmolSize[2])
+ : sx.indexOf("%") == sx.length-1 ? sx
+ : (x = parseFloat(x)) <= 1 && x > 0 ? x * 100 + "%"
+ : (isNaN(x = Math.floor(x)) ? _jmol.allowedJmolSize[2]
+ : x < _jmol.allowedJmolSize[0] ? _jmol.allowedJmolSize[0]
+ : x > _jmol.allowedJmolSize[1] ? _jmol.allowedJmolSize[1]
+ : x) + (units ? units : ""));
+}
+
+
+
+
->FER_CAPAA Ferredoxin\r
------------------------------------------------------------ASYKVKLITPDGP\r
-IEFDCPDDVYILDQAEEAGHDLPYSCRAGSCSSCAGKIAGGAVDQTDGNFLDDDQLEEGWVLTCVAYPQSDV\r
-TIETHKEAELVG-\r
->FER_CAPAN Ferredoxin, chloroplast precursor\r
-MA------SVSATMISTSFMPRKPAVTSL-KPIPNVGE--ALFGLKS-A--NGGKVTCMASYKVKLITPDGP\r
-IEFDCPDNVYILDQAEEAGHDLPYSCRAGSCSSCAGKIAGGAVDQTDGNFLDDDQLEEGWVLTCVAYPQSDV\r
-TIETHKEAELVG-\r
->FER1_SOLLC Ferredoxin-1, chloroplast precursor\r
-MA------SISGTMISTSFLPRKPAVTSL-KAISNVGE--ALFGLKS-G--RNGRITCMASYKVKLITPEGP\r
-IEFECPDDVYILDQAEEEGHDLPYSCRAGSCSSCAGKVTAGSVDQSDGNFLDEDQEAAGFVLTCVAYPKGDV\r
-TIETHKEEELTA-\r
->Q93XJ9_SOLTU Ferredoxin I precursor\r
-MA------SISGTMISTSFLPRKPVVTSL-KAISNVGE--ALFGLKS-G--RNGRITCMASYKVKLITPDGP\r
-IEFECPDDVYILDQAEEEGHDLPYSCRAGSCSSCAGKVTAGTVDQSDGKFLDDDQEAAGFVLTCVAYPKCDV\r
-TIETHKEEELTA-\r
->FER1_PEA Ferredoxin-1, chloroplast precursor\r
-MATT---PALYGTAVSTSFLRTQPMPMSV-TTTKAFSN--GFLGLKT-SLKRGDLAVAMASYKVKLVTPDGT\r
-QEFECPSDVYILDHAEEVGIDLPYSCRAGSCSSCAGKVVGGEVDQSDGSFLDDEQIEAGFVLTCVAYPTSDV\r
-VIETHKEEDLTA-\r
->Q7XA98_TRIPR Ferredoxin I\r
-MATT---PALYGTAVSTSFMRRQPVPMSV-ATTTTTKAFPSGFGLKSVSTKRGDLAVAMATYKVKLITPEGP\r
-QEFDCPDDVYILDHAEEVGIELPYSCRAGSCSSCAGKVVNGNVNQEDGSFLDDEQIEGGWVLTCVAFPTSDV\r
-TIETHKEEELTA-\r
->FER1_MESCR Ferredoxin-1, chloroplast precursor\r
-MAAT--TAALSGATMSTAFAPK--TPPMTAALPTNVGR--ALFGLKS-SASR-GRVTAMAAYKVTLVTPEGK\r
-QELECPDDVYILDAAEEAGIDLPYSCRAGSCSSCAGKVTSGSVNQDDGSFLDDDQIKEGWVLTCVAYPTGDV\r
-TIETHKEEELTA-\r
->FER1_SPIOL Ferredoxin-1, chloroplast precursor\r
-MAAT--TTTMMG--MATTFVPKPQAPPMMAALPSNTGR--SLFGLKT-GSR--GGRMTMAAYKVTLVTPTGN\r
-VEFQCPDDVYILDAAEEEGIDLPYSCRAGSCSSCAGKLKTGSLNQDDQSFLDDDQIDEGWVLTCAAYPVSDV\r
-TIETHKEEELTA-\r
->FER3_RAPSA Ferredoxin, leaf L-A\r
------------------------------------------------------------ATYKVKFITPEGE\r
-QEVECDDDVYVLDAAEEAGIDLPYSCRAGSCSSCAGKVVSGSVDQSDQSFLDDDQIAEGFVLTCAAYPTSDV\r
-TIETHREEDMV--\r
->FER1_ARATH Ferredoxin-1, chloroplast precursor\r
-MAST----ALSSAIVGTSFIRRSPAPISLRSLPSANTQ--SLFGLKS-GTARGGRVTAMATYKVKFITPEGE\r
-LEVECDDDVYVLDAAEEAGIDLPYSCRAGSCSSCAGKVVSGSVDQSDQSFLDDEQIGEGFVLTCAAYPTSDV\r
-TIETHKEEDIV--\r
->FER_BRANA Ferredoxin\r
------------------------------------------------------------ATYKVKFITPEGE\r
-QEVECDDDVYVLDAAEEAGIDLPYSCRAGSCSSCAGKVVSGFVDQSDESFLDDDQIAEGFVLTCAAYPTSDV\r
-TIETHKEEELV--\r
->FER2_ARATH Ferredoxin-2, chloroplast precursor\r
-MAST----ALSSAIVSTSFLRRQQTPISLRSLPFANTQ--SLFGLKS-STARGGRVTAMATYKVKFITPEGE\r
-QEVECEEDVYVLDAAEEAGLDLPYSCRAGSCSSCAGKVVSGSIDQSDQSFLDDEQMSEGYVLTCVAYPTSDV\r
-VIETHKEEAIM--\r
->Q93Z60_ARATH At1g10960/T19D16_12\r
-MAST----ALSSAIVSTSFLRRQQTPISLRSLPFANTQ--SLFGLKS-STARGGRVTAMATYKVKFITPEGE\r
-QEVECEEDVYVLDAAEEAGLDLPYSCRAGSCSSCAGKVVSGSIDQSDQSFLDD-------------------\r
--------------\r
->FER1_MAIZE Ferredoxin-1, chloroplast precursor\r
-MATVLGSPRAPAFFFSSSSLRAAPAPTAV--ALPAAKV--GIMGRSA-SSRR--RLRAQATYNVKLITPEGE\r
-VELQVPDDVYILDQAEEDGIDLPYSCRAGSCSSCAGKVVSGSVDQSDQSYLDDGQIADGWVLTCHAYPTSDV\r
-VIETHKEEELTGA\r
->O80429_MAIZE Ferredoxin\r
-MAAT---------ALSMSILR---APPPCFSSPLRLRV--AVAKPLA-APMRRQLLRAQATYNVKLITPEGE\r
-VELQVPDDVYILDFAEEEGIDLPFSCRAGSCSSCAGKVVSGSVDQSDQSFLNDNQVADGWVLTCAAYPTSDV\r
-VIETHKEDDLL--\r
+>FER_CAPAA Ferredoxin
+-----------------------------------------------------------ASYKVKLITPDGP
+IEFDCPDDVYILDQAEEAGHDLPYSCRAGSCSSCAGKIAGGAVDQTDGNFLDDDQLEEGWVLTCVAYPQSDV
+TIETHKEAELVG-
+>FER_CAPAN Ferredoxin, chloroplast precursor
+MA------SVSATMISTSFMPRKPAVTSL-KPIPNVGE--ALFGLKS-A--NGGKVTCMASYKVKLITPDGP
+IEFDCPDNVYILDQAEEAGHDLPYSCRAGSCSSCAGKIAGGAVDQTDGNFLDDDQLEEGWVLTCVAYPQSDV
+TIETHKEAELVG-
+>FER1_SOLLC Ferredoxin-1, chloroplast precursor
+MA------SISGTMISTSFLPRKPAVTSL-KAISNVGE--ALFGLKS-G--RNGRITCMASYKVKLITPEGP
+IEFECPDDVYILDQAEEEGHDLPYSCRAGSCSSCAGKVTAGSVDQSDGNFLDEDQEAAGFVLTCVAYPKGDV
+TIETHKEEELTA-
+>Q93XJ9_SOLTU Ferredoxin I precursor
+MA------SISGTMISTSFLPRKPVVTSL-KAISNVGE--ALFGLKS-G--RNGRITCMASYKVKLITPDGP
+IEFECPDDVYILDQAEEEGHDLPYSCRAGSCSSCAGKVTAGTVDQSDGKFLDDDQEAAGFVLTCVAYPKCDV
+TIETHKEEELTA-
+>FER1_PEA Ferredoxin-1, chloroplast precursor
+MATT---PALYGTAVSTSFLRTQPMPMSV-TTTKAFSN--GFLGLKT-SLKRGDLAVAMASYKVKLVTPDGT
+QEFECPSDVYILDHAEEVGIDLPYSCRAGSCSSCAGKVVGGEVDQSDGSFLDDEQIEAGFVLTCVAYPTSDV
+VIETHKEEDLTA-
+>Q7XA98_TRIPR Ferredoxin I
+MATT---PALYGTAVSTSFMRRQPVPMSV-ATTTTTKAFPSGFGLKSVSTKRGDLAVAMATYKVKLITPEGP
+QEFDCPDDVYILDHAEEVGIELPYSCRAGSCSSCAGKVVNGNVNQEDGSFLDDEQIEGGWVLTCVAFPTSDV
+TIETHKEEELTA-
+>FER1_MESCR Ferredoxin-1, chloroplast precursor
+MAAT--TAALSGATMSTAFAPK--TPPMTAALPTNVGR--ALFGLKS-SASR-GRVTAMAAYKVTLVTPEGK
+QELECPDDVYILDAAEEAGIDLPYSCRAGSCSSCAGKVTSGSVNQDDGSFLDDDQIKEGWVLTCVAYPTGDV
+TIETHKEEELTA-
+>FER1_SPIOL Ferredoxin-1, chloroplast precursor
+MAAT--TTTMMG--MATTFVPKPQAPPMMAALPSNTGR--SLFGLKT-GSR--GGRMTMAAYKVTLVTPTGN
+VEFQCPDDVYILDAAEEEGIDLPYSCRAGSCSSCAGKLKTGSLNQDDQSFLDDDQIDEGWVLTCAAYPVSDV
+TIETHKEEELTA-
+>FER3_RAPSA Ferredoxin, leaf L-A
+-----------------------------------------------------------ATYKVKFITPEGE
+QEVECDDDVYVLDAAEEAGIDLPYSCRAGSCSSCAGKVVSGSVDQSDQSFLDDDQIAEGFVLTCAAYPTSDV
+TIETHREEDMV--
+>FER1_ARATH Ferredoxin-1, chloroplast precursor
+MAST----ALSSAIVGTSFIRRSPAPISLRSLPSANTQ--SLFGLKS-GTARGGRVTAMATYKVKFITPEGE
+LEVECDDDVYVLDAAEEAGIDLPYSCRAGSCSSCAGKVVSGSVDQSDQSFLDDEQIGEGFVLTCAAYPTSDV
+TIETHKEEDIV--
+>FER_BRANA Ferredoxin
+-----------------------------------------------------------ATYKVKFITPEGE
+QEVECDDDVYVLDAAEEAGIDLPYSCRAGSCSSCAGKVVSGFVDQSDESFLDDDQIAEGFVLTCAAYPTSDV
+TIETHKEEELV--
+>FER2_ARATH Ferredoxin-2, chloroplast precursor
+MAST----ALSSAIVSTSFLRRQQTPISLRSLPFANTQ--SLFGLKS-STARGGRVTAMATYKVKFITPEGE
+QEVECEEDVYVLDAAEEAGLDLPYSCRAGSCSSCAGKVVSGSIDQSDQSFLDDEQMSEGYVLTCVAYPTSDV
+VIETHKEEAIM--
+>Q93Z60_ARATH At1g10960/T19D16_12
+MAST----ALSSAIVSTSFLRRQQTPISLRSLPFANTQ--SLFGLKS-STARGGRVTAMATYKVKFITPEGE
+QEVECEEDVYVLDAAEEAGLDLPYSCRAGSCSSCAGKVVSGSIDQSDQSFLDD-------------------
+-------------
+>FER1_MAIZE Ferredoxin-1, chloroplast precursor
+MATVLGSPRAPAFFFSSSSLRAAPAPTAV--ALPAAKV--GIMGRSA-SSRR--RLRAQATYNVKLITPEGE
+VELQVPDDVYILDQAEEDGIDLPYSCRAGSCSSCAGKVVSGSVDQSDQSYLDDGQIADGWVLTCHAYPTSDV
+VIETHKEEELTGA
+>O80429_MAIZE Ferredoxin
+MAAT---------ALSMSILR---APPPCFSSPLRLRV--AVAKPLA-APMRRQLLRAQATYNVKLITPEGE
+VELQVPDDVYILDFAEEEGIDLPFSCRAGSCSSCAGKVVSGSVDQSDQSFLNDNQVADGWVLTCAAYPTSDV
+VIETHKEDDLL--
-HEADER OXIDOREDUCTASE/ELECTRON TRANSPORT 08-MAY-00 1GAQ \r
-ATOM 2 CA GLU A 19 20.491 30.713 36.290 1.00 74.29 C \r
-ATOM 11 CA SER A 20 24.056 29.774 37.264 1.00 72.09 C \r
-ATOM 17 CA LYS A 21 27.517 31.289 37.563 1.00 70.09 C \r
-ATOM 26 CA LYS A 22 28.794 27.865 36.481 1.00 68.64 C \r
-ATOM 35 CA GLN A 23 29.484 26.806 32.884 1.00 70.46 C \r
-ATOM 44 CA GLU A 24 26.420 25.175 31.360 1.00 72.08 C \r
-ATOM 53 CA GLU A 25 26.736 26.049 27.683 1.00 70.43 C \r
-ATOM 62 CA GLY A 26 28.299 22.912 26.233 1.00 63.14 C \r
-ATOM 66 CA VAL A 27 26.863 20.704 28.982 1.00 54.50 C \r
-ATOM 73 CA VAL A 28 25.030 17.390 28.655 1.00 48.32 C \r
-ATOM 80 CA THR A 29 23.728 14.677 30.991 1.00 44.86 C \r
-ATOM 87 CA ASN A 30 22.327 11.164 30.703 1.00 45.42 C \r
-ATOM 95 CA LEU A 31 23.332 10.459 27.102 1.00 45.42 C \r
-ATOM 103 CA TYR A 32 23.549 6.898 28.380 1.00 45.88 C \r
-ATOM 115 CA LYS A 33 21.656 5.321 31.262 1.00 47.27 C \r
-ATOM 124 CA PRO A 34 21.991 2.046 33.248 1.00 48.99 C \r
-ATOM 131 CA LYS A 35 19.339 0.560 30.970 1.00 52.75 C \r
-ATOM 140 CA GLU A 36 21.580 0.855 27.886 1.00 53.33 C \r
-ATOM 149 CA PRO A 37 25.154 2.015 28.678 1.00 47.54 C \r
-ATOM 156 CA TYR A 38 27.929 2.872 26.249 1.00 41.98 C \r
-ATOM 168 CA VAL A 39 30.355 -0.017 25.909 1.00 41.48 C \r
-ATOM 175 CA GLY A 40 33.823 1.485 25.966 1.00 37.59 C \r
-ATOM 179 CA ARG A 41 37.165 -0.277 26.122 1.00 39.77 C \r
-ATOM 190 CA CYS A 42 40.148 -0.029 28.442 1.00 36.51 C \r
-ATOM 196 CA LEU A 43 43.095 1.441 26.554 1.00 36.13 C \r
-ATOM 204 CA LEU A 44 45.231 2.023 29.649 1.00 33.55 C \r
-ATOM 212 CA ASN A 45 45.140 1.026 33.307 1.00 27.79 C \r
-ATOM 220 CA THR A 46 48.056 1.800 35.617 1.00 28.75 C \r
-ATOM 227 CA LYS A 47 48.542 1.776 39.388 1.00 30.31 C \r
-ATOM 236 CA ILE A 48 49.564 5.317 40.376 1.00 31.32 C \r
-ATOM 244 CA THR A 49 50.339 4.682 44.059 1.00 37.62 C \r
-ATOM 251 CA GLY A 50 53.585 3.317 45.460 1.00 44.49 C \r
-ATOM 255 CA ASP A 51 53.706 -0.448 46.087 1.00 52.89 C \r
-ATOM 263 CA ASP A 52 53.910 0.545 49.751 1.00 55.23 C \r
-ATOM 271 CA ALA A 53 50.816 2.767 50.056 1.00 53.34 C \r
-ATOM 276 CA PRO A 54 47.904 1.940 52.405 1.00 50.60 C \r
-ATOM 283 CA GLY A 55 45.420 1.579 49.561 1.00 50.35 C \r
-ATOM 287 CA GLU A 56 46.098 1.286 45.836 1.00 42.53 C \r
-ATOM 296 CA THR A 57 44.534 3.816 43.480 1.00 41.14 C \r
-ATOM 303 CA TRP A 58 44.540 3.423 39.708 1.00 35.60 C \r
-ATOM 317 CA HIS A 59 44.468 5.853 36.796 1.00 31.89 C \r
-ATOM 327 CA MET A 60 42.658 4.227 33.866 1.00 31.65 C \r
-ATOM 335 CA VAL A 61 41.716 5.345 30.350 1.00 30.43 C \r
-ATOM 342 CA PHE A 62 38.669 4.172 28.360 1.00 34.36 C \r
-ATOM 353 CA SER A 63 37.657 4.908 24.772 1.00 34.69 C \r
-ATOM 359 CA THR A 64 34.448 6.828 23.951 1.00 36.96 C \r
-ATOM 366 CA GLU A 65 34.691 7.644 20.254 1.00 40.08 C \r
-ATOM 375 CA GLY A 66 33.742 11.183 21.285 1.00 40.22 C \r
-ATOM 379 CA LYS A 67 30.272 9.763 22.003 1.00 41.93 C \r
-ATOM 388 CA ILE A 68 30.279 11.116 25.577 1.00 41.52 C \r
-ATOM 396 CA PRO A 69 30.791 14.926 25.537 1.00 42.35 C \r
-ATOM 403 CA TYR A 70 31.228 15.232 29.299 1.00 39.84 C \r
-ATOM 415 CA ARG A 71 32.639 18.451 30.768 1.00 44.14 C \r
-ATOM 426 CA GLU A 72 35.122 19.278 33.515 1.00 43.82 C \r
-ATOM 435 CA GLY A 73 33.472 18.458 36.835 1.00 41.97 C \r
-ATOM 439 CA GLN A 74 30.929 15.874 35.657 1.00 37.19 C \r
-ATOM 448 CA SER A 75 31.285 12.124 36.138 1.00 38.28 C \r
-ATOM 454 CA ILE A 76 30.458 8.792 34.539 1.00 36.84 C \r
-ATOM 462 CA GLY A 77 28.983 5.620 35.918 1.00 35.39 C \r
-ATOM 466 CA VAL A 78 30.311 2.108 35.530 1.00 32.05 C \r
-ATOM 473 CA ILE A 79 28.458 -1.201 35.591 1.00 32.67 C \r
-ATOM 481 CA ALA A 80 30.745 -4.018 36.644 1.00 35.36 C \r
-ATOM 486 CA ASP A 81 30.359 -7.373 34.872 1.00 38.72 C \r
-ATOM 494 CA GLY A 82 28.308 -10.332 36.110 1.00 45.79 C \r
-ATOM 498 CA VAL A 83 25.820 -10.242 39.001 1.00 52.24 C \r
-ATOM 505 CA ASP A 84 25.838 -10.250 42.834 1.00 60.54 C \r
-ATOM 513 CA LYS A 85 25.014 -13.158 45.196 1.00 66.72 C \r
-ATOM 522 CA ASN A 86 21.414 -13.062 43.904 1.00 67.37 C \r
-ATOM 530 CA GLY A 87 21.724 -13.423 40.136 1.00 64.74 C \r
-ATOM 534 CA LYS A 88 20.971 -9.733 39.570 1.00 61.12 C \r
-ATOM 543 CA PRO A 89 23.054 -7.201 37.561 1.00 54.68 C \r
-ATOM 550 CA HIS A 90 25.224 -4.957 39.755 1.00 44.44 C \r
-ATOM 560 CA LYS A 91 23.940 -1.433 40.260 1.00 40.48 C \r
-ATOM 569 CA VAL A 92 25.803 1.546 38.843 1.00 38.45 C \r
-ATOM 576 CA ARG A 93 28.709 2.986 40.828 1.00 38.93 C \r
-ATOM 587 CA LEU A 94 29.778 6.584 40.096 1.00 34.37 C \r
-ATOM 595 CA TYR A 95 33.309 7.878 39.513 1.00 30.27 C \r
-ATOM 607 CA SER A 96 34.425 11.475 39.057 1.00 29.44 C \r
-ATOM 613 CA ILE A 97 36.029 12.090 35.662 1.00 27.61 C \r
-ATOM 621 CA ALA A 98 39.769 12.693 36.069 1.00 31.12 C \r
-ATOM 626 CA SER A 99 40.393 13.712 32.475 1.00 32.42 C \r
-ATOM 632 CA SER A 100 39.566 17.142 31.059 1.00 36.14 C \r
-ATOM 638 CA ALA A 101 37.097 17.367 28.154 1.00 41.07 C \r
-ATOM 643 CA ILE A 102 39.764 16.549 25.527 1.00 47.65 C \r
-ATOM 651 CA GLY A 103 41.172 13.692 27.599 1.00 46.77 C \r
-ATOM 655 CA ASP A 104 44.730 12.612 28.289 1.00 43.82 C \r
-ATOM 663 CA PHE A 105 45.115 12.065 24.522 1.00 41.52 C \r
-ATOM 674 CA GLY A 106 43.862 15.455 23.328 1.00 41.66 C \r
-ATOM 678 CA ASP A 107 41.355 13.883 20.926 1.00 40.90 C \r
-ATOM 686 CA SER A 108 38.132 14.250 22.954 1.00 42.95 C \r
-ATOM 692 CA LYS A 109 37.967 10.535 22.224 1.00 44.74 C \r
-ATOM 701 CA THR A 110 38.731 9.184 25.704 1.00 41.09 C \r
-ATOM 708 CA VAL A 111 37.728 9.519 29.374 1.00 39.03 C \r
-ATOM 715 CA SER A 112 39.912 8.705 32.399 1.00 37.17 C \r
-ATOM 721 CA LEU A 113 39.098 7.476 35.935 1.00 32.10 C \r
-ATOM 729 CA CYS A 114 40.964 7.578 39.261 1.00 30.65 C \r
-ATOM 735 CA VAL A 115 39.724 4.459 41.060 1.00 33.45 C \r
-ATOM 742 CA LYS A 116 40.668 3.524 44.628 1.00 34.75 C \r
-ATOM 751 CA ARG A 117 40.376 -0.250 45.123 1.00 32.85 C \r
-ATOM 762 CA LEU A 118 38.137 -1.094 48.077 1.00 30.50 C \r
-ATOM 770 CA ILE A 119 39.376 -3.752 50.459 1.00 34.34 C \r
-ATOM 778 CA TYR A 120 38.699 -4.266 54.125 1.00 31.39 C \r
-ATOM 790 CA THR A 121 38.264 -7.086 56.567 1.00 28.83 C \r
-ATOM 797 CA ASN A 122 34.792 -7.477 58.109 1.00 26.51 C \r
-ATOM 805 CA ASP A 123 33.626 -8.382 61.634 1.00 31.58 C \r
-ATOM 813 CA ALA A 124 34.191 -12.077 60.901 1.00 27.84 C \r
-ATOM 818 CA GLY A 125 37.759 -11.844 59.728 1.00 32.39 C \r
-ATOM 822 CA GLU A 126 36.809 -12.146 56.073 1.00 35.82 C \r
-ATOM 831 CA ILE A 127 38.655 -9.932 53.598 1.00 38.42 C \r
-ATOM 839 CA VAL A 128 36.025 -8.261 51.421 1.00 33.73 C \r
-ATOM 846 CA LYS A 129 36.482 -6.484 48.090 1.00 31.87 C \r
-ATOM 855 CA GLY A 130 34.363 -3.680 46.686 1.00 26.91 C \r
-ATOM 859 CA VAL A 131 32.680 -5.051 43.569 1.00 27.89 C \r
-ATOM 866 CA CYS A 132 33.074 -2.246 41.018 1.00 28.46 C \r
-ATOM 872 CA SER A 133 36.266 -0.553 42.213 1.00 31.33 C \r
-ATOM 878 CA ASN A 134 37.861 -3.983 41.984 1.00 30.29 C \r
-ATOM 886 CA PHE A 135 36.318 -4.795 38.623 1.00 31.48 C \r
-ATOM 897 CA LEU A 136 37.926 -1.553 37.520 1.00 27.81 C \r
-ATOM 905 CA CYS A 137 41.417 -1.976 38.955 1.00 25.91 C \r
-ATOM 911 CA ASP A 138 41.605 -5.419 37.338 1.00 30.22 C \r
-ATOM 919 CA LEU A 139 40.462 -4.306 33.874 1.00 32.69 C \r
-ATOM 927 CA GLN A 140 42.851 -5.511 31.186 1.00 36.80 C \r
-ATOM 936 CA PRO A 141 43.380 -3.220 28.170 1.00 36.16 C \r
-ATOM 943 CA GLY A 142 40.864 -4.420 25.586 1.00 31.10 C \r
-ATOM 947 CA ASP A 143 38.129 -5.298 28.055 1.00 30.62 C \r
-ATOM 955 CA ASN A 144 34.690 -3.847 27.645 1.00 33.52 C \r
-ATOM 963 CA VAL A 145 33.430 -1.522 30.361 1.00 37.08 C \r
-ATOM 970 CA GLN A 146 29.817 -0.374 30.523 1.00 37.65 C \r
-ATOM 979 CA ILE A 147 29.547 3.413 31.045 1.00 30.95 C \r
-ATOM 987 CA THR A 148 26.637 5.791 31.832 1.00 29.95 C \r
-ATOM 994 CA GLY A 149 26.297 9.581 31.843 1.00 32.81 C \r
-ATOM 998 CA PRO A 150 27.785 12.148 31.800 1.00 34.98 C \r
-ATOM 1005 CA VAL A 151 26.376 12.668 35.275 1.00 36.53 C \r
-ATOM 1012 CA GLY A 152 26.196 15.756 37.474 1.00 43.09 C \r
-ATOM 1016 CA LYS A 153 26.048 19.528 37.068 1.00 48.37 C \r
-ATOM 1025 CA GLU A 154 26.921 20.540 40.633 1.00 49.70 C \r
-ATOM 1034 CA MET A 155 30.710 20.266 40.235 1.00 47.30 C \r
-ATOM 1042 CA LEU A 156 30.882 22.020 36.869 1.00 50.36 C \r
-ATOM 1050 CA MET A 157 33.362 24.883 36.404 1.00 55.29 C \r
-ATOM 1058 CA PRO A 158 32.521 28.612 36.605 1.00 54.88 C \r
-ATOM 1065 CA LYS A 159 32.291 30.776 33.464 1.00 54.92 C \r
-ATOM 1074 CA ASP A 160 34.497 33.503 34.939 1.00 57.22 C \r
-ATOM 1082 CA PRO A 161 38.055 32.687 33.759 1.00 58.62 C \r
-ATOM 1089 CA ASN A 162 39.524 35.240 36.163 1.00 60.44 C \r
-ATOM 1097 CA ALA A 163 37.814 33.910 39.279 1.00 55.80 C \r
-ATOM 1102 CA THR A 164 39.596 32.487 42.316 1.00 51.04 C \r
-ATOM 1109 CA ILE A 165 38.966 28.771 42.756 1.00 50.26 C \r
-ATOM 1117 CA ILE A 166 39.774 26.773 45.885 1.00 47.54 C \r
-ATOM 1125 CA MET A 167 39.883 23.014 45.324 1.00 46.38 C \r
-ATOM 1133 CA LEU A 168 39.700 20.963 48.522 1.00 42.18 C \r
-ATOM 1141 CA ALA A 169 40.377 17.316 47.770 1.00 36.41 C \r
-ATOM 1146 CA THR A 170 41.005 14.086 49.622 1.00 32.98 C \r
-ATOM 1153 CA GLY A 171 42.027 10.802 48.014 1.00 31.36 C \r
-ATOM 1157 CA THR A 172 40.386 10.037 44.680 1.00 30.48 C \r
-ATOM 1164 CA GLY A 173 38.640 13.335 45.359 1.00 33.99 C \r
-ATOM 1168 CA ILE A 174 41.418 15.036 43.394 1.00 35.66 C \r
-ATOM 1176 CA ALA A 175 39.758 13.585 40.300 1.00 36.00 C \r
-ATOM 1181 CA PRO A 176 37.445 16.385 39.155 1.00 39.41 C \r
-ATOM 1188 CA PHE A 177 40.109 18.971 39.976 1.00 43.21 C \r
-ATOM 1199 CA ARG A 178 42.726 17.119 37.955 1.00 41.09 C \r
-ATOM 1210 CA SER A 179 40.235 17.536 35.124 1.00 39.92 C \r
-ATOM 1216 CA PHE A 180 39.808 21.204 36.009 1.00 39.23 C \r
-ATOM 1227 CA LEU A 181 43.528 21.949 35.995 1.00 39.50 C \r
-ATOM 1235 CA TRP A 182 44.305 20.081 32.770 1.00 41.47 C \r
-ATOM 1249 CA LYS A 183 42.141 22.654 30.972 1.00 48.08 C \r
-ATOM 1258 CA MET A 184 43.477 25.547 33.062 1.00 52.79 C \r
-ATOM 1266 CA PHE A 185 47.102 25.043 32.014 1.00 57.35 C \r
-ATOM 1277 CA PHE A 186 48.075 21.921 30.051 1.00 55.98 C \r
-ATOM 1288 CA GLU A 187 45.758 23.173 27.297 1.00 54.44 C \r
-ATOM 1297 CA LYS A 188 44.908 26.236 25.196 1.00 51.29 C \r
-ATOM 1306 CA HIS A 189 41.395 27.080 24.003 1.00 51.35 C \r
-ATOM 1316 CA ASP A 190 40.108 29.972 21.873 1.00 54.30 C \r
-ATOM 1324 CA ASP A 191 37.199 30.481 24.249 1.00 53.95 C \r
-ATOM 1332 CA TYR A 192 38.816 29.937 27.634 1.00 50.68 C \r
-ATOM 1344 CA LYS A 193 41.916 31.388 29.230 1.00 51.00 C \r
-ATOM 1353 CA PHE A 194 42.322 30.967 32.956 1.00 52.09 C \r
-ATOM 1364 CA ASN A 195 43.672 34.234 34.312 1.00 56.46 C \r
-ATOM 1372 CA GLY A 196 42.616 34.078 37.969 1.00 57.17 C \r
-ATOM 1376 CA LEU A 197 43.874 31.920 40.843 1.00 57.92 C \r
-ATOM 1384 CA GLY A 198 43.549 28.151 41.086 1.00 56.67 C \r
-ATOM 1388 CA TRP A 199 44.258 26.886 44.592 1.00 51.55 C \r
-ATOM 1402 CA LEU A 200 44.411 23.170 45.379 1.00 49.17 C \r
-ATOM 1410 CA PHE A 201 44.558 21.335 48.709 1.00 48.60 C \r
-ATOM 1421 CA LEU A 202 45.122 17.570 48.598 1.00 45.34 C \r
-ATOM 1429 CA GLY A 203 44.885 15.480 51.742 1.00 48.55 C \r
-ATOM 1433 CA VAL A 204 46.225 11.936 51.755 1.00 50.23 C \r
-ATOM 1440 CA PRO A 205 47.942 9.740 54.365 1.00 51.51 C \r
-ATOM 1447 CA THR A 206 51.284 9.148 52.648 1.00 50.21 C \r
-ATOM 1454 CA SER A 207 53.551 10.483 49.894 1.00 49.38 C \r
-ATOM 1460 CA SER A 208 53.267 7.061 48.259 1.00 43.49 C \r
-ATOM 1466 CA SER A 209 49.588 8.049 48.093 1.00 42.57 C \r
-ATOM 1472 CA LEU A 210 49.990 11.424 46.364 1.00 42.65 C \r
-ATOM 1480 CA LEU A 211 48.121 11.446 43.035 1.00 39.33 C \r
-ATOM 1488 CA TYR A 212 49.516 13.214 39.935 1.00 40.89 C \r
-ATOM 1500 CA LYS A 213 52.128 15.234 41.873 1.00 45.88 C \r
-ATOM 1509 CA GLU A 214 54.518 15.406 38.899 1.00 53.22 C \r
-ATOM 1518 CA GLU A 215 51.680 16.911 36.889 1.00 55.16 C \r
-ATOM 1527 CA PHE A 216 50.757 19.475 39.514 1.00 60.55 C \r
-ATOM 1538 CA GLY A 217 54.488 20.153 39.524 1.00 66.64 C \r
-ATOM 1542 CA LYS A 218 54.575 21.110 35.850 1.00 68.86 C \r
-ATOM 1551 CA MET A 219 51.398 23.159 36.265 1.00 66.97 C \r
-ATOM 1559 CA LYS A 220 53.138 25.090 39.061 1.00 65.97 C \r
-ATOM 1568 CA GLU A 221 55.654 26.250 36.459 1.00 70.02 C \r
-ATOM 1577 CA ARG A 222 53.584 26.507 33.294 1.00 73.48 C \r
-ATOM 1588 CA ALA A 223 52.005 29.449 35.175 1.00 76.21 C \r
-ATOM 1593 CA PRO A 224 53.272 29.877 38.804 1.00 79.25 C \r
-ATOM 1600 CA GLU A 225 51.296 33.124 39.020 1.00 81.84 C \r
-ATOM 1609 CA ASN A 226 47.873 31.528 38.622 1.00 78.84 C \r
-ATOM 1617 CA PHE A 227 48.418 28.176 40.350 1.00 75.28 C \r
-ATOM 1628 CA ARG A 228 49.090 27.305 43.996 1.00 72.05 C \r
-ATOM 1639 CA VAL A 229 49.165 23.724 45.323 1.00 68.82 C \r
-ATOM 1646 CA ASP A 230 49.258 22.581 48.958 1.00 66.54 C \r
-ATOM 1654 CA TYR A 231 49.605 18.943 49.968 1.00 60.31 C \r
-ATOM 1666 CA ALA A 232 48.551 17.560 53.332 1.00 57.39 C \r
-ATOM 1671 CA VAL A 233 50.260 14.228 53.945 1.00 57.14 C \r
-ATOM 1678 CA SER A 234 48.465 13.579 57.244 1.00 60.81 C \r
-ATOM 1684 CA ARG A 235 50.959 11.010 58.514 1.00 60.74 C \r
-ATOM 1695 CA GLU A 236 54.268 12.594 57.481 1.00 59.17 C \r
-ATOM 1704 CA GLN A 237 53.494 16.197 58.450 1.00 59.62 C \r
-ATOM 1713 CA THR A 238 52.590 18.236 61.521 1.00 63.18 C \r
-ATOM 1720 CA ASN A 239 52.019 21.937 62.188 1.00 66.71 C \r
-ATOM 1728 CA ALA A 240 52.096 23.767 65.537 1.00 70.06 C \r
-ATOM 1733 CA ALA A 241 51.302 21.400 68.410 1.00 72.44 C \r
-ATOM 1738 CA GLY A 242 52.383 18.324 66.438 1.00 72.38 C \r
-ATOM 1742 CA GLU A 243 48.826 18.169 65.110 1.00 69.71 C \r
-ATOM 1751 CA ARG A 244 48.674 15.776 62.148 1.00 67.21 C \r
-ATOM 1762 CA MET A 245 48.712 17.796 58.933 1.00 64.20 C \r
-ATOM 1770 CA TYR A 246 45.246 17.082 57.556 1.00 60.65 C \r
-ATOM 1782 CA ILE A 247 43.617 18.437 54.409 1.00 62.98 C \r
-ATOM 1790 CA GLN A 248 42.035 21.001 56.761 1.00 64.64 C \r
-ATOM 1799 CA THR A 249 45.057 21.461 59.009 1.00 63.37 C \r
-ATOM 1806 CA ARG A 250 46.891 22.664 55.903 1.00 62.47 C \r
-ATOM 1817 CA MET A 251 44.123 25.201 55.251 1.00 63.35 C \r
-ATOM 1825 CA ALA A 252 44.571 26.305 58.854 1.00 65.73 C \r
-ATOM 1830 CA GLU A 253 47.973 27.809 58.076 1.00 65.97 C \r
-ATOM 1839 CA TYR A 254 46.267 30.063 55.517 1.00 65.83 C \r
-ATOM 1851 CA LYS A 255 42.991 30.559 57.379 1.00 70.30 C \r
-ATOM 1860 CA GLU A 256 43.578 34.326 57.320 1.00 73.73 C \r
-ATOM 1869 CA GLU A 257 44.189 34.738 53.593 1.00 71.52 C \r
-ATOM 1878 CA LEU A 258 41.459 32.202 52.893 1.00 73.38 C \r
-ATOM 1886 CA TRP A 259 38.790 34.074 54.853 1.00 76.72 C \r
-ATOM 1900 CA GLU A 260 39.721 37.275 53.006 1.00 78.61 C \r
-ATOM 1909 CA LEU A 261 38.580 35.553 49.815 1.00 75.71 C \r
-ATOM 1917 CA LEU A 262 35.391 33.881 51.047 1.00 73.74 C \r
-ATOM 1925 CA LYS A 263 33.562 37.165 50.535 1.00 73.64 C \r
-ATOM 1934 CA LYS A 264 34.299 38.143 46.954 1.00 72.48 C \r
-ATOM 1943 CA ASP A 265 31.954 37.554 43.993 1.00 69.65 C \r
-ATOM 1951 CA ASN A 266 34.660 35.649 42.106 1.00 65.06 C \r
-ATOM 1959 CA THR A 267 35.835 33.117 44.683 1.00 58.24 C \r
-ATOM 1966 CA TYR A 268 34.459 29.646 43.909 1.00 51.04 C \r
-ATOM 1978 CA VAL A 269 35.192 26.827 46.382 1.00 44.95 C \r
-ATOM 1985 CA TYR A 270 35.012 23.150 45.368 1.00 44.96 C \r
-ATOM 1997 CA MET A 271 35.162 20.122 47.656 1.00 41.72 C \r
-ATOM 2005 CA CYS A 272 35.314 16.468 46.632 1.00 37.19 C \r
-ATOM 2011 CA GLY A 273 36.343 13.080 47.951 1.00 37.65 C \r
-ATOM 2015 CA LEU A 274 36.040 10.886 51.020 1.00 39.39 C \r
-ATOM 2023 CA LYS A 275 33.076 12.283 52.955 1.00 44.86 C \r
-ATOM 2032 CA GLY A 276 34.322 13.183 56.400 1.00 49.16 C \r
-ATOM 2036 CA MET A 277 36.932 15.608 55.168 1.00 53.30 C \r
-ATOM 2044 CA GLU A 278 33.917 17.921 55.165 1.00 56.74 C \r
-ATOM 2053 CA LYS A 279 33.531 18.089 58.947 1.00 59.30 C \r
-ATOM 2062 CA GLY A 280 36.982 19.413 59.776 1.00 58.94 C \r
-ATOM 2066 CA ILE A 281 36.705 22.048 57.063 1.00 61.43 C \r
-ATOM 2074 CA ASP A 282 33.453 23.402 58.515 1.00 67.06 C \r
-ATOM 2082 CA ASP A 283 35.050 23.189 61.972 1.00 74.12 C \r
-ATOM 2090 CA ILE A 284 37.991 25.422 61.040 1.00 78.49 C \r
-ATOM 2098 CA MET A 285 35.456 27.566 59.201 1.00 82.25 C \r
-ATOM 2106 CA VAL A 286 32.941 27.959 62.027 1.00 83.44 C \r
-ATOM 2113 CA SER A 287 35.610 29.113 64.469 1.00 83.43 C \r
-ATOM 2119 CA LEU A 288 36.927 31.601 61.887 1.00 85.53 C \r
-ATOM 2127 CA ALA A 289 33.506 33.025 60.970 1.00 86.85 C \r
-ATOM 2132 CA GLU A 290 31.841 32.696 64.387 1.00 89.26 C \r
-ATOM 2141 CA LYS A 291 34.438 35.312 65.347 1.00 88.73 C \r
-ATOM 2150 CA ASP A 292 33.635 37.891 62.652 1.00 88.03 C \r
-ATOM 2158 CA GLY A 293 30.219 37.450 61.081 1.00 87.88 C \r
-ATOM 2162 CA ILE A 294 27.319 35.051 61.511 1.00 84.61 C \r
-ATOM 2170 CA ASP A 295 27.665 31.329 62.188 1.00 82.45 C \r
-ATOM 2178 CA TRP A 296 29.539 29.627 59.355 1.00 80.12 C \r
-ATOM 2192 CA PHE A 297 26.527 27.452 58.512 1.00 78.99 C \r
-ATOM 2203 CA ASP A 298 24.167 30.241 57.486 1.00 76.37 C \r
-ATOM 2211 CA TYR A 299 27.074 31.748 55.561 1.00 74.07 C \r
-ATOM 2223 CA LYS A 300 27.679 28.620 53.473 1.00 74.31 C \r
-ATOM 2232 CA LYS A 301 24.059 29.146 52.464 1.00 75.97 C \r
-ATOM 2241 CA GLN A 302 24.921 32.563 51.018 1.00 75.38 C \r
-ATOM 2250 CA LEU A 303 27.896 31.099 49.155 1.00 72.10 C \r
-ATOM 2258 CA LYS A 304 25.917 28.207 47.690 1.00 72.08 C \r
-ATOM 2267 CA ARG A 305 23.595 31.021 46.594 1.00 74.82 C \r
-ATOM 2278 CA GLY A 306 26.071 32.136 43.958 1.00 71.84 C \r
-ATOM 2282 CA ASP A 307 27.505 28.682 43.220 1.00 67.23 C \r
-ATOM 2290 CA GLN A 308 30.620 29.291 45.346 1.00 60.18 C \r
-ATOM 2299 CA TRP A 309 30.585 26.177 47.537 1.00 52.25 C \r
-ATOM 2313 CA ASN A 310 29.894 22.997 45.597 1.00 45.03 C \r
-ATOM 2321 CA VAL A 311 30.327 19.716 47.403 1.00 39.13 C \r
-ATOM 2328 CA GLU A 312 30.507 16.190 46.110 1.00 35.17 C \r
-ATOM 2337 CA VAL A 313 31.761 13.957 48.861 1.00 30.12 C \r
-ATOM 2344 CA TYR A 314 31.112 10.230 49.021 1.00 28.23 C \r
-ATOM 2358 CA ALA B 1 2.311 24.702 44.475 1.00 74.17 C \r
-ATOM 2363 CA THR B 2 3.590 24.207 48.055 1.00 74.76 C \r
-ATOM 2370 CA TYR B 3 3.069 20.876 49.837 1.00 73.52 C \r
-ATOM 2382 CA ASN B 4 3.748 19.874 53.435 1.00 75.75 C \r
-ATOM 2390 CA VAL B 5 6.618 17.399 53.868 1.00 75.95 C \r
-ATOM 2397 CA LYS B 6 7.769 15.523 56.983 1.00 77.70 C \r
-ATOM 2406 CA LEU B 7 11.351 14.325 57.458 1.00 78.91 C \r
-ATOM 2414 CA ILE B 8 11.807 11.511 59.985 1.00 81.00 C \r
-ATOM 2422 CA THR B 9 15.560 12.046 60.247 1.00 87.49 C \r
-ATOM 2429 CA PRO B 10 17.662 9.793 62.539 1.00 92.94 C \r
-ATOM 2436 CA GLU B 11 18.161 13.147 64.282 1.00 96.61 C \r
-ATOM 2445 CA GLY B 12 14.579 14.154 65.041 1.00 97.52 C \r
-ATOM 2449 CA GLU B 13 11.602 14.823 62.748 1.00 96.90 C \r
-ATOM 2458 CA VAL B 14 11.547 17.892 60.480 1.00 96.63 C \r
-ATOM 2465 CA GLU B 15 8.340 19.701 59.440 1.00 94.86 C \r
-ATOM 2474 CA LEU B 16 9.471 21.479 56.254 1.00 91.55 C \r
-ATOM 2482 CA GLN B 17 7.281 23.141 53.598 1.00 89.75 C \r
-ATOM 2491 CA VAL B 18 8.485 22.069 50.145 1.00 87.92 C \r
-ATOM 2498 CA PRO B 19 6.906 23.558 46.964 1.00 86.35 C \r
-ATOM 2505 CA ASP B 20 5.990 21.744 43.717 1.00 86.29 C \r
-ATOM 2513 CA ASP B 21 8.578 22.751 41.083 1.00 83.78 C \r
-ATOM 2521 CA VAL B 22 11.385 22.401 43.639 1.00 80.98 C \r
-ATOM 2528 CA TYR B 23 13.439 19.280 44.481 1.00 77.04 C \r
-ATOM 2540 CA ILE B 24 13.212 18.196 48.120 1.00 76.45 C \r
-ATOM 2548 CA LEU B 25 16.959 18.133 48.851 1.00 75.15 C \r
-ATOM 2556 CA ASP B 26 17.154 21.745 47.689 1.00 75.80 C \r
-ATOM 2564 CA GLN B 27 14.616 22.906 50.280 1.00 76.31 C \r
-ATOM 2573 CA ALA B 28 16.562 20.957 52.914 1.00 78.86 C \r
-ATOM 2578 CA GLU B 29 19.698 23.011 52.198 1.00 81.51 C \r
-ATOM 2587 CA GLU B 30 17.491 26.106 52.510 1.00 83.25 C \r
-ATOM 2596 CA ASP B 31 15.857 25.933 55.935 1.00 81.92 C \r
-ATOM 2604 CA GLY B 32 19.280 24.859 57.151 1.00 79.08 C \r
-ATOM 2608 CA ILE B 33 18.621 21.130 57.157 1.00 76.93 C \r
-ATOM 2616 CA ASP B 34 21.528 18.731 56.618 1.00 73.53 C \r
-ATOM 2624 CA LEU B 35 20.738 15.738 54.421 1.00 67.74 C \r
-ATOM 2632 CA PRO B 36 23.138 13.391 52.547 1.00 65.90 C \r
-ATOM 2639 CA TYR B 37 23.916 14.226 48.912 1.00 64.85 C \r
-ATOM 2651 CA SER B 38 26.659 13.373 46.412 1.00 62.58 C \r
-ATOM 2657 CA CYS B 39 26.193 13.603 42.652 1.00 60.99 C \r
-ATOM 2663 CA ARG B 40 22.908 15.441 43.251 1.00 58.35 C \r
-ATOM 2674 CA ALA B 41 21.699 14.108 39.886 1.00 56.38 C \r
-ATOM 2679 CA GLY B 42 19.886 10.955 40.991 1.00 56.66 C \r
-ATOM 2683 CA SER B 43 22.465 8.336 40.010 1.00 58.55 C \r
-ATOM 2689 CA CYS B 44 23.548 7.052 43.447 1.00 56.27 C \r
-ATOM 2695 CA SER B 45 22.057 5.987 46.791 1.00 58.20 C \r
-ATOM 2701 CA SER B 46 23.574 8.773 48.890 1.00 59.13 C \r
-ATOM 2707 CA CYS B 47 20.220 10.475 49.517 1.00 65.64 C \r
-ATOM 2713 CA ALA B 48 17.911 7.436 49.610 1.00 69.71 C \r
-ATOM 2718 CA GLY B 49 14.733 7.635 51.681 1.00 73.09 C \r
-ATOM 2722 CA LYS B 50 11.712 5.340 52.183 1.00 73.77 C \r
-ATOM 2731 CA VAL B 51 8.551 7.412 51.568 1.00 76.51 C \r
-ATOM 2738 CA VAL B 52 5.237 7.081 53.429 1.00 78.85 C \r
-ATOM 2745 CA SER B 53 2.180 9.376 53.647 1.00 79.57 C \r
-ATOM 2751 CA GLY B 54 2.118 10.991 50.218 1.00 76.32 C \r
-ATOM 2755 CA SER B 55 3.577 10.944 46.726 1.00 76.31 C \r
-ATOM 2761 CA VAL B 56 6.436 12.592 44.828 1.00 77.50 C \r
-ATOM 2768 CA ASP B 57 7.691 12.960 41.243 1.00 76.83 C \r
-ATOM 2776 CA GLN B 58 11.150 11.483 40.555 1.00 76.66 C \r
-ATOM 2785 CA SER B 59 10.976 10.827 36.792 1.00 80.19 C \r
-ATOM 2791 CA ASP B 60 14.688 11.644 36.510 1.00 83.51 C \r
-ATOM 2799 CA GLN B 61 15.175 8.137 37.916 1.00 85.74 C \r
-ATOM 2808 CA SER B 62 18.644 7.080 36.699 1.00 85.85 C \r
-ATOM 2814 CA TYR B 63 19.324 5.049 39.852 1.00 84.49 C \r
-ATOM 2826 CA LEU B 64 15.683 4.296 40.629 1.00 89.06 C \r
-ATOM 2834 CA ASP B 65 15.356 0.604 39.742 1.00 92.21 C \r
-ATOM 2842 CA ASP B 66 12.421 -1.791 39.331 1.00 92.35 C \r
-ATOM 2850 CA GLY B 67 10.747 -2.542 42.659 1.00 89.07 C \r
-ATOM 2854 CA GLN B 68 12.336 0.632 44.010 1.00 88.41 C \r
-ATOM 2863 CA ILE B 69 9.483 2.828 42.742 1.00 86.11 C \r
-ATOM 2871 CA ALA B 70 7.060 0.441 44.446 1.00 81.10 C \r
-ATOM 2876 CA ASP B 71 8.985 -0.310 47.648 1.00 76.82 C \r
-ATOM 2884 CA GLY B 72 8.653 3.423 48.186 1.00 73.00 C \r
-ATOM 2888 CA TRP B 73 12.342 4.386 48.095 1.00 67.93 C \r
-ATOM 2902 CA VAL B 74 13.052 8.007 47.136 1.00 63.84 C \r
-ATOM 2909 CA LEU B 75 16.093 9.940 45.892 1.00 58.37 C \r
-ATOM 2917 CA THR B 76 15.524 13.198 47.826 1.00 55.82 C \r
-ATOM 2924 CA CYS B 77 17.941 15.109 45.556 1.00 58.23 C \r
-ATOM 2930 CA HIS B 78 15.777 14.389 42.513 1.00 64.55 C \r
-ATOM 2940 CA ALA B 79 12.108 14.429 43.512 1.00 68.40 C \r
-ATOM 2945 CA TYR B 80 9.442 17.152 43.581 1.00 69.69 C \r
-ATOM 2957 CA PRO B 81 6.414 16.584 45.842 1.00 71.39 C \r
-ATOM 2964 CA THR B 82 3.015 16.014 44.179 1.00 73.67 C \r
-ATOM 2971 CA SER B 83 1.278 15.771 47.557 1.00 76.90 C \r
-ATOM 2977 CA ASP B 84 1.940 16.119 51.289 1.00 75.20 C \r
-ATOM 2985 CA VAL B 85 4.840 13.765 52.050 1.00 71.37 C \r
-ATOM 2992 CA VAL B 86 6.363 11.824 54.956 1.00 70.12 C \r
-ATOM 2999 CA ILE B 87 9.770 10.300 54.188 1.00 74.18 C \r
-ATOM 3007 CA GLU B 88 12.211 8.403 56.410 1.00 78.53 C \r
-ATOM 3012 CA THR B 89 15.541 9.964 55.407 1.00 79.79 C \r
-ATOM 3019 CA HIS B 90 19.062 8.538 55.881 1.00 79.40 C \r
-ATOM 3029 CA LYS B 91 17.584 5.099 55.099 1.00 84.52 C \r
-ATOM 3038 CA GLU B 92 20.016 2.596 53.549 1.00 91.64 C \r
-ATOM 3047 CA GLU B 93 20.192 -0.858 51.981 1.00 98.97 C \r
-ATOM 3056 CA GLU B 94 23.321 -2.924 51.298 1.00106.32 C \r
-ATOM 3065 CA LEU B 95 22.104 -6.552 51.453 1.00111.32 C \r
-ATOM 3073 CA THR B 96 18.778 -8.417 51.866 1.00116.01 C \r
-ATOM 3080 CA GLY B 97 18.877 -11.302 49.394 1.00116.63 C \r
-ATOM 3084 CA ALA B 98 22.056 -9.833 47.910 1.00116.02 C \r
-ATOM 3091 CA GLU C 19 26.080 -2.480 15.294 1.00 73.96 C \r
-ATOM 3100 CA SER C 20 23.405 0.198 14.956 1.00 67.27 C \r
-ATOM 3106 CA LYS C 21 22.937 3.927 15.380 1.00 59.27 C \r
-ATOM 3115 CA LYS C 22 19.198 3.481 15.874 1.00 58.42 C \r
-ATOM 3124 CA GLN C 23 17.251 3.141 19.137 1.00 59.89 C \r
-ATOM 3133 CA GLU C 24 17.931 -0.276 20.610 1.00 62.66 C \r
-ATOM 3142 CA GLU C 25 16.850 -0.453 24.226 1.00 64.27 C \r
-ATOM 3151 CA GLY C 26 13.211 -0.817 25.116 1.00 61.78 C \r
-ATOM 3155 CA VAL C 27 12.703 -2.073 21.582 1.00 58.37 C \r
-ATOM 3162 CA VAL C 28 10.779 -5.347 21.485 1.00 54.17 C \r
-ATOM 3169 CA THR C 29 9.481 -7.339 18.549 1.00 52.79 C \r
-ATOM 3176 CA ASN C 30 6.670 -9.775 17.786 1.00 51.30 C \r
-ATOM 3184 CA LEU C 31 4.863 -9.997 21.112 1.00 51.05 C \r
-ATOM 3192 CA TYR C 32 1.766 -11.297 19.327 1.00 50.51 C \r
-ATOM 3204 CA LYS C 33 1.373 -13.532 16.266 1.00 49.49 C \r
-ATOM 3213 CA PRO C 34 -1.609 -14.150 13.925 1.00 50.98 C \r
-ATOM 3220 CA LYS C 35 -2.450 -17.248 16.011 1.00 55.46 C \r
-ATOM 3229 CA GLU C 36 -2.977 -15.400 19.288 1.00 53.79 C \r
-ATOM 3238 CA PRO C 37 -3.251 -11.638 18.607 1.00 49.32 C \r
-ATOM 3245 CA TYR C 38 -3.674 -9.050 21.318 1.00 46.76 C \r
-ATOM 3257 CA VAL C 39 -7.276 -7.947 21.418 1.00 43.68 C \r
-ATOM 3264 CA GLY C 40 -7.415 -4.194 21.922 1.00 41.62 C \r
-ATOM 3268 CA ARG C 41 -10.273 -1.719 21.954 1.00 40.07 C \r
-ATOM 3279 CA CYS C 42 -11.026 1.064 19.477 1.00 36.37 C \r
-ATOM 3285 CA LEU C 43 -11.330 4.206 21.583 1.00 31.09 C \r
-ATOM 3293 CA LEU C 44 -11.337 6.671 18.673 1.00 28.46 C \r
-ATOM 3301 CA ASN C 45 -11.792 6.653 14.923 1.00 26.74 C \r
-ATOM 3309 CA THR C 46 -11.954 9.920 13.013 1.00 25.29 C \r
-ATOM 3316 CA LYS C 47 -11.667 10.775 9.352 1.00 21.50 C \r
-ATOM 3325 CA ILE C 48 -8.895 13.355 9.121 1.00 19.33 C \r
-ATOM 3333 CA THR C 49 -9.125 14.281 5.442 1.00 20.38 C \r
-ATOM 3340 CA GLY C 50 -11.630 16.676 3.855 1.00 20.12 C \r
-ATOM 3344 CA ASP C 51 -14.895 15.345 2.412 1.00 21.75 C \r
-ATOM 3352 CA ASP C 52 -13.889 16.693 -0.999 1.00 21.19 C \r
-ATOM 3360 CA ALA C 53 -10.651 14.683 -0.749 1.00 21.06 C \r
-ATOM 3365 CA PRO C 54 -10.036 11.974 -3.413 1.00 21.39 C \r
-ATOM 3372 CA GLY C 55 -9.982 9.067 -0.977 1.00 24.42 C \r
-ATOM 3376 CA GLU C 56 -10.374 9.298 2.857 1.00 22.08 C \r
-ATOM 3385 CA THR C 57 -7.723 8.611 5.517 1.00 20.31 C \r
-ATOM 3392 CA TRP C 58 -8.541 7.849 9.162 1.00 19.33 C \r
-ATOM 3406 CA HIS C 59 -6.758 8.520 12.438 1.00 22.68 C \r
-ATOM 3416 CA MET C 60 -7.645 5.951 15.108 1.00 27.16 C \r
-ATOM 3424 CA VAL C 61 -6.672 5.224 18.723 1.00 29.32 C \r
-ATOM 3431 CA PHE C 62 -6.669 1.704 20.220 1.00 34.23 C \r
-ATOM 3442 CA SER C 63 -6.102 0.643 23.847 1.00 37.05 C \r
-ATOM 3448 CA THR C 64 -3.096 -1.517 24.798 1.00 41.86 C \r
-ATOM 3455 CA GLU C 65 -3.169 -1.652 28.621 1.00 48.33 C \r
-ATOM 3464 CA GLY C 66 0.537 -0.885 28.318 1.00 52.45 C \r
-ATOM 3468 CA LYS C 67 0.955 -4.385 26.891 1.00 54.14 C \r
-ATOM 3477 CA ILE C 68 2.429 -3.211 23.570 1.00 51.52 C \r
-ATOM 3485 CA PRO C 69 5.602 -1.279 24.487 1.00 49.85 C \r
-ATOM 3492 CA TYR C 70 6.523 -0.180 20.967 1.00 44.48 C \r
-ATOM 3504 CA ARG C 71 9.185 2.353 19.993 1.00 40.96 C \r
-ATOM 3515 CA GLU C 72 8.727 5.317 17.688 1.00 33.49 C \r
-ATOM 3524 CA GLY C 73 8.913 3.876 14.164 1.00 30.16 C \r
-ATOM 3528 CA GLN C 74 7.423 0.399 14.427 1.00 31.26 C \r
-ATOM 3537 CA SER C 75 4.187 -0.913 12.966 1.00 33.65 C \r
-ATOM 3543 CA ILE C 76 1.454 -3.212 14.278 1.00 33.75 C \r
-ATOM 3551 CA GLY C 77 -0.295 -5.923 12.356 1.00 34.32 C \r
-ATOM 3555 CA VAL C 78 -4.060 -6.111 12.164 1.00 36.67 C \r
-ATOM 3562 CA ILE C 79 -6.137 -9.230 11.507 1.00 41.91 C \r
-ATOM 3570 CA ALA C 80 -9.427 -8.086 10.024 1.00 44.06 C \r
-ATOM 3575 CA ASP C 81 -12.530 -9.927 11.224 1.00 47.03 C \r
-ATOM 3583 CA GLY C 82 -13.972 -12.487 8.829 1.00 53.52 C \r
-ATOM 3587 CA VAL C 83 -12.521 -14.951 6.324 1.00 62.57 C \r
-ATOM 3594 CA ASP C 84 -11.856 -14.200 2.630 1.00 71.97 C \r
-ATOM 3602 CA LYS C 85 -12.935 -17.403 0.861 1.00 76.86 C \r
-ATOM 3611 CA ASN C 86 -13.690 -18.960 4.253 1.00 76.52 C \r
-ATOM 3619 CA GLY C 87 -10.006 -19.837 4.066 1.00 76.22 C \r
-ATOM 3623 CA LYS C 88 -8.802 -19.138 7.616 1.00 71.60 C \r
-ATOM 3632 CA PRO C 89 -8.651 -15.577 8.944 1.00 64.14 C \r
-ATOM 3639 CA HIS C 90 -7.547 -12.649 6.805 1.00 52.35 C \r
-ATOM 3649 CA LYS C 91 -3.753 -12.529 6.474 1.00 46.81 C \r
-ATOM 3658 CA VAL C 92 -2.180 -9.868 8.686 1.00 43.48 C \r
-ATOM 3665 CA ARG C 93 -1.491 -6.414 7.232 1.00 36.99 C \r
-ATOM 3676 CA LEU C 94 0.983 -3.882 8.601 1.00 32.95 C \r
-ATOM 3684 CA TYR C 95 0.340 -0.239 9.510 1.00 24.84 C \r
-ATOM 3696 CA SER C 96 3.003 2.101 10.803 1.00 23.32 C \r
-ATOM 3702 CA ILE C 97 2.244 3.502 14.236 1.00 24.12 C \r
-ATOM 3710 CA ALA C 98 1.243 7.179 13.932 1.00 22.32 C \r
-ATOM 3715 CA SER C 99 1.572 7.636 17.676 1.00 25.69 C \r
-ATOM 3721 CA SER C 100 4.752 7.924 19.726 1.00 28.83 C \r
-ATOM 3727 CA ALA C 101 5.741 5.521 22.508 1.00 35.61 C \r
-ATOM 3732 CA ILE C 102 3.906 7.635 25.079 1.00 38.39 C \r
-ATOM 3740 CA GLY C 103 0.899 7.826 22.742 1.00 31.93 C \r
-ATOM 3744 CA ASP C 104 -1.803 10.384 21.986 1.00 28.77 C \r
-ATOM 3752 CA PHE C 105 -3.050 10.293 25.607 1.00 37.05 C \r
-ATOM 3763 CA GLY C 106 0.503 10.389 26.967 1.00 39.36 C \r
-ATOM 3767 CA ASP C 107 -0.221 7.437 29.266 1.00 41.44 C \r
-ATOM 3775 CA SER C 108 1.566 4.766 27.217 1.00 42.18 C \r
-ATOM 3781 CA LYS C 109 -1.747 2.877 27.156 1.00 42.45 C \r
-ATOM 3790 CA THR C 110 -2.698 3.586 23.515 1.00 38.10 C \r
-ATOM 3797 CA VAL C 111 -1.603 2.971 19.906 1.00 32.79 C \r
-ATOM 3804 CA SER C 112 -2.671 5.020 16.872 1.00 29.60 C \r
-ATOM 3810 CA LEU C 113 -2.713 4.324 13.126 1.00 25.68 C \r
-ATOM 3818 CA CYS C 114 -3.142 6.498 9.999 1.00 24.23 C \r
-ATOM 3824 CA VAL C 115 -5.345 4.496 7.641 1.00 22.80 C \r
-ATOM 3831 CA LYS C 116 -6.221 5.196 4.015 1.00 22.11 C \r
-ATOM 3840 CA ARG C 117 -9.458 3.521 2.955 1.00 25.68 C \r
-ATOM 3851 CA LEU C 118 -8.447 1.440 -0.100 1.00 28.80 C \r
-ATOM 3859 CA ILE C 119 -11.140 1.661 -2.792 1.00 31.75 C \r
-ATOM 3867 CA TYR C 120 -10.086 0.716 -6.312 1.00 32.93 C \r
-ATOM 3879 CA THR C 121 -11.388 -0.733 -9.598 1.00 36.84 C \r
-ATOM 3886 CA ASN C 122 -10.258 -4.257 -10.546 1.00 36.90 C \r
-ATOM 3894 CA ASP C 123 -9.574 -5.562 -14.056 1.00 45.45 C \r
-ATOM 3902 CA ALA C 124 -13.196 -6.758 -14.269 1.00 44.66 C \r
-ATOM 3907 CA GLY C 125 -14.207 -3.102 -14.023 1.00 45.49 C \r
-ATOM 3911 CA GLU C 126 -16.059 -3.511 -10.722 1.00 45.54 C \r
-ATOM 3920 CA ILE C 127 -15.507 -1.321 -7.638 1.00 39.70 C \r
-ATOM 3928 CA VAL C 128 -13.846 -3.171 -4.762 1.00 38.09 C \r
-ATOM 3935 CA LYS C 129 -12.759 -2.512 -1.198 1.00 33.77 C \r
-ATOM 3944 CA GLY C 130 -9.566 -3.363 0.599 1.00 31.98 C \r
-ATOM 3948 CA VAL C 131 -10.443 -5.797 3.385 1.00 33.16 C \r
-ATOM 3955 CA CYS C 132 -8.241 -4.645 6.257 1.00 29.97 C \r
-ATOM 3961 CA SER C 133 -8.238 -0.898 5.607 1.00 30.67 C \r
-ATOM 3967 CA ASN C 134 -12.022 -0.902 5.268 1.00 30.35 C \r
-ATOM 3975 CA PHE C 135 -12.375 -2.946 8.424 1.00 29.86 C \r
-ATOM 3986 CA LEU C 136 -10.223 -0.334 10.195 1.00 29.42 C \r
-ATOM 3994 CA CYS C 137 -11.779 2.834 8.813 1.00 32.27 C \r
-ATOM 4000 CA ASP C 138 -15.116 1.280 9.724 1.00 34.29 C \r
-ATOM 4008 CA LEU C 139 -14.287 0.699 13.399 1.00 37.51 C \r
-ATOM 4016 CA GLN C 140 -16.635 2.170 16.028 1.00 43.76 C \r
-ATOM 4025 CA PRO C 141 -15.630 3.032 19.581 1.00 42.77 C \r
-ATOM 4032 CA GLY C 142 -16.082 -0.210 21.478 1.00 42.83 C \r
-ATOM 4036 CA ASP C 143 -15.117 -2.625 18.696 1.00 40.91 C \r
-ATOM 4044 CA ASN C 144 -12.182 -4.947 19.288 1.00 45.66 C \r
-ATOM 4052 CA VAL C 145 -9.056 -5.146 17.145 1.00 46.95 C \r
-ATOM 4059 CA GLN C 146 -6.707 -8.107 16.606 1.00 48.69 C \r
-ATOM 4068 CA ILE C 147 -3.249 -6.538 17.123 1.00 46.84 C \r
-ATOM 4076 CA THR C 148 -0.010 -8.392 16.264 1.00 46.26 C \r
-ATOM 4083 CA GLY C 149 3.543 -7.117 16.634 1.00 45.60 C \r
-ATOM 4087 CA PRO C 150 5.248 -4.818 17.394 1.00 44.97 C \r
-ATOM 4094 CA VAL C 151 7.423 -5.293 14.321 1.00 44.50 C \r
-ATOM 4101 CA GLY C 152 10.289 -3.716 12.438 1.00 45.33 C \r
-ATOM 4105 CA LYS C 153 13.599 -2.161 13.435 1.00 48.64 C \r
-ATOM 4114 CA GLU C 154 14.166 -0.437 10.074 1.00 48.20 C \r
-ATOM 4123 CA MET C 155 12.437 2.888 10.737 1.00 41.77 C \r
-ATOM 4131 CA LEU C 156 13.839 3.081 14.267 1.00 38.27 C \r
-ATOM 4139 CA MET C 157 15.076 6.540 15.308 1.00 34.29 C \r
-ATOM 4147 CA PRO C 158 18.782 7.419 15.339 1.00 34.05 C \r
-ATOM 4154 CA LYS C 159 20.262 7.521 18.845 1.00 35.82 C \r
-ATOM 4163 CA ASP C 160 22.076 10.792 18.273 1.00 35.95 C \r
-ATOM 4171 CA PRO C 161 19.683 13.401 19.809 1.00 35.63 C \r
-ATOM 4178 CA ASN C 162 21.563 15.948 17.758 1.00 33.92 C \r
-ATOM 4186 CA ALA C 163 21.028 14.172 14.487 1.00 30.82 C \r
-ATOM 4191 CA THR C 164 19.693 15.722 11.305 1.00 25.18 C \r
-ATOM 4198 CA ILE C 165 16.617 13.601 10.636 1.00 19.91 C \r
-ATOM 4206 CA ILE C 166 15.351 13.978 7.060 1.00 13.76 C \r
-ATOM 4214 CA MET C 167 11.843 12.550 6.703 1.00 14.98 C \r
-ATOM 4222 CA LEU C 168 10.385 11.831 3.251 1.00 16.64 C \r
-ATOM 4230 CA ALA C 169 6.747 10.808 3.007 1.00 15.85 C \r
-ATOM 4235 CA THR C 170 3.765 10.346 0.737 1.00 14.23 C \r
-ATOM 4242 CA GLY C 171 0.255 9.724 2.035 1.00 13.78 C \r
-ATOM 4246 CA THR C 172 -0.103 7.560 5.139 1.00 17.62 C \r
-ATOM 4253 CA GLY C 173 3.646 7.343 4.821 1.00 17.20 C \r
-ATOM 4257 CA ILE C 174 3.469 10.213 7.270 1.00 15.91 C \r
-ATOM 4265 CA ALA C 175 2.586 7.783 10.110 1.00 15.63 C \r
-ATOM 4270 CA PRO C 176 6.023 6.933 11.582 1.00 17.04 C \r
-ATOM 4277 CA PHE C 177 7.215 10.514 11.327 1.00 18.21 C \r
-ATOM 4288 CA ARG C 178 4.268 11.745 13.359 1.00 22.35 C \r
-ATOM 4299 CA SER C 179 5.563 9.289 15.983 1.00 25.22 C \r
-ATOM 4305 CA PHE C 180 9.139 10.593 15.614 1.00 25.98 C \r
-ATOM 4316 CA LEU C 181 7.925 14.180 15.767 1.00 29.12 C \r
-ATOM 4324 CA TRP C 182 5.625 13.641 18.714 1.00 31.35 C \r
-ATOM 4338 CA LYS C 183 8.488 12.385 20.871 1.00 30.92 C \r
-ATOM 4347 CA MET C 184 10.841 15.050 19.503 1.00 24.85 C \r
-ATOM 4355 CA PHE C 185 8.741 18.202 20.114 1.00 22.97 C \r
-ATOM 4366 CA PHE C 186 5.604 17.337 22.076 1.00 27.77 C \r
-ATOM 4377 CA GLU C 187 7.117 15.432 25.009 1.00 37.71 C \r
-ATOM 4386 CA LYS C 188 9.542 15.977 27.878 1.00 53.59 C \r
-ATOM 4395 CA HIS C 189 12.355 13.416 28.180 1.00 63.67 C \r
-ATOM 4405 CA ASP C 190 15.318 13.181 30.569 1.00 66.93 C \r
-ATOM 4413 CA ASP C 191 17.480 11.106 28.238 1.00 59.79 C \r
-ATOM 4421 CA TYR C 192 16.190 12.725 25.047 1.00 51.96 C \r
-ATOM 4433 CA LYS C 193 16.700 16.406 24.324 1.00 47.01 C \r
-ATOM 4442 CA PHE C 194 16.580 16.471 20.530 1.00 39.85 C \r
-ATOM 4453 CA ASN C 195 18.572 19.494 19.409 1.00 37.52 C \r
-ATOM 4461 CA GLY C 196 19.361 18.548 15.845 1.00 32.08 C \r
-ATOM 4465 CA LEU C 197 17.310 19.266 12.766 1.00 28.26 C \r
-ATOM 4473 CA GLY C 198 14.051 17.526 11.928 1.00 25.05 C \r
-ATOM 4477 CA TRP C 199 13.211 18.137 8.269 1.00 19.81 C \r
-ATOM 4491 CA LEU C 200 9.908 16.742 7.059 1.00 13.86 C \r
-ATOM 4499 CA PHE C 201 8.855 16.521 3.429 1.00 14.83 C \r
-ATOM 4510 CA LEU C 202 5.288 15.361 2.717 1.00 16.12 C \r
-ATOM 4518 CA GLY C 203 3.701 14.731 -0.681 1.00 13.79 C \r
-ATOM 4522 CA VAL C 204 -0.051 14.414 -1.182 1.00 11.75 C \r
-ATOM 4529 CA PRO C 205 -2.113 15.264 -4.308 1.00 14.66 C \r
-ATOM 4536 CA THR C 206 -4.553 17.737 -2.778 1.00 16.37 C \r
-ATOM 4543 CA SER C 207 -4.756 20.169 0.120 1.00 18.01 C \r
-ATOM 4549 CA SER C 208 -7.780 18.225 1.280 1.00 17.59 C \r
-ATOM 4555 CA SER C 209 -5.452 15.198 1.550 1.00 16.19 C \r
-ATOM 4561 CA LEU C 210 -2.972 16.940 3.860 1.00 14.22 C \r
-ATOM 4569 CA LEU C 211 -2.255 14.980 7.059 1.00 14.43 C \r
-ATOM 4577 CA TYR C 212 -1.624 16.449 10.549 1.00 18.94 C \r
-ATOM 4589 CA LYS C 213 -0.818 19.896 9.150 1.00 22.61 C \r
-ATOM 4598 CA GLU C 214 -2.039 21.572 12.352 1.00 25.73 C \r
-ATOM 4607 CA GLU C 215 0.152 19.413 14.514 1.00 19.23 C \r
-ATOM 4616 CA PHE C 216 3.216 20.178 12.439 1.00 17.80 C \r
-ATOM 4627 CA GLY C 217 2.478 23.890 12.512 1.00 19.90 C \r
-ATOM 4631 CA LYS C 218 2.578 24.001 16.294 1.00 25.54 C \r
-ATOM 4640 CA MET C 219 5.810 22.021 16.188 1.00 26.79 C \r
-ATOM 4648 CA LYS C 220 7.224 24.606 13.819 1.00 31.85 C \r
-ATOM 4657 CA GLU C 221 6.071 27.341 16.219 1.00 38.62 C \r
-ATOM 4666 CA ARG C 222 7.760 25.760 19.233 1.00 39.10 C \r
-ATOM 4677 CA ALA C 223 11.124 24.971 17.668 1.00 35.43 C \r
-ATOM 4682 CA PRO C 224 11.696 27.100 14.528 1.00 32.99 C \r
-ATOM 4689 CA GLU C 225 15.425 26.331 14.360 1.00 33.87 C \r
-ATOM 4698 CA ASN C 226 15.038 22.591 14.986 1.00 30.46 C \r
-ATOM 4706 CA PHE C 227 12.088 21.755 12.732 1.00 24.98 C \r
-ATOM 4717 CA ARG C 228 11.351 22.384 9.075 1.00 19.87 C \r
-ATOM 4728 CA VAL C 229 8.435 21.010 7.118 1.00 14.21 C \r
-ATOM 4735 CA ASP C 230 7.739 21.452 3.398 1.00 12.26 C \r
-ATOM 4743 CA TYR C 231 4.627 20.147 1.722 1.00 14.42 C \r
-ATOM 4755 CA ALA C 232 4.334 19.003 -1.872 1.00 9.99 C \r
-ATOM 4760 CA VAL C 233 0.778 19.232 -3.168 1.00 10.49 C \r
-ATOM 4767 CA SER C 234 1.043 17.769 -6.694 1.00 19.00 C \r
-ATOM 4773 CA ARG C 235 -2.240 19.042 -8.206 1.00 23.13 C \r
-ATOM 4784 CA GLU C 236 -2.069 22.459 -6.578 1.00 17.58 C \r
-ATOM 4793 CA GLN C 237 1.546 23.511 -6.623 1.00 15.89 C \r
-ATOM 4802 CA THR C 238 4.202 24.018 -9.275 1.00 17.86 C \r
-ATOM 4809 CA ASN C 239 7.922 24.800 -9.182 1.00 15.15 C \r
-ATOM 4817 CA ALA C 240 9.558 27.791 -10.892 1.00 21.51 C \r
-ATOM 4822 CA ALA C 241 9.475 25.887 -14.174 1.00 24.05 C \r
-ATOM 4827 CA GLY C 242 5.741 25.110 -13.938 1.00 26.25 C \r
-ATOM 4831 CA GLU C 243 5.999 21.359 -13.153 1.00 25.92 C \r
-ATOM 4840 CA ARG C 244 3.679 19.536 -10.704 1.00 24.04 C \r
-ATOM 4851 CA MET C 245 5.076 19.643 -7.174 1.00 18.58 C \r
-ATOM 4859 CA TYR C 246 5.784 16.047 -6.100 1.00 14.16 C \r
-ATOM 4871 CA ILE C 247 7.910 15.343 -3.034 1.00 16.78 C \r
-ATOM 4879 CA GLN C 248 11.089 15.070 -5.120 1.00 18.72 C \r
-ATOM 4888 CA THR C 249 10.168 18.255 -6.921 1.00 20.93 C \r
-ATOM 4895 CA ARG C 250 9.962 20.031 -3.567 1.00 19.25 C \r
-ATOM 4906 CA MET C 251 13.275 18.471 -2.561 1.00 19.40 C \r
-ATOM 4914 CA ALA C 252 14.910 19.812 -5.760 1.00 20.48 C \r
-ATOM 4919 CA GLU C 253 14.456 23.418 -4.569 1.00 18.19 C \r
-ATOM 4928 CA TYR C 254 16.804 22.515 -1.673 1.00 17.80 C \r
-ATOM 4940 CA LYS C 255 19.038 20.415 -3.902 1.00 20.66 C \r
-ATOM 4949 CA GLU C 256 22.452 21.603 -2.682 1.00 16.05 C \r
-ATOM 4958 CA GLU C 257 21.544 21.914 0.993 1.00 15.89 C \r
-ATOM 4967 CA LEU C 258 20.377 18.297 0.919 1.00 20.74 C \r
-ATOM 4975 CA TRP C 259 23.388 16.939 -0.965 1.00 23.45 C \r
-ATOM 4989 CA GLU C 260 25.645 18.669 1.563 1.00 24.08 C \r
-ATOM 4998 CA LEU C 261 23.573 17.378 4.477 1.00 24.74 C \r
-ATOM 5006 CA LEU C 262 24.020 13.928 2.938 1.00 26.14 C \r
-ATOM 5014 CA LYS C 263 27.792 14.091 3.402 1.00 25.40 C \r
-ATOM 5023 CA LYS C 264 27.457 14.521 7.176 1.00 31.47 C \r
-ATOM 5032 CA ASP C 265 27.877 11.474 9.425 1.00 35.31 C \r
-ATOM 5040 CA ASN C 266 24.934 12.482 11.620 1.00 29.63 C \r
-ATOM 5048 CA THR C 267 22.321 12.795 8.832 1.00 28.00 C \r
-ATOM 5055 CA TYR C 268 19.556 10.160 8.808 1.00 27.00 C \r
-ATOM 5067 CA VAL C 269 17.143 9.903 5.884 1.00 24.65 C \r
-ATOM 5074 CA TYR C 270 13.890 8.016 6.276 1.00 23.37 C \r
-ATOM 5086 CA MET C 271 11.373 7.327 3.518 1.00 18.93 C \r
-ATOM 5094 CA CYS C 272 7.834 6.074 4.043 1.00 18.24 C \r
-ATOM 5100 CA GLY C 273 4.784 5.874 1.826 1.00 22.39 C \r
-ATOM 5104 CA LEU C 274 3.837 4.483 -1.568 1.00 26.95 C \r
-ATOM 5112 CA LYS C 275 6.305 2.384 -3.532 1.00 32.36 C \r
-ATOM 5121 CA GLY C 276 7.741 4.199 -6.514 1.00 37.46 C \r
-ATOM 5125 CA MET C 277 7.714 7.455 -4.608 1.00 28.76 C \r
-ATOM 5133 CA GLU C 278 11.430 6.639 -4.425 1.00 32.22 C \r
-ATOM 5142 CA LYS C 279 12.017 6.321 -8.153 1.00 29.94 C \r
-ATOM 5151 CA GLY C 280 11.317 10.057 -8.293 1.00 24.18 C \r
-ATOM 5155 CA ILE C 281 13.766 10.673 -5.460 1.00 23.68 C \r
-ATOM 5163 CA ASP C 282 16.431 8.365 -6.934 1.00 26.58 C \r
-ATOM 5171 CA ASP C 283 16.211 10.530 -10.054 1.00 28.70 C \r
-ATOM 5179 CA ILE C 284 17.089 13.937 -8.538 1.00 27.28 C \r
-ATOM 5187 CA MET C 285 19.706 12.222 -6.388 1.00 27.45 C \r
-ATOM 5195 CA VAL C 286 21.377 10.712 -9.470 1.00 30.74 C \r
-ATOM 5202 CA SER C 287 21.619 14.159 -11.061 1.00 32.14 C \r
-ATOM 5208 CA LEU C 288 23.240 15.463 -7.873 1.00 34.20 C \r
-ATOM 5216 CA ALA C 289 25.801 12.653 -7.874 1.00 40.16 C \r
-ATOM 5221 CA GLU C 290 26.837 12.825 -11.536 1.00 41.84 C \r
-ATOM 5230 CA LYS C 291 27.855 16.387 -10.793 1.00 43.17 C \r
-ATOM 5239 CA ASP C 292 30.299 15.115 -8.139 1.00 41.84 C \r
-ATOM 5247 CA GLY C 293 31.237 12.232 -10.420 1.00 46.12 C \r
-ATOM 5251 CA ILE C 294 30.053 9.669 -7.864 1.00 45.54 C \r
-ATOM 5259 CA ASP C 295 27.399 6.998 -8.480 1.00 41.14 C \r
-ATOM 5267 CA TRP C 296 24.222 7.605 -6.479 1.00 30.67 C \r
-ATOM 5281 CA PHE C 297 23.381 3.910 -6.151 1.00 31.97 C \r
-ATOM 5292 CA ASP C 298 26.856 2.916 -4.907 1.00 38.12 C \r
-ATOM 5300 CA TYR C 299 26.671 5.875 -2.540 1.00 39.05 C \r
-ATOM 5312 CA LYS C 300 23.196 4.971 -1.294 1.00 41.63 C \r
-ATOM 5321 CA LYS C 301 24.542 1.489 -0.577 1.00 43.40 C \r
-ATOM 5330 CA GLN C 302 27.207 3.064 1.608 1.00 43.79 C \r
-ATOM 5339 CA LEU C 303 24.476 5.181 3.238 1.00 41.51 C \r
-ATOM 5347 CA LYS C 304 22.138 2.343 4.264 1.00 45.18 C \r
-ATOM 5356 CA ARG C 305 25.322 0.535 5.256 1.00 46.65 C \r
-ATOM 5367 CA GLY C 306 25.613 3.181 7.945 1.00 40.29 C \r
-ATOM 5371 CA ASP C 307 21.954 3.487 8.940 1.00 41.21 C \r
-ATOM 5379 CA GLN C 308 21.463 6.730 7.023 1.00 35.55 C \r
-ATOM 5388 CA TRP C 309 18.961 5.674 4.361 1.00 31.22 C \r
-ATOM 5402 CA ASN C 310 16.018 3.728 5.752 1.00 31.61 C \r
-ATOM 5410 CA VAL C 311 13.120 2.841 3.452 1.00 32.13 C \r
-ATOM 5417 CA GLU C 312 9.705 1.332 4.261 1.00 31.51 C \r
-ATOM 5426 CA VAL C 313 7.466 1.606 1.209 1.00 26.39 C \r
-ATOM 5433 CA TYR C 314 4.403 -0.343 0.111 1.00 25.42 C \r
+HEADER OXIDOREDUCTASE/ELECTRON TRANSPORT 08-MAY-00 1GAQ
+ATOM 2 CA GLU A 19 20.491 30.713 36.290 1.00 74.29 C
+ATOM 11 CA SER A 20 24.056 29.774 37.264 1.00 72.09 C
+ATOM 17 CA LYS A 21 27.517 31.289 37.563 1.00 70.09 C
+ATOM 26 CA LYS A 22 28.794 27.865 36.481 1.00 68.64 C
+ATOM 35 CA GLN A 23 29.484 26.806 32.884 1.00 70.46 C
+ATOM 44 CA GLU A 24 26.420 25.175 31.360 1.00 72.08 C
+ATOM 53 CA GLU A 25 26.736 26.049 27.683 1.00 70.43 C
+ATOM 62 CA GLY A 26 28.299 22.912 26.233 1.00 63.14 C
+ATOM 66 CA VAL A 27 26.863 20.704 28.982 1.00 54.50 C
+ATOM 73 CA VAL A 28 25.030 17.390 28.655 1.00 48.32 C
+ATOM 80 CA THR A 29 23.728 14.677 30.991 1.00 44.86 C
+ATOM 87 CA ASN A 30 22.327 11.164 30.703 1.00 45.42 C
+ATOM 95 CA LEU A 31 23.332 10.459 27.102 1.00 45.42 C
+ATOM 103 CA TYR A 32 23.549 6.898 28.380 1.00 45.88 C
+ATOM 115 CA LYS A 33 21.656 5.321 31.262 1.00 47.27 C
+ATOM 124 CA PRO A 34 21.991 2.046 33.248 1.00 48.99 C
+ATOM 131 CA LYS A 35 19.339 0.560 30.970 1.00 52.75 C
+ATOM 140 CA GLU A 36 21.580 0.855 27.886 1.00 53.33 C
+ATOM 149 CA PRO A 37 25.154 2.015 28.678 1.00 47.54 C
+ATOM 156 CA TYR A 38 27.929 2.872 26.249 1.00 41.98 C
+ATOM 168 CA VAL A 39 30.355 -0.017 25.909 1.00 41.48 C
+ATOM 175 CA GLY A 40 33.823 1.485 25.966 1.00 37.59 C
+ATOM 179 CA ARG A 41 37.165 -0.277 26.122 1.00 39.77 C
+ATOM 190 CA CYS A 42 40.148 -0.029 28.442 1.00 36.51 C
+ATOM 196 CA LEU A 43 43.095 1.441 26.554 1.00 36.13 C
+ATOM 204 CA LEU A 44 45.231 2.023 29.649 1.00 33.55 C
+ATOM 212 CA ASN A 45 45.140 1.026 33.307 1.00 27.79 C
+ATOM 220 CA THR A 46 48.056 1.800 35.617 1.00 28.75 C
+ATOM 227 CA LYS A 47 48.542 1.776 39.388 1.00 30.31 C
+ATOM 236 CA ILE A 48 49.564 5.317 40.376 1.00 31.32 C
+ATOM 244 CA THR A 49 50.339 4.682 44.059 1.00 37.62 C
+ATOM 251 CA GLY A 50 53.585 3.317 45.460 1.00 44.49 C
+ATOM 255 CA ASP A 51 53.706 -0.448 46.087 1.00 52.89 C
+ATOM 263 CA ASP A 52 53.910 0.545 49.751 1.00 55.23 C
+ATOM 271 CA ALA A 53 50.816 2.767 50.056 1.00 53.34 C
+ATOM 276 CA PRO A 54 47.904 1.940 52.405 1.00 50.60 C
+ATOM 283 CA GLY A 55 45.420 1.579 49.561 1.00 50.35 C
+ATOM 287 CA GLU A 56 46.098 1.286 45.836 1.00 42.53 C
+ATOM 296 CA THR A 57 44.534 3.816 43.480 1.00 41.14 C
+ATOM 303 CA TRP A 58 44.540 3.423 39.708 1.00 35.60 C
+ATOM 317 CA HIS A 59 44.468 5.853 36.796 1.00 31.89 C
+ATOM 327 CA MET A 60 42.658 4.227 33.866 1.00 31.65 C
+ATOM 335 CA VAL A 61 41.716 5.345 30.350 1.00 30.43 C
+ATOM 342 CA PHE A 62 38.669 4.172 28.360 1.00 34.36 C
+ATOM 353 CA SER A 63 37.657 4.908 24.772 1.00 34.69 C
+ATOM 359 CA THR A 64 34.448 6.828 23.951 1.00 36.96 C
+ATOM 366 CA GLU A 65 34.691 7.644 20.254 1.00 40.08 C
+ATOM 375 CA GLY A 66 33.742 11.183 21.285 1.00 40.22 C
+ATOM 379 CA LYS A 67 30.272 9.763 22.003 1.00 41.93 C
+ATOM 388 CA ILE A 68 30.279 11.116 25.577 1.00 41.52 C
+ATOM 396 CA PRO A 69 30.791 14.926 25.537 1.00 42.35 C
+ATOM 403 CA TYR A 70 31.228 15.232 29.299 1.00 39.84 C
+ATOM 415 CA ARG A 71 32.639 18.451 30.768 1.00 44.14 C
+ATOM 426 CA GLU A 72 35.122 19.278 33.515 1.00 43.82 C
+ATOM 435 CA GLY A 73 33.472 18.458 36.835 1.00 41.97 C
+ATOM 439 CA GLN A 74 30.929 15.874 35.657 1.00 37.19 C
+ATOM 448 CA SER A 75 31.285 12.124 36.138 1.00 38.28 C
+ATOM 454 CA ILE A 76 30.458 8.792 34.539 1.00 36.84 C
+ATOM 462 CA GLY A 77 28.983 5.620 35.918 1.00 35.39 C
+ATOM 466 CA VAL A 78 30.311 2.108 35.530 1.00 32.05 C
+ATOM 473 CA ILE A 79 28.458 -1.201 35.591 1.00 32.67 C
+ATOM 481 CA ALA A 80 30.745 -4.018 36.644 1.00 35.36 C
+ATOM 486 CA ASP A 81 30.359 -7.373 34.872 1.00 38.72 C
+ATOM 494 CA GLY A 82 28.308 -10.332 36.110 1.00 45.79 C
+ATOM 498 CA VAL A 83 25.820 -10.242 39.001 1.00 52.24 C
+ATOM 505 CA ASP A 84 25.838 -10.250 42.834 1.00 60.54 C
+ATOM 513 CA LYS A 85 25.014 -13.158 45.196 1.00 66.72 C
+ATOM 522 CA ASN A 86 21.414 -13.062 43.904 1.00 67.37 C
+ATOM 530 CA GLY A 87 21.724 -13.423 40.136 1.00 64.74 C
+ATOM 534 CA LYS A 88 20.971 -9.733 39.570 1.00 61.12 C
+ATOM 543 CA PRO A 89 23.054 -7.201 37.561 1.00 54.68 C
+ATOM 550 CA HIS A 90 25.224 -4.957 39.755 1.00 44.44 C
+ATOM 560 CA LYS A 91 23.940 -1.433 40.260 1.00 40.48 C
+ATOM 569 CA VAL A 92 25.803 1.546 38.843 1.00 38.45 C
+ATOM 576 CA ARG A 93 28.709 2.986 40.828 1.00 38.93 C
+ATOM 587 CA LEU A 94 29.778 6.584 40.096 1.00 34.37 C
+ATOM 595 CA TYR A 95 33.309 7.878 39.513 1.00 30.27 C
+ATOM 607 CA SER A 96 34.425 11.475 39.057 1.00 29.44 C
+ATOM 613 CA ILE A 97 36.029 12.090 35.662 1.00 27.61 C
+ATOM 621 CA ALA A 98 39.769 12.693 36.069 1.00 31.12 C
+ATOM 626 CA SER A 99 40.393 13.712 32.475 1.00 32.42 C
+ATOM 632 CA SER A 100 39.566 17.142 31.059 1.00 36.14 C
+ATOM 638 CA ALA A 101 37.097 17.367 28.154 1.00 41.07 C
+ATOM 643 CA ILE A 102 39.764 16.549 25.527 1.00 47.65 C
+ATOM 651 CA GLY A 103 41.172 13.692 27.599 1.00 46.77 C
+ATOM 655 CA ASP A 104 44.730 12.612 28.289 1.00 43.82 C
+ATOM 663 CA PHE A 105 45.115 12.065 24.522 1.00 41.52 C
+ATOM 674 CA GLY A 106 43.862 15.455 23.328 1.00 41.66 C
+ATOM 678 CA ASP A 107 41.355 13.883 20.926 1.00 40.90 C
+ATOM 686 CA SER A 108 38.132 14.250 22.954 1.00 42.95 C
+ATOM 692 CA LYS A 109 37.967 10.535 22.224 1.00 44.74 C
+ATOM 701 CA THR A 110 38.731 9.184 25.704 1.00 41.09 C
+ATOM 708 CA VAL A 111 37.728 9.519 29.374 1.00 39.03 C
+ATOM 715 CA SER A 112 39.912 8.705 32.399 1.00 37.17 C
+ATOM 721 CA LEU A 113 39.098 7.476 35.935 1.00 32.10 C
+ATOM 729 CA CYS A 114 40.964 7.578 39.261 1.00 30.65 C
+ATOM 735 CA VAL A 115 39.724 4.459 41.060 1.00 33.45 C
+ATOM 742 CA LYS A 116 40.668 3.524 44.628 1.00 34.75 C
+ATOM 751 CA ARG A 117 40.376 -0.250 45.123 1.00 32.85 C
+ATOM 762 CA LEU A 118 38.137 -1.094 48.077 1.00 30.50 C
+ATOM 770 CA ILE A 119 39.376 -3.752 50.459 1.00 34.34 C
+ATOM 778 CA TYR A 120 38.699 -4.266 54.125 1.00 31.39 C
+ATOM 790 CA THR A 121 38.264 -7.086 56.567 1.00 28.83 C
+ATOM 797 CA ASN A 122 34.792 -7.477 58.109 1.00 26.51 C
+ATOM 805 CA ASP A 123 33.626 -8.382 61.634 1.00 31.58 C
+ATOM 813 CA ALA A 124 34.191 -12.077 60.901 1.00 27.84 C
+ATOM 818 CA GLY A 125 37.759 -11.844 59.728 1.00 32.39 C
+ATOM 822 CA GLU A 126 36.809 -12.146 56.073 1.00 35.82 C
+ATOM 831 CA ILE A 127 38.655 -9.932 53.598 1.00 38.42 C
+ATOM 839 CA VAL A 128 36.025 -8.261 51.421 1.00 33.73 C
+ATOM 846 CA LYS A 129 36.482 -6.484 48.090 1.00 31.87 C
+ATOM 855 CA GLY A 130 34.363 -3.680 46.686 1.00 26.91 C
+ATOM 859 CA VAL A 131 32.680 -5.051 43.569 1.00 27.89 C
+ATOM 866 CA CYS A 132 33.074 -2.246 41.018 1.00 28.46 C
+ATOM 872 CA SER A 133 36.266 -0.553 42.213 1.00 31.33 C
+ATOM 878 CA ASN A 134 37.861 -3.983 41.984 1.00 30.29 C
+ATOM 886 CA PHE A 135 36.318 -4.795 38.623 1.00 31.48 C
+ATOM 897 CA LEU A 136 37.926 -1.553 37.520 1.00 27.81 C
+ATOM 905 CA CYS A 137 41.417 -1.976 38.955 1.00 25.91 C
+ATOM 911 CA ASP A 138 41.605 -5.419 37.338 1.00 30.22 C
+ATOM 919 CA LEU A 139 40.462 -4.306 33.874 1.00 32.69 C
+ATOM 927 CA GLN A 140 42.851 -5.511 31.186 1.00 36.80 C
+ATOM 936 CA PRO A 141 43.380 -3.220 28.170 1.00 36.16 C
+ATOM 943 CA GLY A 142 40.864 -4.420 25.586 1.00 31.10 C
+ATOM 947 CA ASP A 143 38.129 -5.298 28.055 1.00 30.62 C
+ATOM 955 CA ASN A 144 34.690 -3.847 27.645 1.00 33.52 C
+ATOM 963 CA VAL A 145 33.430 -1.522 30.361 1.00 37.08 C
+ATOM 970 CA GLN A 146 29.817 -0.374 30.523 1.00 37.65 C
+ATOM 979 CA ILE A 147 29.547 3.413 31.045 1.00 30.95 C
+ATOM 987 CA THR A 148 26.637 5.791 31.832 1.00 29.95 C
+ATOM 994 CA GLY A 149 26.297 9.581 31.843 1.00 32.81 C
+ATOM 998 CA PRO A 150 27.785 12.148 31.800 1.00 34.98 C
+ATOM 1005 CA VAL A 151 26.376 12.668 35.275 1.00 36.53 C
+ATOM 1012 CA GLY A 152 26.196 15.756 37.474 1.00 43.09 C
+ATOM 1016 CA LYS A 153 26.048 19.528 37.068 1.00 48.37 C
+ATOM 1025 CA GLU A 154 26.921 20.540 40.633 1.00 49.70 C
+ATOM 1034 CA MET A 155 30.710 20.266 40.235 1.00 47.30 C
+ATOM 1042 CA LEU A 156 30.882 22.020 36.869 1.00 50.36 C
+ATOM 1050 CA MET A 157 33.362 24.883 36.404 1.00 55.29 C
+ATOM 1058 CA PRO A 158 32.521 28.612 36.605 1.00 54.88 C
+ATOM 1065 CA LYS A 159 32.291 30.776 33.464 1.00 54.92 C
+ATOM 1074 CA ASP A 160 34.497 33.503 34.939 1.00 57.22 C
+ATOM 1082 CA PRO A 161 38.055 32.687 33.759 1.00 58.62 C
+ATOM 1089 CA ASN A 162 39.524 35.240 36.163 1.00 60.44 C
+ATOM 1097 CA ALA A 163 37.814 33.910 39.279 1.00 55.80 C
+ATOM 1102 CA THR A 164 39.596 32.487 42.316 1.00 51.04 C
+ATOM 1109 CA ILE A 165 38.966 28.771 42.756 1.00 50.26 C
+ATOM 1117 CA ILE A 166 39.774 26.773 45.885 1.00 47.54 C
+ATOM 1125 CA MET A 167 39.883 23.014 45.324 1.00 46.38 C
+ATOM 1133 CA LEU A 168 39.700 20.963 48.522 1.00 42.18 C
+ATOM 1141 CA ALA A 169 40.377 17.316 47.770 1.00 36.41 C
+ATOM 1146 CA THR A 170 41.005 14.086 49.622 1.00 32.98 C
+ATOM 1153 CA GLY A 171 42.027 10.802 48.014 1.00 31.36 C
+ATOM 1157 CA THR A 172 40.386 10.037 44.680 1.00 30.48 C
+ATOM 1164 CA GLY A 173 38.640 13.335 45.359 1.00 33.99 C
+ATOM 1168 CA ILE A 174 41.418 15.036 43.394 1.00 35.66 C
+ATOM 1176 CA ALA A 175 39.758 13.585 40.300 1.00 36.00 C
+ATOM 1181 CA PRO A 176 37.445 16.385 39.155 1.00 39.41 C
+ATOM 1188 CA PHE A 177 40.109 18.971 39.976 1.00 43.21 C
+ATOM 1199 CA ARG A 178 42.726 17.119 37.955 1.00 41.09 C
+ATOM 1210 CA SER A 179 40.235 17.536 35.124 1.00 39.92 C
+ATOM 1216 CA PHE A 180 39.808 21.204 36.009 1.00 39.23 C
+ATOM 1227 CA LEU A 181 43.528 21.949 35.995 1.00 39.50 C
+ATOM 1235 CA TRP A 182 44.305 20.081 32.770 1.00 41.47 C
+ATOM 1249 CA LYS A 183 42.141 22.654 30.972 1.00 48.08 C
+ATOM 1258 CA MET A 184 43.477 25.547 33.062 1.00 52.79 C
+ATOM 1266 CA PHE A 185 47.102 25.043 32.014 1.00 57.35 C
+ATOM 1277 CA PHE A 186 48.075 21.921 30.051 1.00 55.98 C
+ATOM 1288 CA GLU A 187 45.758 23.173 27.297 1.00 54.44 C
+ATOM 1297 CA LYS A 188 44.908 26.236 25.196 1.00 51.29 C
+ATOM 1306 CA HIS A 189 41.395 27.080 24.003 1.00 51.35 C
+ATOM 1316 CA ASP A 190 40.108 29.972 21.873 1.00 54.30 C
+ATOM 1324 CA ASP A 191 37.199 30.481 24.249 1.00 53.95 C
+ATOM 1332 CA TYR A 192 38.816 29.937 27.634 1.00 50.68 C
+ATOM 1344 CA LYS A 193 41.916 31.388 29.230 1.00 51.00 C
+ATOM 1353 CA PHE A 194 42.322 30.967 32.956 1.00 52.09 C
+ATOM 1364 CA ASN A 195 43.672 34.234 34.312 1.00 56.46 C
+ATOM 1372 CA GLY A 196 42.616 34.078 37.969 1.00 57.17 C
+ATOM 1376 CA LEU A 197 43.874 31.920 40.843 1.00 57.92 C
+ATOM 1384 CA GLY A 198 43.549 28.151 41.086 1.00 56.67 C
+ATOM 1388 CA TRP A 199 44.258 26.886 44.592 1.00 51.55 C
+ATOM 1402 CA LEU A 200 44.411 23.170 45.379 1.00 49.17 C
+ATOM 1410 CA PHE A 201 44.558 21.335 48.709 1.00 48.60 C
+ATOM 1421 CA LEU A 202 45.122 17.570 48.598 1.00 45.34 C
+ATOM 1429 CA GLY A 203 44.885 15.480 51.742 1.00 48.55 C
+ATOM 1433 CA VAL A 204 46.225 11.936 51.755 1.00 50.23 C
+ATOM 1440 CA PRO A 205 47.942 9.740 54.365 1.00 51.51 C
+ATOM 1447 CA THR A 206 51.284 9.148 52.648 1.00 50.21 C
+ATOM 1454 CA SER A 207 53.551 10.483 49.894 1.00 49.38 C
+ATOM 1460 CA SER A 208 53.267 7.061 48.259 1.00 43.49 C
+ATOM 1466 CA SER A 209 49.588 8.049 48.093 1.00 42.57 C
+ATOM 1472 CA LEU A 210 49.990 11.424 46.364 1.00 42.65 C
+ATOM 1480 CA LEU A 211 48.121 11.446 43.035 1.00 39.33 C
+ATOM 1488 CA TYR A 212 49.516 13.214 39.935 1.00 40.89 C
+ATOM 1500 CA LYS A 213 52.128 15.234 41.873 1.00 45.88 C
+ATOM 1509 CA GLU A 214 54.518 15.406 38.899 1.00 53.22 C
+ATOM 1518 CA GLU A 215 51.680 16.911 36.889 1.00 55.16 C
+ATOM 1527 CA PHE A 216 50.757 19.475 39.514 1.00 60.55 C
+ATOM 1538 CA GLY A 217 54.488 20.153 39.524 1.00 66.64 C
+ATOM 1542 CA LYS A 218 54.575 21.110 35.850 1.00 68.86 C
+ATOM 1551 CA MET A 219 51.398 23.159 36.265 1.00 66.97 C
+ATOM 1559 CA LYS A 220 53.138 25.090 39.061 1.00 65.97 C
+ATOM 1568 CA GLU A 221 55.654 26.250 36.459 1.00 70.02 C
+ATOM 1577 CA ARG A 222 53.584 26.507 33.294 1.00 73.48 C
+ATOM 1588 CA ALA A 223 52.005 29.449 35.175 1.00 76.21 C
+ATOM 1593 CA PRO A 224 53.272 29.877 38.804 1.00 79.25 C
+ATOM 1600 CA GLU A 225 51.296 33.124 39.020 1.00 81.84 C
+ATOM 1609 CA ASN A 226 47.873 31.528 38.622 1.00 78.84 C
+ATOM 1617 CA PHE A 227 48.418 28.176 40.350 1.00 75.28 C
+ATOM 1628 CA ARG A 228 49.090 27.305 43.996 1.00 72.05 C
+ATOM 1639 CA VAL A 229 49.165 23.724 45.323 1.00 68.82 C
+ATOM 1646 CA ASP A 230 49.258 22.581 48.958 1.00 66.54 C
+ATOM 1654 CA TYR A 231 49.605 18.943 49.968 1.00 60.31 C
+ATOM 1666 CA ALA A 232 48.551 17.560 53.332 1.00 57.39 C
+ATOM 1671 CA VAL A 233 50.260 14.228 53.945 1.00 57.14 C
+ATOM 1678 CA SER A 234 48.465 13.579 57.244 1.00 60.81 C
+ATOM 1684 CA ARG A 235 50.959 11.010 58.514 1.00 60.74 C
+ATOM 1695 CA GLU A 236 54.268 12.594 57.481 1.00 59.17 C
+ATOM 1704 CA GLN A 237 53.494 16.197 58.450 1.00 59.62 C
+ATOM 1713 CA THR A 238 52.590 18.236 61.521 1.00 63.18 C
+ATOM 1720 CA ASN A 239 52.019 21.937 62.188 1.00 66.71 C
+ATOM 1728 CA ALA A 240 52.096 23.767 65.537 1.00 70.06 C
+ATOM 1733 CA ALA A 241 51.302 21.400 68.410 1.00 72.44 C
+ATOM 1738 CA GLY A 242 52.383 18.324 66.438 1.00 72.38 C
+ATOM 1742 CA GLU A 243 48.826 18.169 65.110 1.00 69.71 C
+ATOM 1751 CA ARG A 244 48.674 15.776 62.148 1.00 67.21 C
+ATOM 1762 CA MET A 245 48.712 17.796 58.933 1.00 64.20 C
+ATOM 1770 CA TYR A 246 45.246 17.082 57.556 1.00 60.65 C
+ATOM 1782 CA ILE A 247 43.617 18.437 54.409 1.00 62.98 C
+ATOM 1790 CA GLN A 248 42.035 21.001 56.761 1.00 64.64 C
+ATOM 1799 CA THR A 249 45.057 21.461 59.009 1.00 63.37 C
+ATOM 1806 CA ARG A 250 46.891 22.664 55.903 1.00 62.47 C
+ATOM 1817 CA MET A 251 44.123 25.201 55.251 1.00 63.35 C
+ATOM 1825 CA ALA A 252 44.571 26.305 58.854 1.00 65.73 C
+ATOM 1830 CA GLU A 253 47.973 27.809 58.076 1.00 65.97 C
+ATOM 1839 CA TYR A 254 46.267 30.063 55.517 1.00 65.83 C
+ATOM 1851 CA LYS A 255 42.991 30.559 57.379 1.00 70.30 C
+ATOM 1860 CA GLU A 256 43.578 34.326 57.320 1.00 73.73 C
+ATOM 1869 CA GLU A 257 44.189 34.738 53.593 1.00 71.52 C
+ATOM 1878 CA LEU A 258 41.459 32.202 52.893 1.00 73.38 C
+ATOM 1886 CA TRP A 259 38.790 34.074 54.853 1.00 76.72 C
+ATOM 1900 CA GLU A 260 39.721 37.275 53.006 1.00 78.61 C
+ATOM 1909 CA LEU A 261 38.580 35.553 49.815 1.00 75.71 C
+ATOM 1917 CA LEU A 262 35.391 33.881 51.047 1.00 73.74 C
+ATOM 1925 CA LYS A 263 33.562 37.165 50.535 1.00 73.64 C
+ATOM 1934 CA LYS A 264 34.299 38.143 46.954 1.00 72.48 C
+ATOM 1943 CA ASP A 265 31.954 37.554 43.993 1.00 69.65 C
+ATOM 1951 CA ASN A 266 34.660 35.649 42.106 1.00 65.06 C
+ATOM 1959 CA THR A 267 35.835 33.117 44.683 1.00 58.24 C
+ATOM 1966 CA TYR A 268 34.459 29.646 43.909 1.00 51.04 C
+ATOM 1978 CA VAL A 269 35.192 26.827 46.382 1.00 44.95 C
+ATOM 1985 CA TYR A 270 35.012 23.150 45.368 1.00 44.96 C
+ATOM 1997 CA MET A 271 35.162 20.122 47.656 1.00 41.72 C
+ATOM 2005 CA CYS A 272 35.314 16.468 46.632 1.00 37.19 C
+ATOM 2011 CA GLY A 273 36.343 13.080 47.951 1.00 37.65 C
+ATOM 2015 CA LEU A 274 36.040 10.886 51.020 1.00 39.39 C
+ATOM 2023 CA LYS A 275 33.076 12.283 52.955 1.00 44.86 C
+ATOM 2032 CA GLY A 276 34.322 13.183 56.400 1.00 49.16 C
+ATOM 2036 CA MET A 277 36.932 15.608 55.168 1.00 53.30 C
+ATOM 2044 CA GLU A 278 33.917 17.921 55.165 1.00 56.74 C
+ATOM 2053 CA LYS A 279 33.531 18.089 58.947 1.00 59.30 C
+ATOM 2062 CA GLY A 280 36.982 19.413 59.776 1.00 58.94 C
+ATOM 2066 CA ILE A 281 36.705 22.048 57.063 1.00 61.43 C
+ATOM 2074 CA ASP A 282 33.453 23.402 58.515 1.00 67.06 C
+ATOM 2082 CA ASP A 283 35.050 23.189 61.972 1.00 74.12 C
+ATOM 2090 CA ILE A 284 37.991 25.422 61.040 1.00 78.49 C
+ATOM 2098 CA MET A 285 35.456 27.566 59.201 1.00 82.25 C
+ATOM 2106 CA VAL A 286 32.941 27.959 62.027 1.00 83.44 C
+ATOM 2113 CA SER A 287 35.610 29.113 64.469 1.00 83.43 C
+ATOM 2119 CA LEU A 288 36.927 31.601 61.887 1.00 85.53 C
+ATOM 2127 CA ALA A 289 33.506 33.025 60.970 1.00 86.85 C
+ATOM 2132 CA GLU A 290 31.841 32.696 64.387 1.00 89.26 C
+ATOM 2141 CA LYS A 291 34.438 35.312 65.347 1.00 88.73 C
+ATOM 2150 CA ASP A 292 33.635 37.891 62.652 1.00 88.03 C
+ATOM 2158 CA GLY A 293 30.219 37.450 61.081 1.00 87.88 C
+ATOM 2162 CA ILE A 294 27.319 35.051 61.511 1.00 84.61 C
+ATOM 2170 CA ASP A 295 27.665 31.329 62.188 1.00 82.45 C
+ATOM 2178 CA TRP A 296 29.539 29.627 59.355 1.00 80.12 C
+ATOM 2192 CA PHE A 297 26.527 27.452 58.512 1.00 78.99 C
+ATOM 2203 CA ASP A 298 24.167 30.241 57.486 1.00 76.37 C
+ATOM 2211 CA TYR A 299 27.074 31.748 55.561 1.00 74.07 C
+ATOM 2223 CA LYS A 300 27.679 28.620 53.473 1.00 74.31 C
+ATOM 2232 CA LYS A 301 24.059 29.146 52.464 1.00 75.97 C
+ATOM 2241 CA GLN A 302 24.921 32.563 51.018 1.00 75.38 C
+ATOM 2250 CA LEU A 303 27.896 31.099 49.155 1.00 72.10 C
+ATOM 2258 CA LYS A 304 25.917 28.207 47.690 1.00 72.08 C
+ATOM 2267 CA ARG A 305 23.595 31.021 46.594 1.00 74.82 C
+ATOM 2278 CA GLY A 306 26.071 32.136 43.958 1.00 71.84 C
+ATOM 2282 CA ASP A 307 27.505 28.682 43.220 1.00 67.23 C
+ATOM 2290 CA GLN A 308 30.620 29.291 45.346 1.00 60.18 C
+ATOM 2299 CA TRP A 309 30.585 26.177 47.537 1.00 52.25 C
+ATOM 2313 CA ASN A 310 29.894 22.997 45.597 1.00 45.03 C
+ATOM 2321 CA VAL A 311 30.327 19.716 47.403 1.00 39.13 C
+ATOM 2328 CA GLU A 312 30.507 16.190 46.110 1.00 35.17 C
+ATOM 2337 CA VAL A 313 31.761 13.957 48.861 1.00 30.12 C
+ATOM 2344 CA TYR A 314 31.112 10.230 49.021 1.00 28.23 C
+ATOM 2358 CA ALA B 1 2.311 24.702 44.475 1.00 74.17 C
+ATOM 2363 CA THR B 2 3.590 24.207 48.055 1.00 74.76 C
+ATOM 2370 CA TYR B 3 3.069 20.876 49.837 1.00 73.52 C
+ATOM 2382 CA ASN B 4 3.748 19.874 53.435 1.00 75.75 C
+ATOM 2390 CA VAL B 5 6.618 17.399 53.868 1.00 75.95 C
+ATOM 2397 CA LYS B 6 7.769 15.523 56.983 1.00 77.70 C
+ATOM 2406 CA LEU B 7 11.351 14.325 57.458 1.00 78.91 C
+ATOM 2414 CA ILE B 8 11.807 11.511 59.985 1.00 81.00 C
+ATOM 2422 CA THR B 9 15.560 12.046 60.247 1.00 87.49 C
+ATOM 2429 CA PRO B 10 17.662 9.793 62.539 1.00 92.94 C
+ATOM 2436 CA GLU B 11 18.161 13.147 64.282 1.00 96.61 C
+ATOM 2445 CA GLY B 12 14.579 14.154 65.041 1.00 97.52 C
+ATOM 2449 CA GLU B 13 11.602 14.823 62.748 1.00 96.90 C
+ATOM 2458 CA VAL B 14 11.547 17.892 60.480 1.00 96.63 C
+ATOM 2465 CA GLU B 15 8.340 19.701 59.440 1.00 94.86 C
+ATOM 2474 CA LEU B 16 9.471 21.479 56.254 1.00 91.55 C
+ATOM 2482 CA GLN B 17 7.281 23.141 53.598 1.00 89.75 C
+ATOM 2491 CA VAL B 18 8.485 22.069 50.145 1.00 87.92 C
+ATOM 2498 CA PRO B 19 6.906 23.558 46.964 1.00 86.35 C
+ATOM 2505 CA ASP B 20 5.990 21.744 43.717 1.00 86.29 C
+ATOM 2513 CA ASP B 21 8.578 22.751 41.083 1.00 83.78 C
+ATOM 2521 CA VAL B 22 11.385 22.401 43.639 1.00 80.98 C
+ATOM 2528 CA TYR B 23 13.439 19.280 44.481 1.00 77.04 C
+ATOM 2540 CA ILE B 24 13.212 18.196 48.120 1.00 76.45 C
+ATOM 2548 CA LEU B 25 16.959 18.133 48.851 1.00 75.15 C
+ATOM 2556 CA ASP B 26 17.154 21.745 47.689 1.00 75.80 C
+ATOM 2564 CA GLN B 27 14.616 22.906 50.280 1.00 76.31 C
+ATOM 2573 CA ALA B 28 16.562 20.957 52.914 1.00 78.86 C
+ATOM 2578 CA GLU B 29 19.698 23.011 52.198 1.00 81.51 C
+ATOM 2587 CA GLU B 30 17.491 26.106 52.510 1.00 83.25 C
+ATOM 2596 CA ASP B 31 15.857 25.933 55.935 1.00 81.92 C
+ATOM 2604 CA GLY B 32 19.280 24.859 57.151 1.00 79.08 C
+ATOM 2608 CA ILE B 33 18.621 21.130 57.157 1.00 76.93 C
+ATOM 2616 CA ASP B 34 21.528 18.731 56.618 1.00 73.53 C
+ATOM 2624 CA LEU B 35 20.738 15.738 54.421 1.00 67.74 C
+ATOM 2632 CA PRO B 36 23.138 13.391 52.547 1.00 65.90 C
+ATOM 2639 CA TYR B 37 23.916 14.226 48.912 1.00 64.85 C
+ATOM 2651 CA SER B 38 26.659 13.373 46.412 1.00 62.58 C
+ATOM 2657 CA CYS B 39 26.193 13.603 42.652 1.00 60.99 C
+ATOM 2663 CA ARG B 40 22.908 15.441 43.251 1.00 58.35 C
+ATOM 2674 CA ALA B 41 21.699 14.108 39.886 1.00 56.38 C
+ATOM 2679 CA GLY B 42 19.886 10.955 40.991 1.00 56.66 C
+ATOM 2683 CA SER B 43 22.465 8.336 40.010 1.00 58.55 C
+ATOM 2689 CA CYS B 44 23.548 7.052 43.447 1.00 56.27 C
+ATOM 2695 CA SER B 45 22.057 5.987 46.791 1.00 58.20 C
+ATOM 2701 CA SER B 46 23.574 8.773 48.890 1.00 59.13 C
+ATOM 2707 CA CYS B 47 20.220 10.475 49.517 1.00 65.64 C
+ATOM 2713 CA ALA B 48 17.911 7.436 49.610 1.00 69.71 C
+ATOM 2718 CA GLY B 49 14.733 7.635 51.681 1.00 73.09 C
+ATOM 2722 CA LYS B 50 11.712 5.340 52.183 1.00 73.77 C
+ATOM 2731 CA VAL B 51 8.551 7.412 51.568 1.00 76.51 C
+ATOM 2738 CA VAL B 52 5.237 7.081 53.429 1.00 78.85 C
+ATOM 2745 CA SER B 53 2.180 9.376 53.647 1.00 79.57 C
+ATOM 2751 CA GLY B 54 2.118 10.991 50.218 1.00 76.32 C
+ATOM 2755 CA SER B 55 3.577 10.944 46.726 1.00 76.31 C
+ATOM 2761 CA VAL B 56 6.436 12.592 44.828 1.00 77.50 C
+ATOM 2768 CA ASP B 57 7.691 12.960 41.243 1.00 76.83 C
+ATOM 2776 CA GLN B 58 11.150 11.483 40.555 1.00 76.66 C
+ATOM 2785 CA SER B 59 10.976 10.827 36.792 1.00 80.19 C
+ATOM 2791 CA ASP B 60 14.688 11.644 36.510 1.00 83.51 C
+ATOM 2799 CA GLN B 61 15.175 8.137 37.916 1.00 85.74 C
+ATOM 2808 CA SER B 62 18.644 7.080 36.699 1.00 85.85 C
+ATOM 2814 CA TYR B 63 19.324 5.049 39.852 1.00 84.49 C
+ATOM 2826 CA LEU B 64 15.683 4.296 40.629 1.00 89.06 C
+ATOM 2834 CA ASP B 65 15.356 0.604 39.742 1.00 92.21 C
+ATOM 2842 CA ASP B 66 12.421 -1.791 39.331 1.00 92.35 C
+ATOM 2850 CA GLY B 67 10.747 -2.542 42.659 1.00 89.07 C
+ATOM 2854 CA GLN B 68 12.336 0.632 44.010 1.00 88.41 C
+ATOM 2863 CA ILE B 69 9.483 2.828 42.742 1.00 86.11 C
+ATOM 2871 CA ALA B 70 7.060 0.441 44.446 1.00 81.10 C
+ATOM 2876 CA ASP B 71 8.985 -0.310 47.648 1.00 76.82 C
+ATOM 2884 CA GLY B 72 8.653 3.423 48.186 1.00 73.00 C
+ATOM 2888 CA TRP B 73 12.342 4.386 48.095 1.00 67.93 C
+ATOM 2902 CA VAL B 74 13.052 8.007 47.136 1.00 63.84 C
+ATOM 2909 CA LEU B 75 16.093 9.940 45.892 1.00 58.37 C
+ATOM 2917 CA THR B 76 15.524 13.198 47.826 1.00 55.82 C
+ATOM 2924 CA CYS B 77 17.941 15.109 45.556 1.00 58.23 C
+ATOM 2930 CA HIS B 78 15.777 14.389 42.513 1.00 64.55 C
+ATOM 2940 CA ALA B 79 12.108 14.429 43.512 1.00 68.40 C
+ATOM 2945 CA TYR B 80 9.442 17.152 43.581 1.00 69.69 C
+ATOM 2957 CA PRO B 81 6.414 16.584 45.842 1.00 71.39 C
+ATOM 2964 CA THR B 82 3.015 16.014 44.179 1.00 73.67 C
+ATOM 2971 CA SER B 83 1.278 15.771 47.557 1.00 76.90 C
+ATOM 2977 CA ASP B 84 1.940 16.119 51.289 1.00 75.20 C
+ATOM 2985 CA VAL B 85 4.840 13.765 52.050 1.00 71.37 C
+ATOM 2992 CA VAL B 86 6.363 11.824 54.956 1.00 70.12 C
+ATOM 2999 CA ILE B 87 9.770 10.300 54.188 1.00 74.18 C
+ATOM 3007 CA GLU B 88 12.211 8.403 56.410 1.00 78.53 C
+ATOM 3012 CA THR B 89 15.541 9.964 55.407 1.00 79.79 C
+ATOM 3019 CA HIS B 90 19.062 8.538 55.881 1.00 79.40 C
+ATOM 3029 CA LYS B 91 17.584 5.099 55.099 1.00 84.52 C
+ATOM 3038 CA GLU B 92 20.016 2.596 53.549 1.00 91.64 C
+ATOM 3047 CA GLU B 93 20.192 -0.858 51.981 1.00 98.97 C
+ATOM 3056 CA GLU B 94 23.321 -2.924 51.298 1.00106.32 C
+ATOM 3065 CA LEU B 95 22.104 -6.552 51.453 1.00111.32 C
+ATOM 3073 CA THR B 96 18.778 -8.417 51.866 1.00116.01 C
+ATOM 3080 CA GLY B 97 18.877 -11.302 49.394 1.00116.63 C
+ATOM 3084 CA ALA B 98 22.056 -9.833 47.910 1.00116.02 C
+ATOM 3091 CA GLU C 19 26.080 -2.480 15.294 1.00 73.96 C
+ATOM 3100 CA SER C 20 23.405 0.198 14.956 1.00 67.27 C
+ATOM 3106 CA LYS C 21 22.937 3.927 15.380 1.00 59.27 C
+ATOM 3115 CA LYS C 22 19.198 3.481 15.874 1.00 58.42 C
+ATOM 3124 CA GLN C 23 17.251 3.141 19.137 1.00 59.89 C
+ATOM 3133 CA GLU C 24 17.931 -0.276 20.610 1.00 62.66 C
+ATOM 3142 CA GLU C 25 16.850 -0.453 24.226 1.00 64.27 C
+ATOM 3151 CA GLY C 26 13.211 -0.817 25.116 1.00 61.78 C
+ATOM 3155 CA VAL C 27 12.703 -2.073 21.582 1.00 58.37 C
+ATOM 3162 CA VAL C 28 10.779 -5.347 21.485 1.00 54.17 C
+ATOM 3169 CA THR C 29 9.481 -7.339 18.549 1.00 52.79 C
+ATOM 3176 CA ASN C 30 6.670 -9.775 17.786 1.00 51.30 C
+ATOM 3184 CA LEU C 31 4.863 -9.997 21.112 1.00 51.05 C
+ATOM 3192 CA TYR C 32 1.766 -11.297 19.327 1.00 50.51 C
+ATOM 3204 CA LYS C 33 1.373 -13.532 16.266 1.00 49.49 C
+ATOM 3213 CA PRO C 34 -1.609 -14.150 13.925 1.00 50.98 C
+ATOM 3220 CA LYS C 35 -2.450 -17.248 16.011 1.00 55.46 C
+ATOM 3229 CA GLU C 36 -2.977 -15.400 19.288 1.00 53.79 C
+ATOM 3238 CA PRO C 37 -3.251 -11.638 18.607 1.00 49.32 C
+ATOM 3245 CA TYR C 38 -3.674 -9.050 21.318 1.00 46.76 C
+ATOM 3257 CA VAL C 39 -7.276 -7.947 21.418 1.00 43.68 C
+ATOM 3264 CA GLY C 40 -7.415 -4.194 21.922 1.00 41.62 C
+ATOM 3268 CA ARG C 41 -10.273 -1.719 21.954 1.00 40.07 C
+ATOM 3279 CA CYS C 42 -11.026 1.064 19.477 1.00 36.37 C
+ATOM 3285 CA LEU C 43 -11.330 4.206 21.583 1.00 31.09 C
+ATOM 3293 CA LEU C 44 -11.337 6.671 18.673 1.00 28.46 C
+ATOM 3301 CA ASN C 45 -11.792 6.653 14.923 1.00 26.74 C
+ATOM 3309 CA THR C 46 -11.954 9.920 13.013 1.00 25.29 C
+ATOM 3316 CA LYS C 47 -11.667 10.775 9.352 1.00 21.50 C
+ATOM 3325 CA ILE C 48 -8.895 13.355 9.121 1.00 19.33 C
+ATOM 3333 CA THR C 49 -9.125 14.281 5.442 1.00 20.38 C
+ATOM 3340 CA GLY C 50 -11.630 16.676 3.855 1.00 20.12 C
+ATOM 3344 CA ASP C 51 -14.895 15.345 2.412 1.00 21.75 C
+ATOM 3352 CA ASP C 52 -13.889 16.693 -0.999 1.00 21.19 C
+ATOM 3360 CA ALA C 53 -10.651 14.683 -0.749 1.00 21.06 C
+ATOM 3365 CA PRO C 54 -10.036 11.974 -3.413 1.00 21.39 C
+ATOM 3372 CA GLY C 55 -9.982 9.067 -0.977 1.00 24.42 C
+ATOM 3376 CA GLU C 56 -10.374 9.298 2.857 1.00 22.08 C
+ATOM 3385 CA THR C 57 -7.723 8.611 5.517 1.00 20.31 C
+ATOM 3392 CA TRP C 58 -8.541 7.849 9.162 1.00 19.33 C
+ATOM 3406 CA HIS C 59 -6.758 8.520 12.438 1.00 22.68 C
+ATOM 3416 CA MET C 60 -7.645 5.951 15.108 1.00 27.16 C
+ATOM 3424 CA VAL C 61 -6.672 5.224 18.723 1.00 29.32 C
+ATOM 3431 CA PHE C 62 -6.669 1.704 20.220 1.00 34.23 C
+ATOM 3442 CA SER C 63 -6.102 0.643 23.847 1.00 37.05 C
+ATOM 3448 CA THR C 64 -3.096 -1.517 24.798 1.00 41.86 C
+ATOM 3455 CA GLU C 65 -3.169 -1.652 28.621 1.00 48.33 C
+ATOM 3464 CA GLY C 66 0.537 -0.885 28.318 1.00 52.45 C
+ATOM 3468 CA LYS C 67 0.955 -4.385 26.891 1.00 54.14 C
+ATOM 3477 CA ILE C 68 2.429 -3.211 23.570 1.00 51.52 C
+ATOM 3485 CA PRO C 69 5.602 -1.279 24.487 1.00 49.85 C
+ATOM 3492 CA TYR C 70 6.523 -0.180 20.967 1.00 44.48 C
+ATOM 3504 CA ARG C 71 9.185 2.353 19.993 1.00 40.96 C
+ATOM 3515 CA GLU C 72 8.727 5.317 17.688 1.00 33.49 C
+ATOM 3524 CA GLY C 73 8.913 3.876 14.164 1.00 30.16 C
+ATOM 3528 CA GLN C 74 7.423 0.399 14.427 1.00 31.26 C
+ATOM 3537 CA SER C 75 4.187 -0.913 12.966 1.00 33.65 C
+ATOM 3543 CA ILE C 76 1.454 -3.212 14.278 1.00 33.75 C
+ATOM 3551 CA GLY C 77 -0.295 -5.923 12.356 1.00 34.32 C
+ATOM 3555 CA VAL C 78 -4.060 -6.111 12.164 1.00 36.67 C
+ATOM 3562 CA ILE C 79 -6.137 -9.230 11.507 1.00 41.91 C
+ATOM 3570 CA ALA C 80 -9.427 -8.086 10.024 1.00 44.06 C
+ATOM 3575 CA ASP C 81 -12.530 -9.927 11.224 1.00 47.03 C
+ATOM 3583 CA GLY C 82 -13.972 -12.487 8.829 1.00 53.52 C
+ATOM 3587 CA VAL C 83 -12.521 -14.951 6.324 1.00 62.57 C
+ATOM 3594 CA ASP C 84 -11.856 -14.200 2.630 1.00 71.97 C
+ATOM 3602 CA LYS C 85 -12.935 -17.403 0.861 1.00 76.86 C
+ATOM 3611 CA ASN C 86 -13.690 -18.960 4.253 1.00 76.52 C
+ATOM 3619 CA GLY C 87 -10.006 -19.837 4.066 1.00 76.22 C
+ATOM 3623 CA LYS C 88 -8.802 -19.138 7.616 1.00 71.60 C
+ATOM 3632 CA PRO C 89 -8.651 -15.577 8.944 1.00 64.14 C
+ATOM 3639 CA HIS C 90 -7.547 -12.649 6.805 1.00 52.35 C
+ATOM 3649 CA LYS C 91 -3.753 -12.529 6.474 1.00 46.81 C
+ATOM 3658 CA VAL C 92 -2.180 -9.868 8.686 1.00 43.48 C
+ATOM 3665 CA ARG C 93 -1.491 -6.414 7.232 1.00 36.99 C
+ATOM 3676 CA LEU C 94 0.983 -3.882 8.601 1.00 32.95 C
+ATOM 3684 CA TYR C 95 0.340 -0.239 9.510 1.00 24.84 C
+ATOM 3696 CA SER C 96 3.003 2.101 10.803 1.00 23.32 C
+ATOM 3702 CA ILE C 97 2.244 3.502 14.236 1.00 24.12 C
+ATOM 3710 CA ALA C 98 1.243 7.179 13.932 1.00 22.32 C
+ATOM 3715 CA SER C 99 1.572 7.636 17.676 1.00 25.69 C
+ATOM 3721 CA SER C 100 4.752 7.924 19.726 1.00 28.83 C
+ATOM 3727 CA ALA C 101 5.741 5.521 22.508 1.00 35.61 C
+ATOM 3732 CA ILE C 102 3.906 7.635 25.079 1.00 38.39 C
+ATOM 3740 CA GLY C 103 0.899 7.826 22.742 1.00 31.93 C
+ATOM 3744 CA ASP C 104 -1.803 10.384 21.986 1.00 28.77 C
+ATOM 3752 CA PHE C 105 -3.050 10.293 25.607 1.00 37.05 C
+ATOM 3763 CA GLY C 106 0.503 10.389 26.967 1.00 39.36 C
+ATOM 3767 CA ASP C 107 -0.221 7.437 29.266 1.00 41.44 C
+ATOM 3775 CA SER C 108 1.566 4.766 27.217 1.00 42.18 C
+ATOM 3781 CA LYS C 109 -1.747 2.877 27.156 1.00 42.45 C
+ATOM 3790 CA THR C 110 -2.698 3.586 23.515 1.00 38.10 C
+ATOM 3797 CA VAL C 111 -1.603 2.971 19.906 1.00 32.79 C
+ATOM 3804 CA SER C 112 -2.671 5.020 16.872 1.00 29.60 C
+ATOM 3810 CA LEU C 113 -2.713 4.324 13.126 1.00 25.68 C
+ATOM 3818 CA CYS C 114 -3.142 6.498 9.999 1.00 24.23 C
+ATOM 3824 CA VAL C 115 -5.345 4.496 7.641 1.00 22.80 C
+ATOM 3831 CA LYS C 116 -6.221 5.196 4.015 1.00 22.11 C
+ATOM 3840 CA ARG C 117 -9.458 3.521 2.955 1.00 25.68 C
+ATOM 3851 CA LEU C 118 -8.447 1.440 -0.100 1.00 28.80 C
+ATOM 3859 CA ILE C 119 -11.140 1.661 -2.792 1.00 31.75 C
+ATOM 3867 CA TYR C 120 -10.086 0.716 -6.312 1.00 32.93 C
+ATOM 3879 CA THR C 121 -11.388 -0.733 -9.598 1.00 36.84 C
+ATOM 3886 CA ASN C 122 -10.258 -4.257 -10.546 1.00 36.90 C
+ATOM 3894 CA ASP C 123 -9.574 -5.562 -14.056 1.00 45.45 C
+ATOM 3902 CA ALA C 124 -13.196 -6.758 -14.269 1.00 44.66 C
+ATOM 3907 CA GLY C 125 -14.207 -3.102 -14.023 1.00 45.49 C
+ATOM 3911 CA GLU C 126 -16.059 -3.511 -10.722 1.00 45.54 C
+ATOM 3920 CA ILE C 127 -15.507 -1.321 -7.638 1.00 39.70 C
+ATOM 3928 CA VAL C 128 -13.846 -3.171 -4.762 1.00 38.09 C
+ATOM 3935 CA LYS C 129 -12.759 -2.512 -1.198 1.00 33.77 C
+ATOM 3944 CA GLY C 130 -9.566 -3.363 0.599 1.00 31.98 C
+ATOM 3948 CA VAL C 131 -10.443 -5.797 3.385 1.00 33.16 C
+ATOM 3955 CA CYS C 132 -8.241 -4.645 6.257 1.00 29.97 C
+ATOM 3961 CA SER C 133 -8.238 -0.898 5.607 1.00 30.67 C
+ATOM 3967 CA ASN C 134 -12.022 -0.902 5.268 1.00 30.35 C
+ATOM 3975 CA PHE C 135 -12.375 -2.946 8.424 1.00 29.86 C
+ATOM 3986 CA LEU C 136 -10.223 -0.334 10.195 1.00 29.42 C
+ATOM 3994 CA CYS C 137 -11.779 2.834 8.813 1.00 32.27 C
+ATOM 4000 CA ASP C 138 -15.116 1.280 9.724 1.00 34.29 C
+ATOM 4008 CA LEU C 139 -14.287 0.699 13.399 1.00 37.51 C
+ATOM 4016 CA GLN C 140 -16.635 2.170 16.028 1.00 43.76 C
+ATOM 4025 CA PRO C 141 -15.630 3.032 19.581 1.00 42.77 C
+ATOM 4032 CA GLY C 142 -16.082 -0.210 21.478 1.00 42.83 C
+ATOM 4036 CA ASP C 143 -15.117 -2.625 18.696 1.00 40.91 C
+ATOM 4044 CA ASN C 144 -12.182 -4.947 19.288 1.00 45.66 C
+ATOM 4052 CA VAL C 145 -9.056 -5.146 17.145 1.00 46.95 C
+ATOM 4059 CA GLN C 146 -6.707 -8.107 16.606 1.00 48.69 C
+ATOM 4068 CA ILE C 147 -3.249 -6.538 17.123 1.00 46.84 C
+ATOM 4076 CA THR C 148 -0.010 -8.392 16.264 1.00 46.26 C
+ATOM 4083 CA GLY C 149 3.543 -7.117 16.634 1.00 45.60 C
+ATOM 4087 CA PRO C 150 5.248 -4.818 17.394 1.00 44.97 C
+ATOM 4094 CA VAL C 151 7.423 -5.293 14.321 1.00 44.50 C
+ATOM 4101 CA GLY C 152 10.289 -3.716 12.438 1.00 45.33 C
+ATOM 4105 CA LYS C 153 13.599 -2.161 13.435 1.00 48.64 C
+ATOM 4114 CA GLU C 154 14.166 -0.437 10.074 1.00 48.20 C
+ATOM 4123 CA MET C 155 12.437 2.888 10.737 1.00 41.77 C
+ATOM 4131 CA LEU C 156 13.839 3.081 14.267 1.00 38.27 C
+ATOM 4139 CA MET C 157 15.076 6.540 15.308 1.00 34.29 C
+ATOM 4147 CA PRO C 158 18.782 7.419 15.339 1.00 34.05 C
+ATOM 4154 CA LYS C 159 20.262 7.521 18.845 1.00 35.82 C
+ATOM 4163 CA ASP C 160 22.076 10.792 18.273 1.00 35.95 C
+ATOM 4171 CA PRO C 161 19.683 13.401 19.809 1.00 35.63 C
+ATOM 4178 CA ASN C 162 21.563 15.948 17.758 1.00 33.92 C
+ATOM 4186 CA ALA C 163 21.028 14.172 14.487 1.00 30.82 C
+ATOM 4191 CA THR C 164 19.693 15.722 11.305 1.00 25.18 C
+ATOM 4198 CA ILE C 165 16.617 13.601 10.636 1.00 19.91 C
+ATOM 4206 CA ILE C 166 15.351 13.978 7.060 1.00 13.76 C
+ATOM 4214 CA MET C 167 11.843 12.550 6.703 1.00 14.98 C
+ATOM 4222 CA LEU C 168 10.385 11.831 3.251 1.00 16.64 C
+ATOM 4230 CA ALA C 169 6.747 10.808 3.007 1.00 15.85 C
+ATOM 4235 CA THR C 170 3.765 10.346 0.737 1.00 14.23 C
+ATOM 4242 CA GLY C 171 0.255 9.724 2.035 1.00 13.78 C
+ATOM 4246 CA THR C 172 -0.103 7.560 5.139 1.00 17.62 C
+ATOM 4253 CA GLY C 173 3.646 7.343 4.821 1.00 17.20 C
+ATOM 4257 CA ILE C 174 3.469 10.213 7.270 1.00 15.91 C
+ATOM 4265 CA ALA C 175 2.586 7.783 10.110 1.00 15.63 C
+ATOM 4270 CA PRO C 176 6.023 6.933 11.582 1.00 17.04 C
+ATOM 4277 CA PHE C 177 7.215 10.514 11.327 1.00 18.21 C
+ATOM 4288 CA ARG C 178 4.268 11.745 13.359 1.00 22.35 C
+ATOM 4299 CA SER C 179 5.563 9.289 15.983 1.00 25.22 C
+ATOM 4305 CA PHE C 180 9.139 10.593 15.614 1.00 25.98 C
+ATOM 4316 CA LEU C 181 7.925 14.180 15.767 1.00 29.12 C
+ATOM 4324 CA TRP C 182 5.625 13.641 18.714 1.00 31.35 C
+ATOM 4338 CA LYS C 183 8.488 12.385 20.871 1.00 30.92 C
+ATOM 4347 CA MET C 184 10.841 15.050 19.503 1.00 24.85 C
+ATOM 4355 CA PHE C 185 8.741 18.202 20.114 1.00 22.97 C
+ATOM 4366 CA PHE C 186 5.604 17.337 22.076 1.00 27.77 C
+ATOM 4377 CA GLU C 187 7.117 15.432 25.009 1.00 37.71 C
+ATOM 4386 CA LYS C 188 9.542 15.977 27.878 1.00 53.59 C
+ATOM 4395 CA HIS C 189 12.355 13.416 28.180 1.00 63.67 C
+ATOM 4405 CA ASP C 190 15.318 13.181 30.569 1.00 66.93 C
+ATOM 4413 CA ASP C 191 17.480 11.106 28.238 1.00 59.79 C
+ATOM 4421 CA TYR C 192 16.190 12.725 25.047 1.00 51.96 C
+ATOM 4433 CA LYS C 193 16.700 16.406 24.324 1.00 47.01 C
+ATOM 4442 CA PHE C 194 16.580 16.471 20.530 1.00 39.85 C
+ATOM 4453 CA ASN C 195 18.572 19.494 19.409 1.00 37.52 C
+ATOM 4461 CA GLY C 196 19.361 18.548 15.845 1.00 32.08 C
+ATOM 4465 CA LEU C 197 17.310 19.266 12.766 1.00 28.26 C
+ATOM 4473 CA GLY C 198 14.051 17.526 11.928 1.00 25.05 C
+ATOM 4477 CA TRP C 199 13.211 18.137 8.269 1.00 19.81 C
+ATOM 4491 CA LEU C 200 9.908 16.742 7.059 1.00 13.86 C
+ATOM 4499 CA PHE C 201 8.855 16.521 3.429 1.00 14.83 C
+ATOM 4510 CA LEU C 202 5.288 15.361 2.717 1.00 16.12 C
+ATOM 4518 CA GLY C 203 3.701 14.731 -0.681 1.00 13.79 C
+ATOM 4522 CA VAL C 204 -0.051 14.414 -1.182 1.00 11.75 C
+ATOM 4529 CA PRO C 205 -2.113 15.264 -4.308 1.00 14.66 C
+ATOM 4536 CA THR C 206 -4.553 17.737 -2.778 1.00 16.37 C
+ATOM 4543 CA SER C 207 -4.756 20.169 0.120 1.00 18.01 C
+ATOM 4549 CA SER C 208 -7.780 18.225 1.280 1.00 17.59 C
+ATOM 4555 CA SER C 209 -5.452 15.198 1.550 1.00 16.19 C
+ATOM 4561 CA LEU C 210 -2.972 16.940 3.860 1.00 14.22 C
+ATOM 4569 CA LEU C 211 -2.255 14.980 7.059 1.00 14.43 C
+ATOM 4577 CA TYR C 212 -1.624 16.449 10.549 1.00 18.94 C
+ATOM 4589 CA LYS C 213 -0.818 19.896 9.150 1.00 22.61 C
+ATOM 4598 CA GLU C 214 -2.039 21.572 12.352 1.00 25.73 C
+ATOM 4607 CA GLU C 215 0.152 19.413 14.514 1.00 19.23 C
+ATOM 4616 CA PHE C 216 3.216 20.178 12.439 1.00 17.80 C
+ATOM 4627 CA GLY C 217 2.478 23.890 12.512 1.00 19.90 C
+ATOM 4631 CA LYS C 218 2.578 24.001 16.294 1.00 25.54 C
+ATOM 4640 CA MET C 219 5.810 22.021 16.188 1.00 26.79 C
+ATOM 4648 CA LYS C 220 7.224 24.606 13.819 1.00 31.85 C
+ATOM 4657 CA GLU C 221 6.071 27.341 16.219 1.00 38.62 C
+ATOM 4666 CA ARG C 222 7.760 25.760 19.233 1.00 39.10 C
+ATOM 4677 CA ALA C 223 11.124 24.971 17.668 1.00 35.43 C
+ATOM 4682 CA PRO C 224 11.696 27.100 14.528 1.00 32.99 C
+ATOM 4689 CA GLU C 225 15.425 26.331 14.360 1.00 33.87 C
+ATOM 4698 CA ASN C 226 15.038 22.591 14.986 1.00 30.46 C
+ATOM 4706 CA PHE C 227 12.088 21.755 12.732 1.00 24.98 C
+ATOM 4717 CA ARG C 228 11.351 22.384 9.075 1.00 19.87 C
+ATOM 4728 CA VAL C 229 8.435 21.010 7.118 1.00 14.21 C
+ATOM 4735 CA ASP C 230 7.739 21.452 3.398 1.00 12.26 C
+ATOM 4743 CA TYR C 231 4.627 20.147 1.722 1.00 14.42 C
+ATOM 4755 CA ALA C 232 4.334 19.003 -1.872 1.00 9.99 C
+ATOM 4760 CA VAL C 233 0.778 19.232 -3.168 1.00 10.49 C
+ATOM 4767 CA SER C 234 1.043 17.769 -6.694 1.00 19.00 C
+ATOM 4773 CA ARG C 235 -2.240 19.042 -8.206 1.00 23.13 C
+ATOM 4784 CA GLU C 236 -2.069 22.459 -6.578 1.00 17.58 C
+ATOM 4793 CA GLN C 237 1.546 23.511 -6.623 1.00 15.89 C
+ATOM 4802 CA THR C 238 4.202 24.018 -9.275 1.00 17.86 C
+ATOM 4809 CA ASN C 239 7.922 24.800 -9.182 1.00 15.15 C
+ATOM 4817 CA ALA C 240 9.558 27.791 -10.892 1.00 21.51 C
+ATOM 4822 CA ALA C 241 9.475 25.887 -14.174 1.00 24.05 C
+ATOM 4827 CA GLY C 242 5.741 25.110 -13.938 1.00 26.25 C
+ATOM 4831 CA GLU C 243 5.999 21.359 -13.153 1.00 25.92 C
+ATOM 4840 CA ARG C 244 3.679 19.536 -10.704 1.00 24.04 C
+ATOM 4851 CA MET C 245 5.076 19.643 -7.174 1.00 18.58 C
+ATOM 4859 CA TYR C 246 5.784 16.047 -6.100 1.00 14.16 C
+ATOM 4871 CA ILE C 247 7.910 15.343 -3.034 1.00 16.78 C
+ATOM 4879 CA GLN C 248 11.089 15.070 -5.120 1.00 18.72 C
+ATOM 4888 CA THR C 249 10.168 18.255 -6.921 1.00 20.93 C
+ATOM 4895 CA ARG C 250 9.962 20.031 -3.567 1.00 19.25 C
+ATOM 4906 CA MET C 251 13.275 18.471 -2.561 1.00 19.40 C
+ATOM 4914 CA ALA C 252 14.910 19.812 -5.760 1.00 20.48 C
+ATOM 4919 CA GLU C 253 14.456 23.418 -4.569 1.00 18.19 C
+ATOM 4928 CA TYR C 254 16.804 22.515 -1.673 1.00 17.80 C
+ATOM 4940 CA LYS C 255 19.038 20.415 -3.902 1.00 20.66 C
+ATOM 4949 CA GLU C 256 22.452 21.603 -2.682 1.00 16.05 C
+ATOM 4958 CA GLU C 257 21.544 21.914 0.993 1.00 15.89 C
+ATOM 4967 CA LEU C 258 20.377 18.297 0.919 1.00 20.74 C
+ATOM 4975 CA TRP C 259 23.388 16.939 -0.965 1.00 23.45 C
+ATOM 4989 CA GLU C 260 25.645 18.669 1.563 1.00 24.08 C
+ATOM 4998 CA LEU C 261 23.573 17.378 4.477 1.00 24.74 C
+ATOM 5006 CA LEU C 262 24.020 13.928 2.938 1.00 26.14 C
+ATOM 5014 CA LYS C 263 27.792 14.091 3.402 1.00 25.40 C
+ATOM 5023 CA LYS C 264 27.457 14.521 7.176 1.00 31.47 C
+ATOM 5032 CA ASP C 265 27.877 11.474 9.425 1.00 35.31 C
+ATOM 5040 CA ASN C 266 24.934 12.482 11.620 1.00 29.63 C
+ATOM 5048 CA THR C 267 22.321 12.795 8.832 1.00 28.00 C
+ATOM 5055 CA TYR C 268 19.556 10.160 8.808 1.00 27.00 C
+ATOM 5067 CA VAL C 269 17.143 9.903 5.884 1.00 24.65 C
+ATOM 5074 CA TYR C 270 13.890 8.016 6.276 1.00 23.37 C
+ATOM 5086 CA MET C 271 11.373 7.327 3.518 1.00 18.93 C
+ATOM 5094 CA CYS C 272 7.834 6.074 4.043 1.00 18.24 C
+ATOM 5100 CA GLY C 273 4.784 5.874 1.826 1.00 22.39 C
+ATOM 5104 CA LEU C 274 3.837 4.483 -1.568 1.00 26.95 C
+ATOM 5112 CA LYS C 275 6.305 2.384 -3.532 1.00 32.36 C
+ATOM 5121 CA GLY C 276 7.741 4.199 -6.514 1.00 37.46 C
+ATOM 5125 CA MET C 277 7.714 7.455 -4.608 1.00 28.76 C
+ATOM 5133 CA GLU C 278 11.430 6.639 -4.425 1.00 32.22 C
+ATOM 5142 CA LYS C 279 12.017 6.321 -8.153 1.00 29.94 C
+ATOM 5151 CA GLY C 280 11.317 10.057 -8.293 1.00 24.18 C
+ATOM 5155 CA ILE C 281 13.766 10.673 -5.460 1.00 23.68 C
+ATOM 5163 CA ASP C 282 16.431 8.365 -6.934 1.00 26.58 C
+ATOM 5171 CA ASP C 283 16.211 10.530 -10.054 1.00 28.70 C
+ATOM 5179 CA ILE C 284 17.089 13.937 -8.538 1.00 27.28 C
+ATOM 5187 CA MET C 285 19.706 12.222 -6.388 1.00 27.45 C
+ATOM 5195 CA VAL C 286 21.377 10.712 -9.470 1.00 30.74 C
+ATOM 5202 CA SER C 287 21.619 14.159 -11.061 1.00 32.14 C
+ATOM 5208 CA LEU C 288 23.240 15.463 -7.873 1.00 34.20 C
+ATOM 5216 CA ALA C 289 25.801 12.653 -7.874 1.00 40.16 C
+ATOM 5221 CA GLU C 290 26.837 12.825 -11.536 1.00 41.84 C
+ATOM 5230 CA LYS C 291 27.855 16.387 -10.793 1.00 43.17 C
+ATOM 5239 CA ASP C 292 30.299 15.115 -8.139 1.00 41.84 C
+ATOM 5247 CA GLY C 293 31.237 12.232 -10.420 1.00 46.12 C
+ATOM 5251 CA ILE C 294 30.053 9.669 -7.864 1.00 45.54 C
+ATOM 5259 CA ASP C 295 27.399 6.998 -8.480 1.00 41.14 C
+ATOM 5267 CA TRP C 296 24.222 7.605 -6.479 1.00 30.67 C
+ATOM 5281 CA PHE C 297 23.381 3.910 -6.151 1.00 31.97 C
+ATOM 5292 CA ASP C 298 26.856 2.916 -4.907 1.00 38.12 C
+ATOM 5300 CA TYR C 299 26.671 5.875 -2.540 1.00 39.05 C
+ATOM 5312 CA LYS C 300 23.196 4.971 -1.294 1.00 41.63 C
+ATOM 5321 CA LYS C 301 24.542 1.489 -0.577 1.00 43.40 C
+ATOM 5330 CA GLN C 302 27.207 3.064 1.608 1.00 43.79 C
+ATOM 5339 CA LEU C 303 24.476 5.181 3.238 1.00 41.51 C
+ATOM 5347 CA LYS C 304 22.138 2.343 4.264 1.00 45.18 C
+ATOM 5356 CA ARG C 305 25.322 0.535 5.256 1.00 46.65 C
+ATOM 5367 CA GLY C 306 25.613 3.181 7.945 1.00 40.29 C
+ATOM 5371 CA ASP C 307 21.954 3.487 8.940 1.00 41.21 C
+ATOM 5379 CA GLN C 308 21.463 6.730 7.023 1.00 35.55 C
+ATOM 5388 CA TRP C 309 18.961 5.674 4.361 1.00 31.22 C
+ATOM 5402 CA ASN C 310 16.018 3.728 5.752 1.00 31.61 C
+ATOM 5410 CA VAL C 311 13.120 2.841 3.452 1.00 32.13 C
+ATOM 5417 CA GLU C 312 9.705 1.332 4.261 1.00 31.51 C
+ATOM 5426 CA VAL C 313 7.466 1.606 1.209 1.00 26.39 C
+ATOM 5433 CA TYR C 314 4.403 -0.343 0.111 1.00 25.42 C
-(((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);\r
+(((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);
-// You need to add the groovy directory to the class path from the script window\r
-// or add the groovy directory to the java classpath when running Jalview\r
-\r
-jvtst = new JvLoadTester().newJvLoadTest('D:\\fooTest.jar');\r
-try { jvtst.TestForAll('D:\\e6-workspace\\Jalview RNA\\examples\\rna\\rfamSml') } \r
-catch (OutOfMemoryError e) { \r
-// inspect jvtst to find out what file + file index it was on\r
-}\r
-// Terminate Jalview - useful if running from command line\r
-if (Jalview.isInBatchMode()) {\r
- Jalview.quit() \r
+// You need to add the groovy directory to the class path from the script window
+// or add the groovy directory to the java classpath when running Jalview
+
+jvtst = new JvLoadTester().newJvLoadTest('D:\\fooTest.jar');
+try { jvtst.TestForAll('D:\\e6-workspace\\Jalview RNA\\examples\\rna\\rfamSml') }
+catch (OutOfMemoryError e) {
+// inspect jvtst to find out what file + file index it was on
+}
+// Terminate Jalview - useful if running from command line
+if (Jalview.isInBatchMode()) {
+ Jalview.quit()
}
\ No newline at end of file
-import jalview.gui.*;\r
-import jalview.io.*;\r
-\r
-def class JvLoadTest {\r
- FileLoader fl = null;\r
- def String safename = null;\r
- JvLoadTest(String sname) { \r
- if (!new File(sname).exists() || new File(sname).canWrite())\r
- {\r
- safename = sname;\r
- } else {\r
- System.err.println("Warning : "+sname+" isn't being used to store temporary files.");\r
- } \r
- }\r
- def public boolean doTest (file) {\r
- fl = new FileLoader(false);\r
- System.gc();\r
- AlignFrame af = fl.LoadFileWaitTillLoaded(file\r
- ,FormatAdapter.FILE);\r
- return doTest(af);\r
- }\r
- def public boolean doSequentialReadTest (file) {\r
- return doSequentialReadTest(file, 0);\r
- }\r
- // Return true if there is more data to read.\r
- def public boolean peekFp(FileParse fp) {\r
- try { fp.mark(); } catch (Exception ex) { System.err.println("FAILED mark."+ex); return false; };\r
- try {\r
- def String nl;\r
- for (i in 1..3) { \r
- nl = fp.nextLine();\r
- if (nl==null) { return false; }\r
- System.out.println(nl +"\\n");\r
- }\r
- } catch (Exception e) { // end of file.\r
- return false; };\r
- try { fp.reset(); } catch (Exception ex) { System.err.println("FAILED rewind."+ex); return false; };\r
- return true;\r
- }\r
- /*\r
- Halt after loading the mx'th entry in the filestream\r
- */\r
- def public boolean doSequentialReadTest (file, int mx) {\r
- // first properly open the file\r
- // if (!doTest(file)) { return };\r
- def FileParse fp = null;\r
- try {\r
- fp = new FileParse(file, AppletFormatAdapter.FILE);\r
- } catch (Exception e) { System.err.println("Couldn't open "+file+"\\n"); e.printStackTrace(); return false;};\r
- Desktop.instance.closeAll_actionPerformed(null)\r
- System.gc();\r
- while (fp!=null && fp.isValid() && (mx==0 || mx!=fp.index)) {\r
- if (!peekFp(fp)) return false;\r
- fl = new FileLoader(false);\r
- AlignFrame af = fl.LoadFileWaitTillLoaded(fp, null);\r
- System.out.println("FileParse index: "+fp.index); \r
- if (af!=null && (mx==0 || mx!=fp.index))\r
- { def boolean res = doTest(af);\r
- if (!res)\r
- {\r
- // return false;\r
- }\r
- } else {\r
- // return false;\r
- }\r
- }\r
- return true;\r
- }\r
- def public void waitTillSettled(AlignFrame af)\r
- {\r
- if (af==null) { return; }\r
- Thread.sleep(10);\r
- while (af.getViewport().updatingConsensus || af.getViewport().updatingConservation) {\r
- Thread.sleep(150); // wait until things settle down\r
- }\r
- }\r
- def public boolean doTest(AlignFrame af) {\r
- Object pr = af.getViewport().getAlignment().getProperty("AC");\r
- if (pr!=null) { System.out.println("Accession = "+(String) pr); }\r
- af.selectAllSequenceMenuItem_actionPerformed(null)\r
- def boolean done = false;\r
- // Just try to save - don\'t mess around with clipboard\r
- /*while (!done) {\r
- try {\r
- af.copy_actionPerformed(null)\r
- done = true;\r
- } catch (Exception e) {\r
- Thread.sleep(100); // wait until clipboard might be available again\r
- }\r
- }*/\r
- if (af==null) { return false; }\r
- waitTillSettled(af);\r
- // Try and save as a jalview project and reload\r
- try {\r
- // af.saveAlignment(safename, "Jalview")\r
- new Jalview2XML().SaveState(new java.io.File(safename));\r
- Thread.sleep(100);\r
- } catch (Exception ex) { \r
- System.out.println("Couldn\'t save.");\r
- ex.printStackTrace(System.err);\r
- return false;\r
- }\r
- waitTillSettled(af);\r
- try {\r
- Desktop.instance.closeAll_actionPerformed(null);\r
- } catch (Exception ex) {}\r
- System.gc();\r
- try {\r
- af = new FileLoader(false).LoadFileWaitTillLoaded(safename, FormatAdapter.FILE); \r
- } \r
- catch (Exception ex) {\r
- System.out.println("Couldn't reload saved file.");\r
- System.gc();\r
- return false;\r
- }\r
- waitTillSettled(af);\r
-\r
- Desktop.instance.closeAll_actionPerformed(null);\r
-\r
- // af.paste(true)\r
- // af.newView_actionPerformed(null)\r
- // af.newView_actionPerformed(null)\r
-\r
- return true;\r
- }\r
- def public boolean TestForAll(String dir) {\r
- println "For directory or file : "+dir;\r
- File fd = new File(dir);\r
- if (!fd.isDirectory()) { return doSequentialReadTest(dir); }\r
- fd.eachFile() { file -> TestForAll(file.getAbsolutePath()) };\r
- }\r
-}\r
-def JvLoadTest newJvLoadTest(String tempFile) {\r
- jalview.gui.Desktop.instance.closeAll_actionPerformed(null);\r
- System.gc();\r
- jalview.gui.Desktop.instance.desktop.showMemoryUsage(true);\r
- return new JvLoadTest(tempFile)\r
+import jalview.gui.*;
+import jalview.io.*;
+
+def class JvLoadTest {
+ FileLoader fl = null;
+ def String safename = null;
+ JvLoadTest(String sname) {
+ if (!new File(sname).exists() || new File(sname).canWrite())
+ {
+ safename = sname;
+ } else {
+ System.err.println("Warning : "+sname+" isn't being used to store temporary files.");
+ }
+ }
+ def public boolean doTest (file) {
+ fl = new FileLoader(false);
+ System.gc();
+ AlignFrame af = fl.LoadFileWaitTillLoaded(file
+ ,FormatAdapter.FILE);
+ return doTest(af);
+ }
+ def public boolean doSequentialReadTest (file) {
+ return doSequentialReadTest(file, 0);
+ }
+ // Return true if there is more data to read.
+ def public boolean peekFp(FileParse fp) {
+ try { fp.mark(); } catch (Exception ex) { System.err.println("FAILED mark."+ex); return false; };
+ try {
+ def String nl;
+ for (i in 1..3) {
+ nl = fp.nextLine();
+ if (nl==null) { return false; }
+ System.out.println(nl +"\\n");
+ }
+ } catch (Exception e) { // end of file.
+ return false; };
+ try { fp.reset(); } catch (Exception ex) { System.err.println("FAILED rewind."+ex); return false; };
+ return true;
+ }
+ /*
+ Halt after loading the mx'th entry in the filestream
+ */
+ def public boolean doSequentialReadTest (file, int mx) {
+ // first properly open the file
+ // if (!doTest(file)) { return };
+ def FileParse fp = null;
+ try {
+ fp = new FileParse(file, AppletFormatAdapter.FILE);
+ } catch (Exception e) { System.err.println("Couldn't open "+file+"\\n"); e.printStackTrace(); return false;};
+ Desktop.instance.closeAll_actionPerformed(null)
+ System.gc();
+ while (fp!=null && fp.isValid() && (mx==0 || mx!=fp.index)) {
+ if (!peekFp(fp)) return false;
+ fl = new FileLoader(false);
+ AlignFrame af = fl.LoadFileWaitTillLoaded(fp, null);
+ System.out.println("FileParse index: "+fp.index);
+ if (af!=null && (mx==0 || mx!=fp.index))
+ { def boolean res = doTest(af);
+ if (!res)
+ {
+ // return false;
+ }
+ } else {
+ // return false;
+ }
+ }
+ return true;
+ }
+ def public void waitTillSettled(AlignFrame af)
+ {
+ if (af==null) { return; }
+ Thread.sleep(10);
+ while (af.getViewport().updatingConsensus || af.getViewport().updatingConservation) {
+ Thread.sleep(150); // wait until things settle down
+ }
+ }
+ def public boolean doTest(AlignFrame af) {
+ Object pr = af.getViewport().getAlignment().getProperty("AC");
+ if (pr!=null) { System.out.println("Accession = "+(String) pr); }
+ af.selectAllSequenceMenuItem_actionPerformed(null)
+ def boolean done = false;
+ // Just try to save - don\'t mess around with clipboard
+ /*while (!done) {
+ try {
+ af.copy_actionPerformed(null)
+ done = true;
+ } catch (Exception e) {
+ Thread.sleep(100); // wait until clipboard might be available again
+ }
+ }*/
+ if (af==null) { return false; }
+ waitTillSettled(af);
+ // Try and save as a jalview project and reload
+ try {
+ // af.saveAlignment(safename, "Jalview")
+ new Jalview2XML().SaveState(new java.io.File(safename));
+ Thread.sleep(100);
+ } catch (Exception ex) {
+ System.out.println("Couldn\'t save.");
+ ex.printStackTrace(System.err);
+ return false;
+ }
+ waitTillSettled(af);
+ try {
+ Desktop.instance.closeAll_actionPerformed(null);
+ } catch (Exception ex) {}
+ System.gc();
+ try {
+ af = new FileLoader(false).LoadFileWaitTillLoaded(safename, FormatAdapter.FILE);
+ }
+ catch (Exception ex) {
+ System.out.println("Couldn't reload saved file.");
+ System.gc();
+ return false;
+ }
+ waitTillSettled(af);
+
+ Desktop.instance.closeAll_actionPerformed(null);
+
+ // af.paste(true)
+ // af.newView_actionPerformed(null)
+ // af.newView_actionPerformed(null)
+
+ return true;
+ }
+ def public boolean TestForAll(String dir) {
+ println "For directory or file : "+dir;
+ File fd = new File(dir);
+ if (!fd.isDirectory()) { return doSequentialReadTest(dir); }
+ fd.eachFile() { file -> TestForAll(file.getAbsolutePath()) };
+ }
+}
+def JvLoadTest newJvLoadTest(String tempFile) {
+ jalview.gui.Desktop.instance.closeAll_actionPerformed(null);
+ System.gc();
+ jalview.gui.Desktop.instance.desktop.showMemoryUsage(true);
+ return new JvLoadTest(tempFile)
}
\ No newline at end of file
-// do something groovy in jalview\r
-print "Hello World.\n";\r
-def alf = Jalview.getAlignframes();\r
-for (ala in alf)\r
-{\r
- // ala is an jalview.gui.AlignFrame object \r
- print ala.getTitle()+"\n";\r
- // get the parent jalview.datamodel.Alignment from the alignment viewport\r
- def alignment = ala.viewport.alignment;\r
- // get the first sequence from the jalview.datamodel.Alignment object\r
- def seq = alignment.getSequenceAt(0); \r
-}\r
+// do something groovy in jalview
+print "Hello World.\n";
+def alf = Jalview.getAlignframes();
+for (ala in alf)
+{
+ // ala is an jalview.gui.AlignFrame object
+ print ala.getTitle()+"\n";
+ // get the parent jalview.datamodel.Alignment from the alignment viewport
+ def alignment = ala.viewport.alignment;
+ // get the first sequence from the jalview.datamodel.Alignment object
+ def seq = alignment.getSequenceAt(0);
+}
-/**\r
- * Copyright 2010 Tim Down.\r
- *\r
- * Licensed under the Apache License, Version 2.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- *\r
- * http://www.apache.org/licenses/LICENSE-2.0\r
- *\r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- */\r
+/**
+ * Copyright 2010 Tim Down.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
var Hashtable=(function(){var p="function";var n=(typeof Array.prototype.splice==p)?function(s,r){s.splice(r,1)}:function(u,t){var s,v,r;if(t===u.length-1){u.length=t}else{s=u.slice(t+1);u.length=t;for(v=0,r=s.length;v<r;++v){u[t+v]=s[v]}}};function a(t){var r;if(typeof t=="string"){return t}else{if(typeof t.hashCode==p){r=t.hashCode();return(typeof r=="string")?r:a(r)}else{if(typeof t.toString==p){return t.toString()}else{try{return String(t)}catch(s){return Object.prototype.toString.call(t)}}}}}function g(r,s){return r.equals(s)}function e(r,s){return(typeof s.equals==p)?s.equals(r):(r===s)}function c(r){return function(s){if(s===null){throw new Error("null is not a valid "+r)}else{if(typeof s=="undefined"){throw new Error(r+" must not be undefined")}}}}var q=c("key"),l=c("value");function d(u,s,t,r){this[0]=u;this.entries=[];this.addEntry(s,t);if(r!==null){this.getEqualityFunction=function(){return r}}}var h=0,j=1,f=2;function o(r){return function(t){var s=this.entries.length,v,u=this.getEqualityFunction(t);while(s--){v=this.entries[s];if(u(t,v[0])){switch(r){case h:return true;case j:return v;case f:return[s,v[1]]}}}return false}}function k(r){return function(u){var v=u.length;for(var t=0,s=this.entries.length;t<s;++t){u[v+t]=this.entries[t][r]}}}d.prototype={getEqualityFunction:function(r){return(typeof r.equals==p)?g:e},getEntryForKey:o(j),getEntryAndIndexForKey:o(f),removeEntryForKey:function(s){var r=this.getEntryAndIndexForKey(s);if(r){n(this.entries,r[0]);return r[1]}return null},addEntry:function(r,s){this.entries[this.entries.length]=[r,s]},keys:k(0),values:k(1),getEntries:function(s){var u=s.length;for(var t=0,r=this.entries.length;t<r;++t){s[u+t]=this.entries[t].slice(0)}},containsKey:o(h),containsValue:function(s){var r=this.entries.length;while(r--){if(s===this.entries[r][1]){return true}}return false}};function m(s,t){var r=s.length,u;while(r--){u=s[r];if(t===u[0]){return r}}return null}function i(r,s){var t=r[s];return(t&&(t instanceof d))?t:null}function b(t,r){var w=this;var v=[];var u={};var x=(typeof t==p)?t:a;var s=(typeof r==p)?r:null;this.put=function(B,C){q(B);l(C);var D=x(B),E,A,z=null;E=i(u,D);if(E){A=E.getEntryForKey(B);if(A){z=A[1];A[1]=C}else{E.addEntry(B,C)}}else{E=new d(D,B,C,s);v[v.length]=E;u[D]=E}return z};this.get=function(A){q(A);var B=x(A);var C=i(u,B);if(C){var z=C.getEntryForKey(A);if(z){return z[1]}}return null};this.containsKey=function(A){q(A);var z=x(A);var B=i(u,z);return B?B.containsKey(A):false};this.containsValue=function(A){l(A);var z=v.length;while(z--){if(v[z].containsValue(A)){return true}}return false};this.clear=function(){v.length=0;u={}};this.isEmpty=function(){return !v.length};var y=function(z){return function(){var A=[],B=v.length;while(B--){v[B][z](A)}return A}};this.keys=y("keys");this.values=y("values");this.entries=y("getEntries");this.remove=function(B){q(B);var C=x(B),z,A=null;var D=i(u,C);if(D){A=D.removeEntryForKey(B);if(A!==null){if(!D.entries.length){z=m(v,C);n(v,z);delete u[C]}}}return A};this.size=function(){var A=0,z=v.length;while(z--){A+=v[z].entries.length}return A};this.each=function(C){var z=w.entries(),A=z.length,B;while(A--){B=z[A];C(B[0],B[1])}};this.putAll=function(H,C){var B=H.entries();var E,F,D,z,A=B.length;var G=(typeof C==p);while(A--){E=B[A];F=E[0];D=E[1];if(G&&(z=w.get(F))){D=C(F,z,D)}w.put(F,D)}};this.clone=function(){var z=new b(t,r);z.putAll(w);return z}}return b})();
\ No newline at end of file
-/* Jmol 12.0 script library Jmol.js 9:48 PM 1/31/2011 Bob Hanson\r
-\r
- checkbox heirarchy -- see http://chemapps.stolaf.edu/jmol/docs/examples-11/check.htm\r
-\r
- based on:\r
- *\r
- * Copyright (C) 2004-2005 Miguel, Jmol Development, www.jmol.org\r
- *\r
- * Contact: hansonr@stolaf.edu\r
- *\r
- * This library is free software; you can redistribute it and/or\r
- * modify it under the terms of the GNU Lesser General Public\r
- * License as published by the Free Software Foundation; either\r
- * version 2.1 of the License, or (at your option) any later version.\r
- *\r
- * This library is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
- * Lesser General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU Lesser General Public\r
- * License along with this library; if not, write to the Free Software\r
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA\r
- * 02111-1307 USA.\r
- */\r
-\r
-// for documentation see www.jmol.org/jslibrary\r
-\r
-try{if(typeof(_jmol)!="undefined")exit()\r
-\r
-// place "?NOAPPLET" on your command line to check applet control action with a textarea\r
-// place "?JMOLJAR=xxxxx" to use a specific jar file\r
-\r
-// bob hanson -- jmolResize(w,h) -- resizes absolutely or by percent (w or h 0.5 means 50%)\r
-// angel herraez -- update of jmolResize(w,h,targetSuffix) so it is not tied to first applet\r
-// bob hanson -- jmolEvaluate -- evaluates molecular math 8:37 AM 2/23/2007\r
-// bob hanson -- jmolScriptMessage -- returns all "scriptStatus" messages 8:37 AM 2/23/2007\r
-// bob hanson -- jmolScriptEcho -- returns all "scriptEcho" messages 8:37 AM 2/23/2007\r
-// bob hanson -- jmolScriptWait -- 11:31 AM 5/2/2006\r
-// bob hanson -- remove trailing separatorHTML in radio groups -- 12:18 PM 5/6/2006\r
-// bob hanson -- adds support for dynamic DOM script nodes 7:04 AM 5/19/2006\r
-// bob hanson -- adds try/catch for wiki - multiple code passes 7:05 AM 5/19/2006\r
-// bob hanson -- auto-initiates to defaultdir/defaultjar -- change as desired.\r
-// bob hanson -- adding save/restore orientation w/ and w/o delay 11:49 AM 5/25/2006\r
-// bob hanson -- adding AjaxJS service 11:16 AM 6/3/2006\r
-// bob hanson -- fix for iframes not available for finding applet\r
-// bob hanson -- added applet fake ?NOAPPLET URL flag\r
-// bob hanson -- added jmolSetCallback(calbackName, funcName) 3:32 PM 6/13/2006\r
-// used PRIOR to jmolApplet() or jmolAppletInline()\r
-// added 4th array element in jmolRadioGroup -- title\r
-// added <span> and id around link, checkbox, radio, menu\r
-// fixing AJAX loads for MSIE/Opera-Mozilla incompatibility\r
-// -- renamed Jmol-11.js from Jmol-new.js; JmolApplet.jar from JmolAppletProto.jar\r
-// renamed Jmol.js for Jmol 11 distribution\r
-// -- modified jmolRestoreOrientation() to be immediate, no 1-second delay\r
-// bob hanson -- jmolScriptWait always returns a string -- 11:23 AM 9/16/2006\r
-// bh -- jmolCommandInput()\r
-// bh -- jmolSetTranslation(TF) -- forces translation even if there might be message callback issues\r
-// bh -- minor fixes suggested by Angel\r
-// bh -- adds jmolSetSyncId() and jmolGetSyncId()\r
-// bh 3/2008 -- adds jmolAppendInlineScript() and jmolAppendInlineArray()\r
-// bh 3/2008 -- fixes IE7 bug in relation to jmolLoadInlineArray()\r
-// bh 6/2008 -- adds jmolSetAppletWindow()\r
-// Angel H. 6/2008 -- added html <label> tags to checkboxes and radio buttons [in jmolCheckbox() and _jmolRadio() functions]\r
-// bh 7/2008 -- code fix "for(i..." not "for(var i..."\r
-// bh 12/2008 -- jmolLoadInline, jmolLoadInlineArray, jmolLoadInlineScript, jmolAppendInlineScript, jmolAppendInlineArray all return error message or null (Jmol 11.7.16)\r
-// bh 12/2008 -- jmolScriptWaitOutput() -- waits for script to complete and delivers output normally sent to console\r
-\r
-// bh 5/2009 -- Support for XHTML using jmolSetXHTML(id)\r
-// ah & bh 6/2009 -- New jmolResizeApplet() more flexible, similar to jmolApplet() size syntax\r
-// bh 11/2009 -- care in accessing top.document\r
-// bh 12/2009 -- added jmolSetParameter(name, value)\r
-// bh 12/2009 -- added PARAMS=name:value;name:value;name:value... for command line\r
-// bh 12/2009 -- overhaul of target checking\r
-// bh 1/2010 -- all _xxxx() methods ALWAYS have complete argument list\r
-// bh 1/2010 -- adds option to run a JavaScript function from any Jmol control. \r
-// This is accomplished by passing an array rather than a script:\r
-// jmolHref([myfunc,"my param 1", "my param 2"], "testing")\r
-// function myfunc(jmolControlObject, [myfunc,"my param 1", "my param 2"], target){...}\r
-// and allows much more flexibility with responding to controls\r
-// bh 4/2010 -- added jmolSetMemoryMb(nMb)\r
-// ah 1/2011 -- wider detection of browsers; more browsers now use the object tag instead of the applet tag; \r
-// fix of object tag (removed classid) accounts for change of behavior in Chrome\r
-// bh 3/2011 -- added jmolLoadAjax_STOLAF_NIH\r
-\r
-var defaultdir = "."\r
-var defaultjar = "JmolApplet.jar"\r
-\r
-\r
-// Note added 12:41 PM 9/21/2008 by Bob Hanson, hansonr@stolaf.edu:\r
-\r
-// JMOLJAR=xxxxx.jar on the URL for this page will override\r
-// the JAR file specified in the jmolInitialize() call.\r
-\r
-// The idea is that it can be very useful to test a web page with different JAR files\r
-// Or for an expert user to substitute a signed applet for an unsigned one\r
-// so as to use a broader range of models or to create JPEG files, for example.\r
-\r
-// If the JAR file is not in the current directory (has any sort of "/" in its name)\r
-// then the user is presented with a warning and asked whether it is OK to change Jar files.\r
-// The default action, if the user just presses "OK" is to NOT allow the change. \r
-// The user must type the word "yes" in the prompt box for the change to be approved.\r
-\r
-// If you don't want people to be able to switch in their own JAR file on your page,\r
-// simply set this next line to read "var allowJMOLJAR = false".\r
-\r
-\r
-var undefined; // for IE 5 ... wherein undefined is undefined\r
-\r
-////////////////////////////////////////////////////////////////\r
-// Basic Scripting infrastruture\r
-////////////////////////////////////////////////////////////////\r
-\r
-function jmolInitialize(codebaseDirectory, fileNameOrUseSignedApplet) {\r
- if (_jmol.initialized)\r
- return;\r
- _jmol.initialized = true;\r
- if(_jmol.jmoljar) {\r
- var f = _jmol.jmoljar;\r
- if (f.indexOf("/") >= 0) {\r
- alert ("This web page URL is requesting that the applet used be " + f + ". This is a possible security risk, particularly if the applet is signed, because signed applets can read and write files on your local machine or network.")\r
- var ok = prompt("Do you want to use applet " + f + "? ","yes or no")\r
- if (ok == "yes") {\r
- codebaseDirectory = f.substring(0, f.lastIndexOf("/"));\r
- fileNameOrUseSignedApplet = f.substring(f.lastIndexOf("/") + 1);\r
- } else {\r
- _jmolGetJarFilename(fileNameOrUseSignedApplet);\r
- alert("The web page URL was ignored. Continuing using " + _jmol.archivePath + ' in directory "' + codebaseDirectory + '"');\r
- }\r
- } else {\r
- fileNameOrUseSignedApplet = f;\r
- }\r
- }\r
- _jmolSetCodebase(codebaseDirectory);\r
- _jmolGetJarFilename(fileNameOrUseSignedApplet);\r
- _jmolOnloadResetForms();\r
-}\r
-\r
-function jmolSetTranslation(TF) {\r
- _jmol.params.doTranslate = ''+TF;\r
-}\r
-\r
-function _jmolGetJarFilename(fileNameOrFlag) {\r
- _jmol.archivePath =\r
- (typeof(fileNameOrFlag) == "string" ? fileNameOrFlag : (fileNameOrFlag ? "JmolAppletSigned" : "JmolApplet") + "0.jar");\r
-}\r
-\r
-function jmolSetDocument(doc) {\r
- _jmol.currentDocument = doc;\r
-}\r
-\r
-function jmolSetAppletColor(boxbgcolor, boxfgcolor, progresscolor) {\r
- _jmolInitCheck();\r
- _jmol.params.boxbgcolor = boxbgcolor;\r
- if (boxfgcolor)\r
- _jmol.params.boxfgcolor = boxfgcolor\r
- else if (boxbgcolor == "white" || boxbgcolor == "#FFFFFF")\r
- _jmol.params.boxfgcolor = "black";\r
- else\r
- _jmol.params.boxfgcolor = "white";\r
- if (progresscolor)\r
- _jmol.params.progresscolor = progresscolor;\r
- if (_jmol.debugAlert)\r
- alert(" boxbgcolor=" + _jmol.params.boxbgcolor +\r
- " boxfgcolor=" + _jmol.params.boxfgcolor +\r
- " progresscolor=" + _jmol.params.progresscolor);\r
-}\r
-\r
-function jmolSetAppletWindow(w) {\r
- _jmol.appletWindow = w;\r
-}\r
-\r
-function jmolApplet(size, script, nameSuffix) {\r
- _jmolInitCheck();\r
- return _jmolApplet(size, null, script, nameSuffix);\r
-}\r
-\r
-////////////////////////////////////////////////////////////////\r
-// Basic controls\r
-////////////////////////////////////////////////////////////////\r
-\r
-// undefined means it wasn't there; null means it was explicitly listed as null (so as to skip it)\r
-\r
-function jmolButton(script, label, id, title) {\r
- _jmolInitCheck();\r
- id != undefined && id != null || (id = "jmolButton" + _jmol.buttonCount);\r
- label != undefined && label != null || (label = script.substring(0, 32));\r
- ++_jmol.buttonCount;\r
- var scriptIndex = _jmolAddScript(script);\r
- var t = "<span id=\"span_"+id+"\""+(title ? " title=\"" + title + "\"":"")+"><input type='button' name='" + id + "' id='" + id +\r
- "' value='" + label +\r
- "' onclick='_jmolClick(this," + scriptIndex + _jmol.targetText +\r
- ")' onmouseover='_jmolMouseOver(" + scriptIndex +\r
- ");return true' onmouseout='_jmolMouseOut()' " +\r
- _jmol.buttonCssText + " /></span>";\r
- if (_jmol.debugAlert)\r
- alert(t);\r
- return _jmolDocumentWrite(t);\r
-}\r
-\r
-function jmolCheckbox(scriptWhenChecked, scriptWhenUnchecked,\r
- labelHtml, isChecked, id, title) {\r
- _jmolInitCheck();\r
- id != undefined && id != null || (id = "jmolCheckbox" + _jmol.checkboxCount);\r
- ++_jmol.checkboxCount;\r
- if (scriptWhenChecked == undefined || scriptWhenChecked == null ||\r
- scriptWhenUnchecked == undefined || scriptWhenUnchecked == null) {\r
- alert("jmolCheckbox requires two scripts");\r
- return;\r
- }\r
- if (labelHtml == undefined || labelHtml == null) {\r
- alert("jmolCheckbox requires a label");\r
- return;\r
- }\r
- var indexChecked = _jmolAddScript(scriptWhenChecked);\r
- var indexUnchecked = _jmolAddScript(scriptWhenUnchecked);\r
- var eospan = "</span>"\r
- var t = "<span id=\"span_"+id+"\""+(title ? " title=\"" + title + "\"":"")+"><input type='checkbox' name='" + id + "' id='" + id +\r
- "' onclick='_jmolCbClick(this," +\r
- indexChecked + "," + indexUnchecked + _jmol.targetText +\r
- ")' onmouseover='_jmolCbOver(this," + indexChecked + "," +\r
- indexUnchecked +\r
- ");return true' onmouseout='_jmolMouseOut()' " +\r
- (isChecked ? "checked='true' " : "")+ _jmol.checkboxCssText + " />" \r
- if (labelHtml.toLowerCase().indexOf("<td>")>=0) {\r
- t += eospan\r
- eospan = "";\r
- }\r
- t += "<label for=\"" + id + "\">" + labelHtml + "</label>" +eospan;\r
- if (_jmol.debugAlert)\r
- alert(t);\r
- return _jmolDocumentWrite(t);\r
-}\r
-\r
-function jmolStartNewRadioGroup() {\r
- ++_jmol.radioGroupCount;\r
-}\r
-\r
-function jmolRadioGroup(arrayOfRadioButtons, separatorHtml, groupName, id, title) {\r
- /*\r
-\r
- array: [radio1,radio2,radio3...]\r
- where radioN = ["script","label",isSelected,"id","title"]\r
-\r
- */\r
-\r
- _jmolInitCheck();\r
- var type = typeof arrayOfRadioButtons;\r
- if (type != "object" || type == null || ! arrayOfRadioButtons.length) {\r
- alert("invalid arrayOfRadioButtons");\r
- return;\r
- }\r
- separatorHtml != undefined && separatorHtml != null || (separatorHtml = " ");\r
- var len = arrayOfRadioButtons.length;\r
- jmolStartNewRadioGroup();\r
- groupName || (groupName = "jmolRadioGroup" + (_jmol.radioGroupCount - 1));\r
- var t = "<span id='"+(id ? id : groupName)+"'>";\r
- for (var i = 0; i < len; ++i) {\r
- if (i == len - 1)\r
- separatorHtml = "";\r
- var radio = arrayOfRadioButtons[i];\r
- type = typeof radio;\r
- if (type == "object") {\r
- t += _jmolRadio(radio[0], radio[1], radio[2], separatorHtml, groupName, (radio.length > 3 ? radio[3]: (id ? id : groupName)+"_"+i), (radio.length > 4 ? radio[4] : 0), title);\r
- } else {\r
- t += _jmolRadio(radio, null, null, separatorHtml, groupName, (id ? id : groupName)+"_"+i, title);\r
- }\r
- }\r
- t+="</span>"\r
- if (_jmol.debugAlert)\r
- alert(t);\r
- return _jmolDocumentWrite(t);\r
-}\r
-\r
-\r
-function jmolRadio(script, labelHtml, isChecked, separatorHtml, groupName, id, title) {\r
- _jmolInitCheck();\r
- if (_jmol.radioGroupCount == 0)\r
- ++_jmol.radioGroupCount;\r
- var t = _jmolRadio(script, labelHtml, isChecked, separatorHtml, groupName, (id ? id : groupName + "_" + _jmol.radioCount), title ? title : 0);\r
- if (_jmol.debugAlert)\r
- alert(t);\r
- return _jmolDocumentWrite(t);\r
-}\r
-\r
-function jmolLink(script, label, id, title) {\r
- _jmolInitCheck();\r
- id != undefined && id != null || (id = "jmolLink" + _jmol.linkCount);\r
- label != undefined && label != null || (label = script.substring(0, 32));\r
- ++_jmol.linkCount;\r
- var scriptIndex = _jmolAddScript(script);\r
- var t = "<span id=\"span_"+id+"\""+(title ? " title=\"" + title + "\"":"")+"><a name='" + id + "' id='" + id + \r
- "' href='javascript:_jmolClick(this," + scriptIndex + _jmol.targetText + ");' onmouseover='_jmolMouseOver(" + scriptIndex +\r
- ");return true;' onmouseout='_jmolMouseOut()' " +\r
- _jmol.linkCssText + ">" + label + "</a></span>";\r
- if (_jmol.debugAlert)\r
- alert(t);\r
- return _jmolDocumentWrite(t);\r
-}\r
-\r
-function jmolCommandInput(label, size, id, title) {\r
- _jmolInitCheck();\r
- id != undefined && id != null || (id = "jmolCmd" + _jmol.cmdCount);\r
- label != undefined && label != null || (label = "Execute");\r
- size != undefined && !isNaN(size) || (size = 60);\r
- ++_jmol.cmdCount;\r
- var t = "<span id=\"span_"+id+"\""+(title ? " title=\"" + title + "\"":"")+"><input name='" + id + "' id='" + id + \r
- "' size='"+size+"' onkeypress='_jmolCommandKeyPress(event,\""+id+"\"" + _jmol.targetText + ")'><input type=button value = '"+label+"' onclick='jmolScript(document.getElementById(\""+id+"\").value" + _jmol.targetText + ")' /></span>";\r
- if (_jmol.debugAlert)\r
- alert(t);\r
- return _jmolDocumentWrite(t);\r
-}\r
-\r
-function _jmolCommandKeyPress(e, id, target) {\r
- var keycode = (window.event ? window.event.keyCode : e ? e.which : 0);\r
- if (keycode == 13) {\r
- var inputBox = document.getElementById(id)\r
- _jmolScriptExecute(inputBox, inputBox.value, target)\r
- }\r
-}\r
-\r
-function _jmolScriptExecute(element,script,target) {\r
- if (typeof(script) == "object")\r
- script[0](element, script, target)\r
- else\r
- jmolScript(script, target) \r
-}\r
-\r
-function jmolMenu(arrayOfMenuItems, size, id, title) {\r
- _jmolInitCheck();\r
- id != undefined && id != null || (id = "jmolMenu" + _jmol.menuCount);\r
- ++_jmol.menuCount;\r
- var type = typeof arrayOfMenuItems;\r
- if (type != null && type == "object" && arrayOfMenuItems.length) {\r
- var len = arrayOfMenuItems.length;\r
- if (typeof size != "number" || size == 1)\r
- size = null;\r
- else if (size < 0)\r
- size = len;\r
- var sizeText = size ? " size='" + size + "' " : "";\r
- var t = "<span id=\"span_"+id+"\""+(title ? " title=\"" + title + "\"":"")+"><select name='" + id + "' id='" + id +\r
- "' onChange='_jmolMenuSelected(this" + _jmol.targetText + ")'" +\r
- sizeText + _jmol.menuCssText + ">";\r
- for (var i = 0; i < len; ++i) {\r
- var menuItem = arrayOfMenuItems[i];\r
- type = typeof menuItem;\r
- var script, text;\r
- var isSelected = undefined;\r
- if (type == "object" && menuItem != null) {\r
- script = menuItem[0];\r
- text = menuItem[1];\r
- isSelected = menuItem[2];\r
- } else {\r
- script = text = menuItem;\r
- }\r
- text != undefined && text != null || (text = script); \r
- if (script=="#optgroup") {\r
- t += "<optgroup label='" + text + "'>"; \r
- } else if (script=="#optgroupEnd") {\r
- t += "</optgroup>"; \r
- } else { \r
- var scriptIndex = _jmolAddScript(script);\r
- var selectedText = isSelected ? "' selected='true'>" : "'>";\r
- t += "<option value='" + scriptIndex + selectedText + text + "</option>";\r
- }\r
- }\r
- t += "</select></span>";\r
- if (_jmol.debugAlert)\r
- alert(t);\r
- return _jmolDocumentWrite(t);\r
- }\r
-}\r
-\r
-function jmolHtml(html) {\r
- return _jmolDocumentWrite(html);\r
-}\r
-\r
-function jmolBr() {\r
- return _jmolDocumentWrite("<br />");\r
-}\r
-\r
-////////////////////////////////////////////////////////////////\r
-// advanced scripting functions\r
-////////////////////////////////////////////////////////////////\r
-\r
-function jmolDebugAlert(enableAlerts) {\r
- _jmol.debugAlert = (enableAlerts == undefined || enableAlerts)\r
-}\r
-\r
-function jmolAppletInline(size, inlineModel, script, nameSuffix) {\r
- _jmolInitCheck();\r
- return _jmolApplet(size, _jmolSterilizeInline(inlineModel),\r
- script, nameSuffix);\r
-}\r
-\r
-function jmolSetTarget(targetSuffix) {\r
- _jmol.targetSuffix = targetSuffix;\r
- _jmol.targetText = targetSuffix ? ",\"" + targetSuffix + "\"" : ",0";\r
-}\r
-\r
-function jmolScript(script, targetSuffix) {\r
- if (script) {\r
- _jmolCheckBrowser();\r
- if (targetSuffix == "all") {\r
- with (_jmol) {\r
- for (var i = 0; i < appletSuffixes.length; ++i) {\r
- var applet = _jmolGetApplet(appletSuffixes[i]);\r
- if (applet) applet.script(script);\r
- }\r
- }\r
- } else {\r
- var applet=_jmolGetApplet(targetSuffix);\r
- if (applet) applet.script(script);\r
- }\r
- }\r
-}\r
-\r
-function jmolLoadInline(model, targetSuffix) {\r
- if (!model)return "ERROR: NO MODEL"\r
- var applet=_jmolGetApplet(targetSuffix);\r
- if (!applet)return "ERROR: NO APPLET"\r
- if (typeof(model) == "string")\r
- return applet.loadInlineString(model, "", false);\r
- else\r
- return applet.loadInlineArray(model, "", false);\r
-}\r
-\r
-\r
-function jmolLoadInlineScript(model, script, targetSuffix) {\r
- if (!model)return "ERROR: NO MODEL"\r
- var applet=_jmolGetApplet(targetSuffix);\r
- if (!applet)return "ERROR: NO APPLET"\r
- return applet.loadInlineString(model, script, false);\r
-}\r
-\r
-\r
-function jmolLoadInlineArray(ModelArray, script, targetSuffix) {\r
- if (!model)return "ERROR: NO MODEL"\r
- script || (script="")\r
- var applet=_jmolGetApplet(targetSuffix);\r
- if (!applet)return "ERROR: NO APPLET"\r
- try {\r
- return applet.loadInlineArray(ModelArray, script, false);\r
- } catch (err) {\r
- //IE 7 bug\r
- return applet.loadInlineString(ModelArray.join("\n"), script, false);\r
- }\r
-}\r
-\r
-function jmolAppendInlineArray(ModelArray, script, targetSuffix) {\r
- if (!model)return "ERROR: NO MODEL"\r
- script || (script="")\r
- var applet=_jmolGetApplet(targetSuffix);\r
- if (!applet)return "ERROR: NO APPLET"\r
- try {\r
- return applet.loadInlineArray(ModelArray, script, true);\r
- } catch (err) {\r
- //IE 7 bug\r
- return applet.loadInlineString(ModelArray.join("\n"), script, true);\r
- }\r
-}\r
-\r
-function jmolAppendInlineScript(model, script, targetSuffix) {\r
- if (!model)return "ERROR: NO MODEL"\r
- var applet=_jmolGetApplet(targetSuffix);\r
- if (!applet)return "ERROR: NO APPLET"\r
- return applet.loadInlineString(model, script, true);\r
-}\r
-\r
-function jmolCheckBrowser(action, urlOrMessage, nowOrLater) {\r
- if (typeof action == "string") {\r
- action = action.toLowerCase();\r
- action == "alert" || action == "redirect" || action == "popup" || (action = null);\r
- }\r
- if (typeof action != "string")\r
- alert("jmolCheckBrowser(action, urlOrMessage, nowOrLater)\n\n" +\r
- "action must be 'alert', 'redirect', or 'popup'");\r
- else {\r
- if (typeof urlOrMessage != "string")\r
- alert("jmolCheckBrowser(action, urlOrMessage, nowOrLater)\n\n" +\r
- "urlOrMessage must be a string");\r
- else {\r
- _jmol.checkBrowserAction = action;\r
- _jmol.checkBrowserUrlOrMessage = urlOrMessage;\r
- }\r
- }\r
- if (typeof nowOrLater == "string" && nowOrLater.toLowerCase() == "now")\r
- _jmolCheckBrowser();\r
-}\r
-\r
-////////////////////////////////////////////////////////////////\r
-// Cascading Style Sheet Class support\r
-////////////////////////////////////////////////////////////////\r
-\r
-function jmolSetAppletCssClass(appletCssClass) {\r
- if (_jmol.hasGetElementById) {\r
- _jmol.appletCssClass = appletCssClass;\r
- _jmol.appletCssText = appletCssClass ? "class='" + appletCssClass + "' " : "";\r
- }\r
-}\r
-\r
-function jmolSetButtonCssClass(buttonCssClass) {\r
- if (_jmol.hasGetElementById) {\r
- _jmol.buttonCssClass = buttonCssClass;\r
- _jmol.buttonCssText = buttonCssClass ? "class='" + buttonCssClass + "' " : "";\r
- }\r
-}\r
-\r
-function jmolSetCheckboxCssClass(checkboxCssClass) {\r
- if (_jmol.hasGetElementById) {\r
- _jmol.checkboxCssClass = checkboxCssClass;\r
- _jmol.checkboxCssText = checkboxCssClass ? "class='" + checkboxCssClass + "' " : "";\r
- }\r
-}\r
-\r
-function jmolSetRadioCssClass(radioCssClass) {\r
- if (_jmol.hasGetElementById) {\r
- _jmol.radioCssClass = radioCssClass;\r
- _jmol.radioCssText = radioCssClass ? "class='" + radioCssClass + "' " : "";\r
- }\r
-}\r
-\r
-function jmolSetLinkCssClass(linkCssClass) {\r
- if (_jmol.hasGetElementById) {\r
- _jmol.linkCssClass = linkCssClass;\r
- _jmol.linkCssText = linkCssClass ? "class='" + linkCssClass + "' " : "";\r
- }\r
-}\r
-\r
-function jmolSetMenuCssClass(menuCssClass) {\r
- if (_jmol.hasGetElementById) {\r
- _jmol.menuCssClass = menuCssClass;\r
- _jmol.menuCssText = menuCssClass ? "class='" + menuCssClass + "' " : "";\r
- }\r
-}\r
-\r
-////////////////////////////////////////////////////////////////\r
-// functions for INTERNAL USE ONLY which are subject to change\r
-// use at your own risk ... you have been WARNED!\r
-////////////////////////////////////////////////////////////////\r
-var _jmol = {\r
- currentDocument: document,\r
-\r
- debugAlert: false,\r
- \r
- codebase: "",\r
- modelbase: ".",\r
- \r
- appletCount: 0,\r
- appletSuffixes: [],\r
- appletWindow: null,\r
- allowedJmolSize: [25, 2048, 300], // min, max, default (pixels)\r
- /* By setting the _jmol.allowedJmolSize[] variable in the webpage \r
- before calling jmolApplet(), limits for applet size can be overriden.\r
- 2048 standard for GeoWall (http://geowall.geo.lsa.umich.edu/home.html)\r
- */ \r
- buttonCount: 0,\r
- checkboxCount: 0,\r
- linkCount: 0,\r
- cmdCount: 0,\r
- menuCount: 0,\r
- radioCount: 0,\r
- radioGroupCount: 0,\r
- \r
- appletCssClass: null,\r
- appletCssText: "",\r
- buttonCssClass: null,\r
- buttonCssText: "",\r
- checkboxCssClass: null,\r
- checkboxCssText: "",\r
- java_arguments: "-Xmx512m",\r
- radioCssClass: null,\r
- radioCssText: "",\r
- linkCssClass: null,\r
- linkCssText: "",\r
- menuCssClass: null,\r
- menuCssText: "",\r
- \r
- targetSuffix: 0,\r
- targetText: ",0",\r
- scripts: [""],\r
- params: {\r
- syncId: ("" + Math.random()).substring(3),\r
- progressbar: "true",\r
- progresscolor: "blue",\r
- boxbgcolor: "black",\r
- boxfgcolor: "white",\r
- boxmessage: "Downloading JmolApplet ..."\r
- },\r
- ua: navigator.userAgent.toLowerCase(),\r
- // uaVersion: parseFloat(navigator.appVersion), // not used\r
- \r
- os: "unknown",\r
- browser: "unknown",\r
- browserVersion: 0,\r
- hasGetElementById: !!document.getElementById,\r
- isJavaEnabled: navigator.javaEnabled(),\r
- // isNetscape47Win: false, // not used, N4.7 is no longer supported even for detection\r
- useIEObject: false,\r
- useHtml4Object: false,\r
- \r
- windowsClassId: "clsid:8AD9C840-044E-11D1-B3E9-00805F499D93",\r
- windowsCabUrl:\r
- "http://java.sun.com/update/1.6.0/jinstall-6u22-windows-i586.cab",\r
-\r
- isBrowserCompliant: false,\r
- isJavaCompliant: false,\r
- isFullyCompliant: false,\r
-\r
- initialized: false,\r
- initChecked: false,\r
- \r
- browserChecked: false,\r
- checkBrowserAction: "alert",\r
- checkBrowserUrlOrMessage: null,\r
-\r
- archivePath: null, // JmolApplet0.jar OR JmolAppletSigned0.jar\r
-\r
- previousOnloadHandler: null,\r
-\r
- jmoljar: null, \r
- useNoApplet: false,\r
-\r
- ready: {}\r
-}\r
-\r
-with (_jmol) {\r
- function _jmolTestUA(candidate) {\r
- var ua = _jmol.ua;\r
- var index = ua.indexOf(candidate);\r
- if (index < 0)\r
- return false;\r
- _jmol.browser = candidate;\r
- _jmol.browserVersion = parseFloat(ua.substring(index+candidate.length+1));\r
- return true;\r
- }\r
- \r
- function _jmolTestOS(candidate) {\r
- if (_jmol.ua.indexOf(candidate) < 0)\r
- return false;\r
- _jmol.os = candidate;\r
- return true;\r
- }\r
- \r
- _jmolTestUA("konqueror") ||\r
- _jmolTestUA("webkit") ||\r
- _jmolTestUA("omniweb") ||\r
- _jmolTestUA("opera") ||\r
- _jmolTestUA("webtv") ||\r
- _jmolTestUA("icab") ||\r
- _jmolTestUA("msie") ||\r
- (_jmol.ua.indexOf("compatible") < 0 && _jmolTestUA("mozilla")); //Netscape, Mozilla, Seamonkey, Firefox and anything assimilated\r
- \r
- _jmolTestOS("linux") ||\r
- _jmolTestOS("unix") ||\r
- _jmolTestOS("mac") ||\r
- _jmolTestOS("win");\r
-\r
- /* not used:\r
- isNetscape47Win = (os == "win" && browser == "mozilla" &&\r
- browserVersion >= 4.78 && browserVersion <= 4.8);\r
- */\r
-\r
- if (os == "win") {\r
- isBrowserCompliant = hasGetElementById;\r
- } else if (os == "mac") { // mac is the problem child :-(\r
- if (browser == "mozilla" && browserVersion >= 5) {\r
- // miguel 2004 11 17\r
- // checking the plugins array does not work because\r
- // Netscape 7.2 OS X still has Java 1.3.1 listed even though\r
- // javaplugin.sf.net is installed to upgrade to 1.4.2\r
- eval("try {var v = java.lang.System.getProperty('java.version');" +\r
- " _jmol.isBrowserCompliant = v >= '1.4.2';" +\r
- " } catch (e) { }");\r
- } else if (browser == "opera" && browserVersion <= 7.54) {\r
- isBrowserCompliant = false;\r
- } else {\r
- isBrowserCompliant = hasGetElementById &&\r
- !((browser == "msie") ||\r
- (browser == "webkit" && browserVersion < 125.12));\r
- }\r
- } else if (os == "linux" || os == "unix") {\r
- if (browser == "konqueror" && browserVersion <= 3.3)\r
- isBrowserCompliant = false;\r
- else\r
- isBrowserCompliant = hasGetElementById;\r
- } else { // other OS\r
- isBrowserCompliant = hasGetElementById;\r
- }\r
-\r
- // possibly more checks in the future for this\r
- isJavaCompliant = isJavaEnabled;\r
-\r
- isFullyCompliant = isBrowserCompliant && isJavaCompliant;\r
-\r
- useIEObject = (os == "win" && browser == "msie" && browserVersion >= 5.5);\r
- useHtml4Object =\r
- (browser == "mozilla" && browserVersion >= 5) ||\r
- (browser == "opera" && browserVersion >= 8) ||\r
- (browser == "webkit" && browserVersion >= 412.2);\r
- try {\r
- if (top.location.search.indexOf("JMOLJAR=")>=0)\r
- jmoljar = top.location.search.split("JMOLJAR=")[1].split("&")[0];\r
- } catch(e) {\r
- // can't access top.location\r
- }\r
- try {\r
- useNoApplet = (top.location.search.indexOf("NOAPPLET")>=0);\r
- } catch(e) {\r
- // can't access top.document\r
- }\r
-}\r
-\r
-function jmolSetMemoryMb(nMb) {\r
- _jmol.java_arguments = "-Xmx" + Math.round(nMb) + "m"\r
-}\r
-\r
-function jmolSetParameter(name,value) {\r
- _jmol.params[name] = value\r
-}\r
-\r
-function jmolSetCallback(callbackName,funcName) {\r
- _jmol.params[callbackName] = funcName\r
-}\r
-\r
- try {\r
-// note this is done FIRST, so it cannot override a setting done by the developer\r
- if (top.location.search.indexOf("PARAMS=")>=0) {\r
- var pars = unescape(top.location.search.split("PARAMS=")[1].split("&")[0]).split(";");\r
- for (var i = 0; i < pars.length; i++) {\r
- var p = pars[i].split(":");\r
- jmolSetParameter(p[0],p[1]);\r
- }\r
- }\r
- } catch(e) {\r
- // can't access top.location\r
- }\r
-\r
-function jmolSetSyncId(n) {\r
- return _jmol.params["syncId"] = n\r
-}\r
-\r
-function jmolGetSyncId() {\r
- return _jmol.params["syncId"]\r
-}\r
-\r
-function jmolSetLogLevel(n) {\r
- _jmol.params.logLevel = ''+n;\r
-}\r
-\r
- /* AngelH, mar2007:\r
- By (re)setting these variables in the webpage before calling jmolApplet(), \r
- a custom message can be provided (e.g. localized for user's language) when no Java is installed.\r
- */\r
-if (noJavaMsg==undefined) var noJavaMsg = \r
- "You do not have Java applets enabled in your web browser, or your browser is blocking this applet.<br />\n" +\r
- "Check the warning message from your browser and/or enable Java applets in<br />\n" +\r
- "your web browser preferences, or install the Java Runtime Environment from <a href='http://www.java.com'>www.java.com</a><br />";\r
-if (noJavaMsg2==undefined) var noJavaMsg2 = \r
- "You do not have the<br />\n" +\r
- "Java Runtime Environment<br />\n" +\r
- "installed for applet support.<br />\n" +\r
- "Visit <a href='http://www.java.com'>www.java.com</a>";\r
-function _jmolApplet(size, inlineModel, script, nameSuffix) {\r
- /* AngelH, mar2007\r
- Fixed percent / pixel business, to avoid browser errors:\r
- put "px" where needed, avoid where not.\r
-\r
- Bob Hanson, 1/2010\r
- Fixed inline escape changing returns to | \r
- */\r
- with (_jmol) {\r
- nameSuffix == undefined && (nameSuffix = appletCount);\r
- appletSuffixes.push(nameSuffix);\r
- ++appletCount;\r
- script || (script = "select *");\r
- var sz = _jmolGetAppletSize(size);\r
- var widthAndHeight = " width='" + sz[0] + "' height='" + sz[1] + "' ";\r
- var tHeader, tFooter;\r
- codebase || jmolInitialize(".");\r
- if (useIEObject || useHtml4Object) {\r
- params.archive = archivePath;\r
- params.mayscript = 'true';\r
- params.codebase = codebase;\r
- params.code = 'JmolApplet';\r
- tHeader = \r
- "<object name='jmolApplet" + nameSuffix +\r
- "' id='jmolApplet" + nameSuffix + "' " + appletCssText + "\n" +\r
- widthAndHeight + "\n";\r
- tFooter = "</object>";\r
- }\r
- if (java_arguments)\r
- params.java_arguments = java_arguments;\r
- if (useIEObject) { // use MSFT IE6 object tag with .cab file reference\r
- tHeader += " classid='" + windowsClassId + "'\n" +\r
- (windowsCabUrl ? " codebase='" + windowsCabUrl + "'\n" : "") + ">\n";\r
- } else if (useHtml4Object) { // use HTML4 object tag\r
- tHeader += " type='application/x-java-applet'\n>\n";\r
- /* " classid='java:JmolApplet'\n" + AH removed this\r
- Chromium Issue 62076: Java Applets using an <object> with a classid paramater don't load.\r
- http://code.google.com/p/chromium/issues/detail?id=62076\r
- They say this is the correct behavior according to the spec, and there's no indication at this point \r
- that WebKit will be changing the handling, so eventually Safari will acquire this behavior too.\r
- Removing the classid parameter seems to be well tolerated by all browsers (even IE!).\r
- */\r
- } else { // use applet tag\r
- tHeader = \r
- "<applet name='jmolApplet" + nameSuffix +\r
- "' id='jmolApplet" + nameSuffix + "' " + appletCssText + "\n" +\r
- widthAndHeight + "\n" +\r
- " code='JmolApplet'" +\r
- " archive='" + archivePath + "' codebase='" + codebase + "'\n" +\r
- " mayscript='true'>\n";\r
- tFooter = "</applet>";\r
- }\r
- var visitJava;\r
- if (useIEObject || useHtml4Object) {\r
- var szX = "width:" + sz[0]\r
- if ( szX.indexOf("%")==-1 ) szX+="px" \r
- var szY = "height:" + sz[1]\r
- if ( szY.indexOf("%")==-1 ) szY+="px" \r
- visitJava =\r
- "<p style='background-color:yellow; color:black; " +\r
- szX + ";" + szY + ";" +\r
- // why doesn't this vertical-align work?\r
- "text-align:center;vertical-align:middle;'>\n" +\r
- noJavaMsg +\r
- "</p>";\r
- } else {\r
- visitJava =\r
- "<table bgcolor='yellow'><tr>" +\r
- "<td align='center' valign='middle' " + widthAndHeight + "><font color='black'>\n" +\r
- noJavaMsg2 +\r
- "</font></td></tr></table>";\r
- }\r
- params.loadInline = (inlineModel ? inlineModel : "");\r
- params.script = (script ? _jmolSterilizeScript(script) : "");\r
- var t = tHeader + _jmolParams() + visitJava + tFooter;\r
- jmolSetTarget(nameSuffix);\r
- ready["jmolApplet" + nameSuffix] = false;\r
- if (_jmol.debugAlert)\r
- alert(t);\r
- return _jmolDocumentWrite(t);\r
- }\r
-}\r
-\r
-function _jmolParams() {\r
- var t = "";\r
- for (var i in _jmol.params)\r
- if(_jmol.params[i]!="")\r
- t+=" <param name='"+i+"' value='"+_jmol.params[i]+"' />\n";\r
- return t\r
-}\r
-\r
-function _jmolInitCheck() {\r
- if (_jmol.initChecked)\r
- return;\r
- _jmol.initChecked = true;\r
- jmolInitialize(defaultdir, defaultjar)\r
-}\r
-\r
-function _jmolCheckBrowser() {\r
- with (_jmol) {\r
- if (browserChecked)\r
- return;\r
- browserChecked = true;\r
- \r
- if (isFullyCompliant)\r
- return true;\r
-\r
- if (checkBrowserAction == "redirect")\r
- location.href = checkBrowserUrlOrMessage;\r
- else if (checkBrowserAction == "popup")\r
- _jmolPopup(checkBrowserUrlOrMessage);\r
- else {\r
- var msg = checkBrowserUrlOrMessage;\r
- if (msg == null)\r
- msg = "Your web browser is not fully compatible with Jmol\n\n" +\r
- "browser: " + browser +\r
- " version: " + browserVersion +\r
- " os: " + os +\r
- " isBrowserCompliant: " + isBrowserCompliant +\r
- " isJavaCompliant: " + isJavaCompliant +\r
- "\n\n" + ua;\r
- alert(msg);\r
- }\r
- }\r
- return false;\r
-}\r
-\r
-function jmolSetXHTML(id) {\r
- _jmol.isXHTML = true\r
- _jmol.XhtmlElement = null\r
- _jmol.XhtmlAppendChild = false\r
- if (id){\r
- _jmol.XhtmlElement = document.getElementById(id)\r
- _jmol.XhtmlAppendChild = true\r
- }\r
-}\r
-\r
-function _jmolDocumentWrite(text) {\r
- if (_jmol.currentDocument) {\r
- if (_jmol.isXHTML && !_jmol.XhtmlElement) {\r
- var s = document.getElementsByTagName("script")\r
- _jmol.XhtmlElement = s.item(s.length - 1)\r
- _jmol.XhtmlAppendChild = false\r
- }\r
- if (_jmol.XhtmlElement) {\r
- _jmolDomDocumentWrite(text)\r
- } else {\r
- _jmol.currentDocument.write(text);\r
- }\r
- }\r
- return text;\r
-}\r
-\r
-function _jmolDomDocumentWrite(data) {\r
- var pt = 0\r
- var Ptr = []\r
- Ptr[0] = 0\r
- while (Ptr[0] < data.length) {\r
- var child = _jmolGetDomElement(data, Ptr)\r
- if (!child)break\r
- if (_jmol.XhtmlAppendChild)\r
- _jmol.XhtmlElement.appendChild(child)\r
- else\r
- _jmol.XhtmlElement.parentNode.insertBefore(child, _jmol.XhtmlElement); \r
- }\r
-}\r
-function _jmolGetDomElement(data, Ptr, closetag, lvel) {\r
- var e = document.createElement("span")\r
- e.innerHTML = data\r
- Ptr[0] = data.length\r
- return e\r
-\r
-//unnecessary?\r
-\r
- closetag || (closetag = "")\r
- lvel || (lvel = 0)\r
- var pt0 = Ptr[0]\r
- var pt = pt0\r
- while (pt < data.length && data.charAt(pt) != "<") pt++\r
- if (pt != pt0) {\r
- var text = data.substring(pt0, pt)\r
- Ptr[0] = pt\r
- return document.createTextNode(text)\r
- } \r
- pt0 = ++pt\r
- var ch\r
- while (pt < data.length && "\n\r\t >".indexOf(ch = data.charAt(pt)) < 0) pt++\r
- var tagname = data.substring(pt0, pt)\r
- var e = (tagname == closetag || tagname == "/" ? "" \r
- : document.createElementNS ? document.createElementNS('http://www.w3.org/1999/xhtml', tagname)\r
- : document.createElement(tagname));\r
- if (ch == ">") {\r
- Ptr[0] = ++pt\r
- return e\r
- }\r
- while (pt < data.length && (ch = data.charAt(pt)) != ">") {\r
- while (pt < data.length && "\n\r\t ".indexOf(ch = data.charAt(pt)) >= 0) pt++\r
- pt0 = pt\r
- while (pt < data.length && "\n\r\t =/>".indexOf(ch = data.charAt(pt)) < 0) pt++\r
- var attrname = data.substring(pt0, pt).toLowerCase()\r
- if (attrname && ch != "=") \r
- e.setAttribute(attrname, "true")\r
- while (pt < data.length && "\n\r\t ".indexOf(ch = data.charAt(pt)) >= 0) pt++\r
- if (ch == "/") {\r
- Ptr[0] = pt + 2\r
- return e\r
- } else if (ch == "=") {\r
- var quote = data.charAt(++pt)\r
- pt0 = ++pt\r
- while (pt < data.length && (ch = data.charAt(pt)) != quote) pt++\r
- var attrvalue = data.substring(pt0, pt)\r
- e.setAttribute(attrname, attrvalue)\r
- pt++\r
- }\r
- }\r
- Ptr[0] = ++pt\r
- while (Ptr[0] < data.length) {\r
- var child = _jmolGetDomElement(data, Ptr, "/" + tagname, lvel+1)\r
- if (!child)break\r
- e.appendChild(child)\r
- }\r
- return e\r
-}\r
-\r
-function _jmolPopup(url) {\r
- var popup = window.open(url, "JmolPopup",\r
- "left=150,top=150,height=400,width=600," +\r
- "directories=yes,location=yes,menubar=yes," +\r
- "toolbar=yes," +\r
- "resizable=yes,scrollbars=yes,status=yes");\r
- if (popup.focus)\r
- poup.focus();\r
-}\r
-\r
-function _jmolReadyCallback(name) {\r
- if (_jmol.debugAlert)\r
- alert(name + " is ready");\r
- _jmol.ready["" + name] = true;\r
-}\r
-\r
-function _jmolSterilizeScript(script) {\r
- script = script.replace(/'/g, "'");\r
- if (_jmol.debugAlert)\r
- alert("script:\n" + script);\r
- return script;\r
-}\r
-\r
-function _jmolSterilizeInline(model) {\r
- model = model.replace(/\r|\n|\r\n/g, (model.indexOf("|") >= 0 ? "\\/n" : "|")).replace(/'/g, "'");\r
- if (_jmol.debugAlert)\r
- alert("inline model:\n" + model);\r
- return model;\r
-}\r
-\r
-function _jmolRadio(script, labelHtml, isChecked, separatorHtml, groupName, id, title) {\r
- ++_jmol.radioCount;\r
- groupName != undefined && groupName != null || (groupName = "jmolRadioGroup" + (_jmol.radioGroupCount - 1));\r
- if (!script)\r
- return "";\r
- labelHtml != undefined && labelHtml != null || (labelHtml = script.substring(0, 32));\r
- separatorHtml || (separatorHtml = "")\r
- var scriptIndex = _jmolAddScript(script);\r
- var eospan = "</span>"\r
- var t = "<span id=\"span_"+id+"\""+(title ? " title=\"" + title + "\"":"")+"><input name='" \r
- + groupName + "' id='"+id+"' type='radio' onclick='_jmolClick(this," +\r
- scriptIndex + _jmol.targetText + ");return true;' onmouseover='_jmolMouseOver(" +\r
- scriptIndex + ");return true;' onmouseout='_jmolMouseOut()' " +\r
- (isChecked ? "checked='true' " : "") + _jmol.radioCssText + " />"\r
- if (labelHtml.toLowerCase().indexOf("<td>")>=0) {\r
- t += eospan\r
- eospan = "";\r
- }\r
- t += "<label for=\"" + id + "\">" + labelHtml + "</label>" +eospan + separatorHtml;\r
-\r
- return t;\r
-}\r
-\r
-function _jmolFindApplet(target) {\r
- // first look for the target in the current window\r
- var applet = _jmolFindAppletInWindow(_jmol.appletWindow != null ? _jmol.appletWindow : window, target);\r
- // THEN look for the target in child frames\r
- if (applet == undefined)\r
- applet = _jmolSearchFrames(window, target);\r
- // FINALLY look for the target in sibling frames\r
- if (applet == undefined)\r
- applet = _jmolSearchFrames(top, target); // look starting in top frame\r
- return applet;\r
-}\r
-\r
-function _jmolGetApplet(targetSuffix){\r
- var target = "jmolApplet" + (targetSuffix ? targetSuffix : "0");\r
- var applet = _jmolFindApplet(target);\r
- if (applet) return applet\r
- _jmol.alerted || alert("could not find applet " + target);\r
- _jmol.alerted = true;\r
- return null\r
-}\r
-\r
-function _jmolSearchFrames(win, target) {\r
- var applet;\r
- var frames = win.frames;\r
- if (frames && frames.length) { // look in all the frames below this window\r
- try{\r
- for (var i = 0; i < frames.length; ++i) {\r
- applet = _jmolSearchFrames(frames[i], target);\r
- if (applet)\r
- return applet;\r
- }\r
- }catch(e) {\r
- if (_jmol.debugAlert)\r
- alert("Jmol.js _jmolSearchFrames cannot access " + win.name + ".frame[" + i + "] consider using jmolSetAppletWindow()") \r
- }\r
- }\r
- return applet = _jmolFindAppletInWindow(win, target)\r
-}\r
-\r
-function _jmolFindAppletInWindow(win, target) {\r
- var doc = win.document;\r
- if (doc.getElementById(target))\r
- return doc.getElementById(target);\r
- else if (doc.applets)\r
- return doc.applets[target];\r
- else\r
- return doc[target]; \r
-}\r
-\r
-function _jmolAddScript(script) {\r
- if (!script)\r
- return 0;\r
- var index = _jmol.scripts.length;\r
- _jmol.scripts[index] = script;\r
- return index;\r
-}\r
-\r
-function _jmolClick(elementClicked, scriptIndex, targetSuffix) {\r
- _jmol.element = elementClicked;\r
- _jmolScriptExecute(elementClicked, _jmol.scripts[scriptIndex], targetSuffix);\r
-}\r
-\r
-function _jmolMenuSelected(menuObject, targetSuffix) {\r
- var scriptIndex = menuObject.value;\r
- if (scriptIndex != undefined) {\r
- _jmolScriptExecute(menuObject, _jmol.scripts[scriptIndex], targetSuffix);\r
- return;\r
- }\r
- var len = menuObject.length;\r
- if (typeof len == "number") {\r
- for (var i = 0; i < len; ++i) {\r
- if (menuObject[i].selected) {\r
- _jmolClick(menuObject[i], menuObject[i].value, targetSuffix);\r
- return;\r
- }\r
- }\r
- }\r
- alert("?Que? menu selected bug #8734");\r
-}\r
-\r
-\r
-_jmol.checkboxMasters = {};\r
-_jmol.checkboxItems = {};\r
-\r
-function jmolSetCheckboxGroup(chkMaster,chkBox) {\r
- var id = chkMaster;\r
- if(typeof(id)=="number")id = "jmolCheckbox" + id;\r
- chkMaster = document.getElementById(id);\r
- if (!chkMaster)alert("jmolSetCheckboxGroup: master checkbox not found: " + id);\r
- var m = _jmol.checkboxMasters[id] = {};\r
- m.chkMaster = chkMaster;\r
- m.chkGroup = {};\r
- for (var i = 1; i < arguments.length; i++){\r
- var id = arguments[i];\r
- if(typeof(id)=="number")id = "jmolCheckbox" + id;\r
- checkboxItem = document.getElementById(id);\r
- if (!checkboxItem)alert("jmolSetCheckboxGroup: group checkbox not found: " + id);\r
- m.chkGroup[id] = checkboxItem;\r
- _jmol.checkboxItems[id] = m;\r
- }\r
-}\r
-\r
-function _jmolNotifyMaster(m){\r
- //called when a group item is checked\r
- var allOn = true;\r
- var allOff = true;\r
- for (var chkBox in m.chkGroup){\r
- if(m.chkGroup[chkBox].checked)\r
- allOff = false;\r
- else\r
- allOn = false;\r
- }\r
- if (allOn)m.chkMaster.checked = true; \r
- if (allOff)m.chkMaster.checked = false;\r
- if ((allOn || allOff) && _jmol.checkboxItems[m.chkMaster.id])\r
- _jmolNotifyMaster(_jmol.checkboxItems[m.chkMaster.id])\r
-}\r
-\r
-function _jmolNotifyGroup(m, isOn){\r
- //called when a master item is checked\r
- for (var chkBox in m.chkGroup){\r
- var item = m.chkGroup[chkBox]\r
- item.checked = isOn;\r
- if (_jmol.checkboxMasters[item.id])\r
- _jmolNotifyGroup(_jmol.checkboxMasters[item.id], isOn)\r
- }\r
-}\r
-\r
-function _jmolCbClick(ckbox, whenChecked, whenUnchecked, targetSuffix) {\r
- _jmol.control = ckbox\r
- _jmolClick(ckbox, ckbox.checked ? whenChecked : whenUnchecked, targetSuffix);\r
- if(_jmol.checkboxMasters[ckbox.id])\r
- _jmolNotifyGroup(_jmol.checkboxMasters[ckbox.id], ckbox.checked)\r
- if(_jmol.checkboxItems[ckbox.id])\r
- _jmolNotifyMaster(_jmol.checkboxItems[ckbox.id])\r
-}\r
-\r
-function _jmolCbOver(ckbox, whenChecked, whenUnchecked) {\r
- window.status = _jmol.scripts[ckbox.checked ? whenUnchecked : whenChecked];\r
-}\r
-\r
-function _jmolMouseOver(scriptIndex) {\r
- window.status = _jmol.scripts[scriptIndex];\r
-}\r
-\r
-function _jmolMouseOut() {\r
- window.status = " ";\r
- return true;\r
-}\r
-\r
-function _jmolSetCodebase(codebase) {\r
- _jmol.codebase = codebase ? codebase : ".";\r
- if (_jmol.debugAlert)\r
- alert("jmolCodebase=" + _jmol.codebase);\r
-}\r
-\r
-function _jmolOnloadResetForms() {\r
- // must be evaluated ONLY once\r
- _jmol.previousOnloadHandler = window.onload;\r
- window.onload =\r
- function() {\r
- with (_jmol) {\r
- if (buttonCount+checkboxCount+menuCount+radioCount+radioGroupCount > 0) {\r
- var forms = document.forms;\r
- for (var i = forms.length; --i >= 0; )\r
- forms[i].reset();\r
- }\r
- if (previousOnloadHandler)\r
- previousOnloadHandler();\r
- }\r
- }\r
-}\r
-\r
-////////////////////////////////////\r
-/////extensions for getProperty/////\r
-////////////////////////////////////\r
-\r
-\r
-function _jmolEvalJSON(s,key){\r
- s=s+""\r
- if(!s)return []\r
- if(s.charAt(0)!="{"){\r
- if(s.indexOf(" | ")>=0)s=s.replace(/\ \|\ /g, "\n")\r
- return s\r
- }\r
- var A = eval("("+s+")")\r
- if(!A)return\r
- if(key && A[key])A=A[key]\r
- return A\r
-}\r
-\r
-function _jmolEnumerateObject(A,key){\r
- var sout=""\r
- if(typeof(A) == "string" && A!="null"){\r
- sout+="\n"+key+"=\""+A+"\""\r
- }else if(!isNaN(A)||A==null){\r
- sout+="\n"+key+"="+(A+""==""?"null":A)\r
- }else if(A.length){\r
- sout+=key+"=[]"\r
- for(var i=0;i<A.length;i++){\r
- sout+="\n"\r
- if(typeof(A[i]) == "object"||typeof(A[i]) == "array"){\r
- sout+=_jmolEnumerateObject(A[i],key+"["+i+"]")\r
- }else{\r
- sout+=key+"["+i+"]="+(typeof(A[i]) == "string" && A[i]!="null"?"\""+A[i].replace(/\"/g,"\\\"")+"\"":A[i])\r
- }\r
- }\r
- }else{\r
- if(key != ""){\r
- sout+=key+"={}"\r
- key+="."\r
- }\r
- \r
- for(var i in A){\r
- sout+="\n"\r
- if(typeof(A[i]) == "object"||typeof(A[i]) == "array"){\r
- sout+=_jmolEnumerateObject(A[i],key+i)\r
- }else{\r
- sout+=key+i+"="+(typeof(A[i]) == "string" && A[i]!="null"?"\""+A[i].replace(/\"/g,"\\\"")+"\"":A[i])\r
- }\r
- }\r
- } \r
- return sout\r
-}\r
-\r
-\r
-function _jmolSortKey0(a,b){\r
- return (a[0]<b[0]?1:a[0]>b[0]?-1:0)\r
-}\r
-\r
-function _jmolSortMessages(A){\r
- if(!A || typeof(A)!="object")return []\r
- var B = []\r
- for(var i=A.length-1;i>=0;i--)for(var j=0;j<A[i].length;j++)B[B.length]=A[i][j]\r
- if(B.length == 0) return\r
- B=B.sort(_jmolSortKey0)\r
- return B\r
-}\r
-\r
-/////////additional extensions //////////\r
-\r
-\r
-function _jmolDomScriptLoad(URL){\r
- //open(URL) //to debug\r
- _jmol.servercall=URL\r
- var node = document.getElementById("_jmolScriptNode")\r
- if (node && _jmol.browser!="msie"){\r
- document.getElementsByTagName("HEAD")[0].removeChild(node)\r
- node=null\r
- }\r
- if (node) {\r
- node.setAttribute("src",URL)\r
- } else {\r
- node=document.createElement("script")\r
- node.setAttribute("id","_jmolScriptNode")\r
- node.setAttribute("type","text/javascript")\r
- node.setAttribute("src",URL)\r
- document.getElementsByTagName("HEAD")[0].appendChild(node)\r
- }\r
-}\r
-\r
-\r
-function _jmolExtractPostData(url){\r
- S=url.split("&POST:")\r
- var s=""\r
- for(var i=1;i<S.length;i++){\r
- KV=S[i].split("=")\r
- s+="&POSTKEY"+i+"="+KV[0]\r
- s+="&POSTVALUE"+i+"="+KV[1]\r
- }\r
- return "&url="+escape(S[0])+s\r
-}\r
-\r
-function _jmolLoadModel(targetSuffix,remoteURL,array,isError,errorMessage){\r
- //called by server, but in client\r
- //overload this function to customize return\r
- _jmol.remoteURL=remoteURL\r
- isError && alert(errorMessage)\r
- jmolLoadInlineScript(array.join("\n"),_jmol.optionalscript,targetSuffix)\r
-}\r
-\r
-//////////user property/status functions/////////\r
-\r
-function jmolGetStatus(strStatus,targetSuffix){\r
- return _jmolSortMessages(jmolGetPropertyAsArray("jmolStatus",strStatus,targetSuffix))\r
-}\r
-\r
-function jmolGetPropertyAsArray(sKey,sValue,targetSuffix) {\r
- return _jmolEvalJSON(jmolGetPropertyAsJSON(sKey,sValue,targetSuffix),sKey)\r
-}\r
-\r
-function jmolGetPropertyAsString(sKey,sValue,targetSuffix) {\r
- var applet = _jmolGetApplet(targetSuffix);\r
- sValue == undefined && (sValue="");\r
- return (applet ? applet.getPropertyAsString(sKey,sValue) + "" : "")\r
-}\r
-\r
-function jmolGetPropertyAsJSON(sKey,sValue,targetSuffix) {\r
- sValue == undefined && (sValue = "")\r
- var applet = _jmolGetApplet(targetSuffix);\r
- try {\r
- return (applet ? applet.getPropertyAsJSON(sKey,sValue) + "" : "")\r
- } catch(e) {\r
- return ""\r
- }\r
-}\r
-\r
-function jmolGetPropertyAsJavaObject(sKey,sValue,targetSuffix) {\r
- sValue == undefined && (sValue = "")\r
- var applet = _jmolGetApplet(targetSuffix);\r
- return (applet ? applet.getProperty(sKey,sValue) : null)\r
-}\r
-\r
-\r
-function jmolDecodeJSON(s) {\r
- return _jmolEnumerateObject(_jmolEvalJSON(s),"")\r
-}\r
-\r
-\r
-///////// synchronous scripting ////////\r
-\r
-function jmolScriptWait(script, targetSuffix) {\r
- targetSuffix == undefined && (targetSuffix="0")\r
- var Ret=jmolScriptWaitAsArray(script, targetSuffix)\r
- var s = ""\r
- for(var i=Ret.length;--i>=0;)\r
- for(var j=0;j< Ret[i].length;j++)\r
- s+=Ret[i][j]+"\n"\r
- return s\r
-}\r
-\r
-function jmolScriptWaitOutput(script, targetSuffix) {\r
- targetSuffix == undefined && (targetSuffix="0")\r
- var ret = ""\r
- try{\r
- if (script) {\r
- _jmolCheckBrowser();\r
- var applet=_jmolGetApplet(targetSuffix);\r
- if (applet) ret += applet.scriptWaitOutput(script);\r
- }\r
- }catch(e){\r
- }\r
- return ret;\r
-}\r
-\r
-function jmolEvaluate(molecularMath, targetSuffix) {\r
-\r
- //carries out molecular math on a model\r
-\r
- targetSuffix == undefined && (targetSuffix="0")\r
- var result = "" + jmolGetPropertyAsJavaObject("evaluate", molecularMath, targetSuffix);\r
- var s = result.replace(/\-*\d+/,"")\r
- if (s == "" && !isNaN(parseInt(result)))return parseInt(result);\r
- var s = result.replace(/\-*\d*\.\d*/,"")\r
- if (s == "" && !isNaN(parseFloat(result)))return parseFloat(result);\r
- return result;\r
-}\r
-\r
-function jmolScriptEcho(script, targetSuffix) {\r
- // returns a newline-separated list of all echos from a script\r
- targetSuffix == undefined && (targetSuffix="0")\r
- var Ret=jmolScriptWaitAsArray(script, targetSuffix)\r
- var s = ""\r
- for(var i=Ret.length;--i>=0;)\r
- for(var j=Ret[i].length;--j>=0;)\r
- if (Ret[i][j][1] == "scriptEcho")s+=Ret[i][j][3]+"\n"\r
- return s.replace(/ \| /g, "\n")\r
-}\r
-\r
-\r
-function jmolScriptMessage(script, targetSuffix) {\r
- // returns a newline-separated list of all messages from a script, ending with "script completed\n"\r
- targetSuffix == undefined && (targetSuffix="0")\r
- var Ret=jmolScriptWaitAsArray(script, targetSuffix)\r
- var s = ""\r
- for(var i=Ret.length;--i>=0;)\r
- for(var j=Ret[i].length;--j>=0;)\r
- if (Ret[i][j][1] == "scriptStatus")s+=Ret[i][j][3]+"\n"\r
- return s.replace(/ \| /g, "\n")\r
-}\r
-\r
-\r
-function jmolScriptWaitAsArray(script, targetSuffix) {\r
- var ret = ""\r
- try{\r
- jmolGetStatus("scriptEcho,scriptMessage,scriptStatus,scriptError",targetSuffix)\r
- if (script) {\r
- _jmolCheckBrowser();\r
- var applet=_jmolGetApplet(targetSuffix);\r
- if (applet) ret += applet.scriptWait(script);\r
- ret = _jmolEvalJSON(ret,"jmolStatus")\r
- if(typeof ret == "object")\r
- return ret\r
- }\r
- }catch(e){\r
- }\r
- return [[ret]]\r
-}\r
-\r
-\r
-\r
-//////////// save/restore orientation /////////////\r
-\r
-function jmolSaveOrientation(id, targetSuffix) { \r
- targetSuffix == undefined && (targetSuffix="0")\r
- return _jmol["savedOrientation"+id] = jmolGetPropertyAsArray("orientationInfo","info",targetSuffix).moveTo\r
-}\r
-\r
-function jmolRestoreOrientation(id, targetSuffix) {\r
- targetSuffix == undefined && (targetSuffix="0")\r
- var s=_jmol["savedOrientation"+id]\r
- if (!s || s == "")return\r
- s=s.replace(/1\.0/,"0")\r
- return jmolScriptWait(s,targetSuffix)\r
-}\r
-\r
-function jmolRestoreOrientationDelayed(id, delay, targetSuffix) {\r
- arguments.length < 2 && (delay=1)\r
- targetSuffix == undefined && (targetSuffix="0")\r
- var s=_jmol["savedOrientation"+id]\r
- if (!s || s == "")return\r
- s=s.replace(/1\.0/,delay)\r
- return jmolScriptWait(s,targetSuffix)\r
-}\r
-\r
-//////////// add parameter /////////////\r
-/*\r
- * for adding callbacks or other parameters. Use:\r
-\r
- jmolSetDocument(0)\r
- var s= jmolApplet(....)\r
- s = jmolAppletAddParam(s,"messageCallback", "myFunctionName")\r
- document.write(s)\r
- jmolSetDocument(document) // if you want to then write buttons and such normally\r
- \r
- */\r
-\r
-function jmolAppletAddParam(appletCode,name,value){\r
- return (value == "" ? appletCode : appletCode.replace(/\<param/,"\n<param name='"+name+"' value='"+value+"' />\n<param"))\r
-}\r
-\r
-///////////////auto load Research Consortium for Structural Biology (RCSB) data ///////////\r
-\r
-function jmolLoadAjax_STOLAF_RCSB(fileformat,pdbid,optionalscript,targetSuffix){\r
-\r
- _jmol.thismodel || (_jmol.thismodel = "1crn")\r
- _jmol.serverURL || (_jmol.serverURL="http://fusion.stolaf.edu/chemistry/jmol/getajaxjs.cfm")\r
- _jmol.RCSBserver || (_jmol.RCSBserver="http://www.rcsb.org")\r
- _jmol.defaultURL_RCSB || (_jmol.defaultURL_RCSB=_jmol.RCSBserver+"/pdb/files/1CRN.CIF")\r
- fileformat || (fileformat="PDB")\r
- pdbid || (pdbid=prompt("Enter a 4-digit PDB ID:",_jmol.thismodel))\r
- if(!pdbid || pdbid.length != 4)return ""\r
- targetSuffix || (targetSuffix="0")\r
- optionalscript || (optionalscript="")\r
- var url=_jmol.defaultURL_RCSB.replace(/1CRN/g,pdbid.toUpperCase())\r
- fileformat=="CIF" || (url=url.replace(/CIF/,fileformat))\r
- _jmol.optionalscript=optionalscript\r
- _jmol.thismodel=pdbid\r
- _jmol.thistargetsuffix=targetSuffix\r
- _jmol.thisurl=url\r
- _jmol.modelArray = []\r
- url=_jmol.serverURL+"?returnfunction=_jmolLoadModel&returnArray=_jmol.modelArray&id="+targetSuffix+_jmolExtractPostData(url)\r
- _jmolDomScriptLoad(url)\r
- return url\r
-}\r
-\r
-\r
-///////////////auto load NIH CACTVS data -- compound name or SMILES ///////////\r
-\r
-function jmolLoadAjax_STOLAF_NIH(compoundid,optionalscript,targetSuffix){\r
- _jmol.thismodel || (_jmol.thismodel = "aspirin")\r
- _jmol.serverURL || (_jmol.serverURL="http://fusion.stolaf.edu/chemistry/jmol/getajaxjs.cfm")\r
- _jmol.defaultURL_NIH || (_jmol.defaultURL_NIH="http://cactus.nci.nih.gov/chemical/structure/FILE/file?format=sdf&get3d=True")\r
- compoundid || (compoundid=prompt("Enter a compound name or a SMILES string:",_jmol.thismodel))\r
- if(!compoundid)return ""\r
- targetSuffix || (targetSuffix="0")\r
- optionalscript || (optionalscript="")\r
- var url=_jmol.defaultURL_NIH.replace(/FILE/g,compoundid)\r
- _jmol.optionalscript=optionalscript\r
- _jmol.thismodel=compoundid\r
- _jmol.thistargetsuffix=targetSuffix\r
- _jmol.thisurl=url\r
- _jmol.modelArray = []\r
- url=_jmol.serverURL+"?returnfunction=_jmolLoadModel&returnArray=_jmol.modelArray&id="+targetSuffix+_jmolExtractPostData(url)\r
- _jmolDomScriptLoad(url)\r
- return url\r
-}\r
-\r
-\r
-/////////////// St. Olaf College AJAX server -- ANY URL ///////////\r
-\r
-function jmolLoadAjax_STOLAF_ANY(url, userid, optionalscript,targetSuffix){\r
- _jmol.serverURL="http://fusion.stolaf.edu/chemistry/jmol/getajaxjs.cfm"\r
- _jmol.thisurlANY || (_jmol.thisurlANY = "http://www.stolaf.edu/depts/chemistry/mo/struc/data/ycp3-1.mol")\r
- url || (url=prompt("Enter any (uncompressed file) URL:", _jmol.thisurlANY))\r
- userid || (userid="0")\r
- targetSuffix || (targetSuffix="0")\r
- optionalscript || (optionalscript="")\r
- _jmol.optionalscript=optionalscript\r
- _jmol.thistargetsuffix=targetSuffix\r
- _jmol.modelArray = []\r
- _jmol.thisurl = url\r
- url=_jmol.serverURL+"?returnfunction=_jmolLoadModel&returnArray=_jmol.modelArray&id="+targetSuffix+_jmolExtractPostData(url)\r
- _jmolDomScriptLoad(url)\r
-}\r
-\r
-\r
-/////////////// Mineralogical Society of America (MSA) data /////////\r
-\r
-function jmolLoadAjax_MSA(key,value,optionalscript,targetSuffix){\r
-\r
- _jmol.thiskeyMSA || (_jmol.thiskeyMSA = "mineral")\r
- _jmol.thismodelMSA || (_jmol.thismodelMSA = "quartz")\r
- _jmol.ajaxURL_MSA || (_jmol.ajaxURL_MSA="http://rruff.geo.arizona.edu/AMS/result.php?mineral=quartz&viewing=ajaxjs")\r
- key || (key=prompt("Enter a field:", _jmol.thiskeyMSA))\r
- if(!key)return ""\r
- value || (value=prompt("Enter a "+key+":", _jmol.thismodelMSA))\r
- if(!value)return ""\r
- targetSuffix || (targetSuffix="0")\r
- optionalscript || (optionalscript="")\r
- optionalscript == 1 && (optionalscript='load "" {1 1 1}')\r
- var url=_jmol.ajaxURL_MSA.replace(/mineral/g,key).replace(/quartz/g,value)\r
- _jmol.optionalscript=optionalscript\r
- _jmol.thiskeyMSA=key\r
- _jmol.thismodelMSA=value\r
- _jmol.thistargetsuffix=targetSuffix\r
- _jmol.thisurl=url\r
- _jmol.modelArray = []\r
- loadModel=_jmolLoadModel\r
- _jmolDomScriptLoad(url)\r
- return url\r
-}\r
-\r
-\r
-\r
-function jmolLoadAjaxJS(url, userid, optionalscript,targetSuffix){\r
- userid || (userid="0")\r
- targetSuffix || (targetSuffix="0")\r
- optionalscript || (optionalscript="")\r
- _jmol.optionalscript=optionalscript\r
- _jmol.thismodel=userid\r
- _jmol.thistargetsuffix=targetSuffix\r
- _jmol.modelArray = []\r
- _jmol.thisurl = url\r
- url+="&returnFunction=_jmolLoadModel&returnArray=_jmol.modelArray&id="+targetSuffix\r
- _jmolDomScriptLoad(url)\r
-}\r
-\r
-\r
-//// in case Jmol library has already been loaded:\r
-\r
-}catch(e){}\r
-\r
-///////////////moving atoms //////////////\r
-\r
-// HIGHLY experimental!!\r
-\r
-function jmolSetAtomCoord(i,x,y,z,targetSuffix){\r
- _jmolCheckBrowser();\r
- var applet=_jmolGetApplet(targetSuffix);\r
- if (applet) applet.getProperty('jmolViewer').setAtomCoord(i,x,y,z)\r
-}\r
-\r
-function jmolSetAtomCoordRelative(i,x,y,z,targetSuffix){\r
- _jmolCheckBrowser();\r
- var applet=_jmolGetApplet(targetSuffix);\r
- if (applet) applet.getProperty('jmolViewer').setAtomCoordRelative(i,x,y,z)\r
-}\r
-\r
-\r
-///////////////applet fake for testing buttons/////////////\r
-\r
-\r
-if(_jmol.useNoApplet){\r
- jmolApplet = function(w){\r
- var s="<table style='background-color:black' width="+w+"><tr height="+w+">"\r
- +"<td align=center valign=center style='background-color:white'>"\r
- +"Applet would be here"\r
- +"<p><textarea id=fakeApplet rows=5 cols=50></textarea>"\r
- +"</td></tr></table>"\r
- return _jmolDocumentWrite(s)\r
- }\r
-\r
- _jmolFindApplet = function(){return jmolApplet0}\r
-\r
- jmolApplet0 = {\r
- script: function(script){document.getElementById("fakeApplet").value="\njmolScript:\n"+script}\r
- ,scriptWait: function(script){document.getElementById("fakeApplet").value="\njmolScriptWait:\n"+script} \r
- ,loadInline: function(data,script){document.getElementById("fakeApplet").value="\njmolLoadInline data:\n"+data+"\n\nscript:\n"+script}\r
- }\r
-}\r
-\r
-\r
-///////////////////////////////////////////\r
-\r
- // This should no longer be needed, jmolResizeApplet() is better; kept for backwards compatibility\r
- /*\r
- Resizes absolutely (pixels) or by percent of window (w or h 0.5 means 50%).\r
- targetSuffix is optional and defaults to zero (first applet in page).\r
- Both w and h are optional, but needed if you want to use targetSuffix.\r
- h defaults to w\r
- w defaults to 100% of window\r
- If either w or h is between 0 and 1, then it is taken as percent/100.\r
- If either w or h is greater than 1, then it is taken as a size (pixels). \r
- */\r
-function jmolResize(w,h,targetSuffix) {\r
- _jmol.alerted = true;\r
- var percentW = (!w ? 100 : w <= 1 && w > 0 ? w * 100 : 0);\r
- var percentH = (!h ? percentW : h <= 1 && h > 0 ? h * 100 : 0);\r
- if (_jmol.browser=="msie") {\r
- var width=document.body.clientWidth;\r
- var height=document.body.clientHeight;\r
- } else {\r
- var netscapeScrollWidth=15;\r
- var width=window.innerWidth - netscapeScrollWidth;\r
- var height=window.innerHeight-netscapeScrollWidth;\r
- }\r
- var applet = _jmolGetApplet(targetSuffix);\r
- if(!applet)return;\r
- applet.style.width = (percentW ? width * percentW/100 : w)+"px";\r
- applet.style.height = (percentH ? height * percentH/100 : (h ? h : w))+"px";\r
- //title=width + " " + height + " " + (new Date());\r
-}\r
-\r
-// 13 Jun 09 -- makes jmolResize() obsolete (kept for backwards compatibility)\r
-function jmolResizeApplet(size,targetSuffix) {\r
- // See _jmolGetAppletSize() for the formats accepted as size [same used by jmolApplet()]\r
- // Special case: an empty value for width or height is accepted, meaning no change in that dimension.\r
- _jmol.alerted = true;\r
- var applet = _jmolGetApplet(targetSuffix);\r
- if(!applet)return;\r
- var sz = _jmolGetAppletSize(size, "px");\r
- sz[0] && (applet.style.width = sz[0]);\r
- sz[1] && (applet.style.height = sz[1]);\r
-}\r
-\r
-function _jmolGetAppletSize(size, units) {\r
- /* Accepts single number or 2-value array, each one can be one of:\r
- percent (text string ending %), decimal 0 to 1 (percent/100), number, or text string (interpreted as nr.)\r
- [width, height] array of strings is returned, with units added if specified.\r
- Percent is relative to container div or element (which should have explicitly set size).\r
- */\r
- var width, height;\r
- if ( (typeof size) == "object" && size != null ) {\r
- width = size[0]; height = size[1];\r
- } else {\r
- width = height = size;\r
- }\r
- return [_jmolFixDim(width, units), _jmolFixDim(height, units)];\r
-}\r
-\r
-function _jmolFixDim(x, units) {\r
- var sx = "" + x;\r
- return (sx.length == 0 ? (units ? "" : _jmol.allowedJmolSize[2])\r
- : sx.indexOf("%") == sx.length-1 ? sx \r
- : (x = parseFloat(x)) <= 1 && x > 0 ? x * 100 + "%"\r
- : (isNaN(x = Math.floor(x)) ? _jmol.allowedJmolSize[2]\r
- : x < _jmol.allowedJmolSize[0] ? _jmol.allowedJmolSize[0]\r
- : x > _jmol.allowedJmolSize[1] ? _jmol.allowedJmolSize[1] \r
- : x) + (units ? units : ""));\r
-}\r
-\r
-\r
-\r
-\r
+/* Jmol 12.0 script library Jmol.js 9:48 PM 1/31/2011 Bob Hanson
+
+ checkbox heirarchy -- see http://chemapps.stolaf.edu/jmol/docs/examples-11/check.htm
+
+ based on:
+ *
+ * Copyright (C) 2004-2005 Miguel, Jmol Development, www.jmol.org
+ *
+ * Contact: hansonr@stolaf.edu
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307 USA.
+ */
+
+// for documentation see www.jmol.org/jslibrary
+
+try{if(typeof(_jmol)!="undefined")exit()
+
+// place "?NOAPPLET" on your command line to check applet control action with a textarea
+// place "?JMOLJAR=xxxxx" to use a specific jar file
+
+// bob hanson -- jmolResize(w,h) -- resizes absolutely or by percent (w or h 0.5 means 50%)
+// angel herraez -- update of jmolResize(w,h,targetSuffix) so it is not tied to first applet
+// bob hanson -- jmolEvaluate -- evaluates molecular math 8:37 AM 2/23/2007
+// bob hanson -- jmolScriptMessage -- returns all "scriptStatus" messages 8:37 AM 2/23/2007
+// bob hanson -- jmolScriptEcho -- returns all "scriptEcho" messages 8:37 AM 2/23/2007
+// bob hanson -- jmolScriptWait -- 11:31 AM 5/2/2006
+// bob hanson -- remove trailing separatorHTML in radio groups -- 12:18 PM 5/6/2006
+// bob hanson -- adds support for dynamic DOM script nodes 7:04 AM 5/19/2006
+// bob hanson -- adds try/catch for wiki - multiple code passes 7:05 AM 5/19/2006
+// bob hanson -- auto-initiates to defaultdir/defaultjar -- change as desired.
+// bob hanson -- adding save/restore orientation w/ and w/o delay 11:49 AM 5/25/2006
+// bob hanson -- adding AjaxJS service 11:16 AM 6/3/2006
+// bob hanson -- fix for iframes not available for finding applet
+// bob hanson -- added applet fake ?NOAPPLET URL flag
+// bob hanson -- added jmolSetCallback(calbackName, funcName) 3:32 PM 6/13/2006
+// used PRIOR to jmolApplet() or jmolAppletInline()
+// added 4th array element in jmolRadioGroup -- title
+// added <span> and id around link, checkbox, radio, menu
+// fixing AJAX loads for MSIE/Opera-Mozilla incompatibility
+// -- renamed Jmol-11.js from Jmol-new.js; JmolApplet.jar from JmolAppletProto.jar
+// renamed Jmol.js for Jmol 11 distribution
+// -- modified jmolRestoreOrientation() to be immediate, no 1-second delay
+// bob hanson -- jmolScriptWait always returns a string -- 11:23 AM 9/16/2006
+// bh -- jmolCommandInput()
+// bh -- jmolSetTranslation(TF) -- forces translation even if there might be message callback issues
+// bh -- minor fixes suggested by Angel
+// bh -- adds jmolSetSyncId() and jmolGetSyncId()
+// bh 3/2008 -- adds jmolAppendInlineScript() and jmolAppendInlineArray()
+// bh 3/2008 -- fixes IE7 bug in relation to jmolLoadInlineArray()
+// bh 6/2008 -- adds jmolSetAppletWindow()
+// Angel H. 6/2008 -- added html <label> tags to checkboxes and radio buttons [in jmolCheckbox() and _jmolRadio() functions]
+// bh 7/2008 -- code fix "for(i..." not "for(var i..."
+// bh 12/2008 -- jmolLoadInline, jmolLoadInlineArray, jmolLoadInlineScript, jmolAppendInlineScript, jmolAppendInlineArray all return error message or null (Jmol 11.7.16)
+// bh 12/2008 -- jmolScriptWaitOutput() -- waits for script to complete and delivers output normally sent to console
+
+// bh 5/2009 -- Support for XHTML using jmolSetXHTML(id)
+// ah & bh 6/2009 -- New jmolResizeApplet() more flexible, similar to jmolApplet() size syntax
+// bh 11/2009 -- care in accessing top.document
+// bh 12/2009 -- added jmolSetParameter(name, value)
+// bh 12/2009 -- added PARAMS=name:value;name:value;name:value... for command line
+// bh 12/2009 -- overhaul of target checking
+// bh 1/2010 -- all _xxxx() methods ALWAYS have complete argument list
+// bh 1/2010 -- adds option to run a JavaScript function from any Jmol control.
+// This is accomplished by passing an array rather than a script:
+// jmolHref([myfunc,"my param 1", "my param 2"], "testing")
+// function myfunc(jmolControlObject, [myfunc,"my param 1", "my param 2"], target){...}
+// and allows much more flexibility with responding to controls
+// bh 4/2010 -- added jmolSetMemoryMb(nMb)
+// ah 1/2011 -- wider detection of browsers; more browsers now use the object tag instead of the applet tag;
+// fix of object tag (removed classid) accounts for change of behavior in Chrome
+// bh 3/2011 -- added jmolLoadAjax_STOLAF_NIH
+
+var defaultdir = "."
+var defaultjar = "JmolApplet.jar"
+
+
+// Note added 12:41 PM 9/21/2008 by Bob Hanson, hansonr@stolaf.edu:
+
+// JMOLJAR=xxxxx.jar on the URL for this page will override
+// the JAR file specified in the jmolInitialize() call.
+
+// The idea is that it can be very useful to test a web page with different JAR files
+// Or for an expert user to substitute a signed applet for an unsigned one
+// so as to use a broader range of models or to create JPEG files, for example.
+
+// If the JAR file is not in the current directory (has any sort of "/" in its name)
+// then the user is presented with a warning and asked whether it is OK to change Jar files.
+// The default action, if the user just presses "OK" is to NOT allow the change.
+// The user must type the word "yes" in the prompt box for the change to be approved.
+
+// If you don't want people to be able to switch in their own JAR file on your page,
+// simply set this next line to read "var allowJMOLJAR = false".
+
+
+var undefined; // for IE 5 ... wherein undefined is undefined
+
+////////////////////////////////////////////////////////////////
+// Basic Scripting infrastruture
+////////////////////////////////////////////////////////////////
+
+function jmolInitialize(codebaseDirectory, fileNameOrUseSignedApplet) {
+ if (_jmol.initialized)
+ return;
+ _jmol.initialized = true;
+ if(_jmol.jmoljar) {
+ var f = _jmol.jmoljar;
+ if (f.indexOf("/") >= 0) {
+ alert ("This web page URL is requesting that the applet used be " + f + ". This is a possible security risk, particularly if the applet is signed, because signed applets can read and write files on your local machine or network.")
+ var ok = prompt("Do you want to use applet " + f + "? ","yes or no")
+ if (ok == "yes") {
+ codebaseDirectory = f.substring(0, f.lastIndexOf("/"));
+ fileNameOrUseSignedApplet = f.substring(f.lastIndexOf("/") + 1);
+ } else {
+ _jmolGetJarFilename(fileNameOrUseSignedApplet);
+ alert("The web page URL was ignored. Continuing using " + _jmol.archivePath + ' in directory "' + codebaseDirectory + '"');
+ }
+ } else {
+ fileNameOrUseSignedApplet = f;
+ }
+ }
+ _jmolSetCodebase(codebaseDirectory);
+ _jmolGetJarFilename(fileNameOrUseSignedApplet);
+ _jmolOnloadResetForms();
+}
+
+function jmolSetTranslation(TF) {
+ _jmol.params.doTranslate = ''+TF;
+}
+
+function _jmolGetJarFilename(fileNameOrFlag) {
+ _jmol.archivePath =
+ (typeof(fileNameOrFlag) == "string" ? fileNameOrFlag : (fileNameOrFlag ? "JmolAppletSigned" : "JmolApplet") + "0.jar");
+}
+
+function jmolSetDocument(doc) {
+ _jmol.currentDocument = doc;
+}
+
+function jmolSetAppletColor(boxbgcolor, boxfgcolor, progresscolor) {
+ _jmolInitCheck();
+ _jmol.params.boxbgcolor = boxbgcolor;
+ if (boxfgcolor)
+ _jmol.params.boxfgcolor = boxfgcolor
+ else if (boxbgcolor == "white" || boxbgcolor == "#FFFFFF")
+ _jmol.params.boxfgcolor = "black";
+ else
+ _jmol.params.boxfgcolor = "white";
+ if (progresscolor)
+ _jmol.params.progresscolor = progresscolor;
+ if (_jmol.debugAlert)
+ alert(" boxbgcolor=" + _jmol.params.boxbgcolor +
+ " boxfgcolor=" + _jmol.params.boxfgcolor +
+ " progresscolor=" + _jmol.params.progresscolor);
+}
+
+function jmolSetAppletWindow(w) {
+ _jmol.appletWindow = w;
+}
+
+function jmolApplet(size, script, nameSuffix) {
+ _jmolInitCheck();
+ return _jmolApplet(size, null, script, nameSuffix);
+}
+
+////////////////////////////////////////////////////////////////
+// Basic controls
+////////////////////////////////////////////////////////////////
+
+// undefined means it wasn't there; null means it was explicitly listed as null (so as to skip it)
+
+function jmolButton(script, label, id, title) {
+ _jmolInitCheck();
+ id != undefined && id != null || (id = "jmolButton" + _jmol.buttonCount);
+ label != undefined && label != null || (label = script.substring(0, 32));
+ ++_jmol.buttonCount;
+ var scriptIndex = _jmolAddScript(script);
+ var t = "<span id=\"span_"+id+"\""+(title ? " title=\"" + title + "\"":"")+"><input type='button' name='" + id + "' id='" + id +
+ "' value='" + label +
+ "' onclick='_jmolClick(this," + scriptIndex + _jmol.targetText +
+ ")' onmouseover='_jmolMouseOver(" + scriptIndex +
+ ");return true' onmouseout='_jmolMouseOut()' " +
+ _jmol.buttonCssText + " /></span>";
+ if (_jmol.debugAlert)
+ alert(t);
+ return _jmolDocumentWrite(t);
+}
+
+function jmolCheckbox(scriptWhenChecked, scriptWhenUnchecked,
+ labelHtml, isChecked, id, title) {
+ _jmolInitCheck();
+ id != undefined && id != null || (id = "jmolCheckbox" + _jmol.checkboxCount);
+ ++_jmol.checkboxCount;
+ if (scriptWhenChecked == undefined || scriptWhenChecked == null ||
+ scriptWhenUnchecked == undefined || scriptWhenUnchecked == null) {
+ alert("jmolCheckbox requires two scripts");
+ return;
+ }
+ if (labelHtml == undefined || labelHtml == null) {
+ alert("jmolCheckbox requires a label");
+ return;
+ }
+ var indexChecked = _jmolAddScript(scriptWhenChecked);
+ var indexUnchecked = _jmolAddScript(scriptWhenUnchecked);
+ var eospan = "</span>"
+ var t = "<span id=\"span_"+id+"\""+(title ? " title=\"" + title + "\"":"")+"><input type='checkbox' name='" + id + "' id='" + id +
+ "' onclick='_jmolCbClick(this," +
+ indexChecked + "," + indexUnchecked + _jmol.targetText +
+ ")' onmouseover='_jmolCbOver(this," + indexChecked + "," +
+ indexUnchecked +
+ ");return true' onmouseout='_jmolMouseOut()' " +
+ (isChecked ? "checked='true' " : "")+ _jmol.checkboxCssText + " />"
+ if (labelHtml.toLowerCase().indexOf("<td>")>=0) {
+ t += eospan
+ eospan = "";
+ }
+ t += "<label for=\"" + id + "\">" + labelHtml + "</label>" +eospan;
+ if (_jmol.debugAlert)
+ alert(t);
+ return _jmolDocumentWrite(t);
+}
+
+function jmolStartNewRadioGroup() {
+ ++_jmol.radioGroupCount;
+}
+
+function jmolRadioGroup(arrayOfRadioButtons, separatorHtml, groupName, id, title) {
+ /*
+
+ array: [radio1,radio2,radio3...]
+ where radioN = ["script","label",isSelected,"id","title"]
+
+ */
+
+ _jmolInitCheck();
+ var type = typeof arrayOfRadioButtons;
+ if (type != "object" || type == null || ! arrayOfRadioButtons.length) {
+ alert("invalid arrayOfRadioButtons");
+ return;
+ }
+ separatorHtml != undefined && separatorHtml != null || (separatorHtml = " ");
+ var len = arrayOfRadioButtons.length;
+ jmolStartNewRadioGroup();
+ groupName || (groupName = "jmolRadioGroup" + (_jmol.radioGroupCount - 1));
+ var t = "<span id='"+(id ? id : groupName)+"'>";
+ for (var i = 0; i < len; ++i) {
+ if (i == len - 1)
+ separatorHtml = "";
+ var radio = arrayOfRadioButtons[i];
+ type = typeof radio;
+ if (type == "object") {
+ t += _jmolRadio(radio[0], radio[1], radio[2], separatorHtml, groupName, (radio.length > 3 ? radio[3]: (id ? id : groupName)+"_"+i), (radio.length > 4 ? radio[4] : 0), title);
+ } else {
+ t += _jmolRadio(radio, null, null, separatorHtml, groupName, (id ? id : groupName)+"_"+i, title);
+ }
+ }
+ t+="</span>"
+ if (_jmol.debugAlert)
+ alert(t);
+ return _jmolDocumentWrite(t);
+}
+
+
+function jmolRadio(script, labelHtml, isChecked, separatorHtml, groupName, id, title) {
+ _jmolInitCheck();
+ if (_jmol.radioGroupCount == 0)
+ ++_jmol.radioGroupCount;
+ var t = _jmolRadio(script, labelHtml, isChecked, separatorHtml, groupName, (id ? id : groupName + "_" + _jmol.radioCount), title ? title : 0);
+ if (_jmol.debugAlert)
+ alert(t);
+ return _jmolDocumentWrite(t);
+}
+
+function jmolLink(script, label, id, title) {
+ _jmolInitCheck();
+ id != undefined && id != null || (id = "jmolLink" + _jmol.linkCount);
+ label != undefined && label != null || (label = script.substring(0, 32));
+ ++_jmol.linkCount;
+ var scriptIndex = _jmolAddScript(script);
+ var t = "<span id=\"span_"+id+"\""+(title ? " title=\"" + title + "\"":"")+"><a name='" + id + "' id='" + id +
+ "' href='javascript:_jmolClick(this," + scriptIndex + _jmol.targetText + ");' onmouseover='_jmolMouseOver(" + scriptIndex +
+ ");return true;' onmouseout='_jmolMouseOut()' " +
+ _jmol.linkCssText + ">" + label + "</a></span>";
+ if (_jmol.debugAlert)
+ alert(t);
+ return _jmolDocumentWrite(t);
+}
+
+function jmolCommandInput(label, size, id, title) {
+ _jmolInitCheck();
+ id != undefined && id != null || (id = "jmolCmd" + _jmol.cmdCount);
+ label != undefined && label != null || (label = "Execute");
+ size != undefined && !isNaN(size) || (size = 60);
+ ++_jmol.cmdCount;
+ var t = "<span id=\"span_"+id+"\""+(title ? " title=\"" + title + "\"":"")+"><input name='" + id + "' id='" + id +
+ "' size='"+size+"' onkeypress='_jmolCommandKeyPress(event,\""+id+"\"" + _jmol.targetText + ")'><input type=button value = '"+label+"' onclick='jmolScript(document.getElementById(\""+id+"\").value" + _jmol.targetText + ")' /></span>";
+ if (_jmol.debugAlert)
+ alert(t);
+ return _jmolDocumentWrite(t);
+}
+
+function _jmolCommandKeyPress(e, id, target) {
+ var keycode = (window.event ? window.event.keyCode : e ? e.which : 0);
+ if (keycode == 13) {
+ var inputBox = document.getElementById(id)
+ _jmolScriptExecute(inputBox, inputBox.value, target)
+ }
+}
+
+function _jmolScriptExecute(element,script,target) {
+ if (typeof(script) == "object")
+ script[0](element, script, target)
+ else
+ jmolScript(script, target)
+}
+
+function jmolMenu(arrayOfMenuItems, size, id, title) {
+ _jmolInitCheck();
+ id != undefined && id != null || (id = "jmolMenu" + _jmol.menuCount);
+ ++_jmol.menuCount;
+ var type = typeof arrayOfMenuItems;
+ if (type != null && type == "object" && arrayOfMenuItems.length) {
+ var len = arrayOfMenuItems.length;
+ if (typeof size != "number" || size == 1)
+ size = null;
+ else if (size < 0)
+ size = len;
+ var sizeText = size ? " size='" + size + "' " : "";
+ var t = "<span id=\"span_"+id+"\""+(title ? " title=\"" + title + "\"":"")+"><select name='" + id + "' id='" + id +
+ "' onChange='_jmolMenuSelected(this" + _jmol.targetText + ")'" +
+ sizeText + _jmol.menuCssText + ">";
+ for (var i = 0; i < len; ++i) {
+ var menuItem = arrayOfMenuItems[i];
+ type = typeof menuItem;
+ var script, text;
+ var isSelected = undefined;
+ if (type == "object" && menuItem != null) {
+ script = menuItem[0];
+ text = menuItem[1];
+ isSelected = menuItem[2];
+ } else {
+ script = text = menuItem;
+ }
+ text != undefined && text != null || (text = script);
+ if (script=="#optgroup") {
+ t += "<optgroup label='" + text + "'>";
+ } else if (script=="#optgroupEnd") {
+ t += "</optgroup>";
+ } else {
+ var scriptIndex = _jmolAddScript(script);
+ var selectedText = isSelected ? "' selected='true'>" : "'>";
+ t += "<option value='" + scriptIndex + selectedText + text + "</option>";
+ }
+ }
+ t += "</select></span>";
+ if (_jmol.debugAlert)
+ alert(t);
+ return _jmolDocumentWrite(t);
+ }
+}
+
+function jmolHtml(html) {
+ return _jmolDocumentWrite(html);
+}
+
+function jmolBr() {
+ return _jmolDocumentWrite("<br />");
+}
+
+////////////////////////////////////////////////////////////////
+// advanced scripting functions
+////////////////////////////////////////////////////////////////
+
+function jmolDebugAlert(enableAlerts) {
+ _jmol.debugAlert = (enableAlerts == undefined || enableAlerts)
+}
+
+function jmolAppletInline(size, inlineModel, script, nameSuffix) {
+ _jmolInitCheck();
+ return _jmolApplet(size, _jmolSterilizeInline(inlineModel),
+ script, nameSuffix);
+}
+
+function jmolSetTarget(targetSuffix) {
+ _jmol.targetSuffix = targetSuffix;
+ _jmol.targetText = targetSuffix ? ",\"" + targetSuffix + "\"" : ",0";
+}
+
+function jmolScript(script, targetSuffix) {
+ if (script) {
+ _jmolCheckBrowser();
+ if (targetSuffix == "all") {
+ with (_jmol) {
+ for (var i = 0; i < appletSuffixes.length; ++i) {
+ var applet = _jmolGetApplet(appletSuffixes[i]);
+ if (applet) applet.script(script);
+ }
+ }
+ } else {
+ var applet=_jmolGetApplet(targetSuffix);
+ if (applet) applet.script(script);
+ }
+ }
+}
+
+function jmolLoadInline(model, targetSuffix) {
+ if (!model)return "ERROR: NO MODEL"
+ var applet=_jmolGetApplet(targetSuffix);
+ if (!applet)return "ERROR: NO APPLET"
+ if (typeof(model) == "string")
+ return applet.loadInlineString(model, "", false);
+ else
+ return applet.loadInlineArray(model, "", false);
+}
+
+
+function jmolLoadInlineScript(model, script, targetSuffix) {
+ if (!model)return "ERROR: NO MODEL"
+ var applet=_jmolGetApplet(targetSuffix);
+ if (!applet)return "ERROR: NO APPLET"
+ return applet.loadInlineString(model, script, false);
+}
+
+
+function jmolLoadInlineArray(ModelArray, script, targetSuffix) {
+ if (!model)return "ERROR: NO MODEL"
+ script || (script="")
+ var applet=_jmolGetApplet(targetSuffix);
+ if (!applet)return "ERROR: NO APPLET"
+ try {
+ return applet.loadInlineArray(ModelArray, script, false);
+ } catch (err) {
+ //IE 7 bug
+ return applet.loadInlineString(ModelArray.join("\n"), script, false);
+ }
+}
+
+function jmolAppendInlineArray(ModelArray, script, targetSuffix) {
+ if (!model)return "ERROR: NO MODEL"
+ script || (script="")
+ var applet=_jmolGetApplet(targetSuffix);
+ if (!applet)return "ERROR: NO APPLET"
+ try {
+ return applet.loadInlineArray(ModelArray, script, true);
+ } catch (err) {
+ //IE 7 bug
+ return applet.loadInlineString(ModelArray.join("\n"), script, true);
+ }
+}
+
+function jmolAppendInlineScript(model, script, targetSuffix) {
+ if (!model)return "ERROR: NO MODEL"
+ var applet=_jmolGetApplet(targetSuffix);
+ if (!applet)return "ERROR: NO APPLET"
+ return applet.loadInlineString(model, script, true);
+}
+
+function jmolCheckBrowser(action, urlOrMessage, nowOrLater) {
+ if (typeof action == "string") {
+ action = action.toLowerCase();
+ action == "alert" || action == "redirect" || action == "popup" || (action = null);
+ }
+ if (typeof action != "string")
+ alert("jmolCheckBrowser(action, urlOrMessage, nowOrLater)\n\n" +
+ "action must be 'alert', 'redirect', or 'popup'");
+ else {
+ if (typeof urlOrMessage != "string")
+ alert("jmolCheckBrowser(action, urlOrMessage, nowOrLater)\n\n" +
+ "urlOrMessage must be a string");
+ else {
+ _jmol.checkBrowserAction = action;
+ _jmol.checkBrowserUrlOrMessage = urlOrMessage;
+ }
+ }
+ if (typeof nowOrLater == "string" && nowOrLater.toLowerCase() == "now")
+ _jmolCheckBrowser();
+}
+
+////////////////////////////////////////////////////////////////
+// Cascading Style Sheet Class support
+////////////////////////////////////////////////////////////////
+
+function jmolSetAppletCssClass(appletCssClass) {
+ if (_jmol.hasGetElementById) {
+ _jmol.appletCssClass = appletCssClass;
+ _jmol.appletCssText = appletCssClass ? "class='" + appletCssClass + "' " : "";
+ }
+}
+
+function jmolSetButtonCssClass(buttonCssClass) {
+ if (_jmol.hasGetElementById) {
+ _jmol.buttonCssClass = buttonCssClass;
+ _jmol.buttonCssText = buttonCssClass ? "class='" + buttonCssClass + "' " : "";
+ }
+}
+
+function jmolSetCheckboxCssClass(checkboxCssClass) {
+ if (_jmol.hasGetElementById) {
+ _jmol.checkboxCssClass = checkboxCssClass;
+ _jmol.checkboxCssText = checkboxCssClass ? "class='" + checkboxCssClass + "' " : "";
+ }
+}
+
+function jmolSetRadioCssClass(radioCssClass) {
+ if (_jmol.hasGetElementById) {
+ _jmol.radioCssClass = radioCssClass;
+ _jmol.radioCssText = radioCssClass ? "class='" + radioCssClass + "' " : "";
+ }
+}
+
+function jmolSetLinkCssClass(linkCssClass) {
+ if (_jmol.hasGetElementById) {
+ _jmol.linkCssClass = linkCssClass;
+ _jmol.linkCssText = linkCssClass ? "class='" + linkCssClass + "' " : "";
+ }
+}
+
+function jmolSetMenuCssClass(menuCssClass) {
+ if (_jmol.hasGetElementById) {
+ _jmol.menuCssClass = menuCssClass;
+ _jmol.menuCssText = menuCssClass ? "class='" + menuCssClass + "' " : "";
+ }
+}
+
+////////////////////////////////////////////////////////////////
+// functions for INTERNAL USE ONLY which are subject to change
+// use at your own risk ... you have been WARNED!
+////////////////////////////////////////////////////////////////
+var _jmol = {
+ currentDocument: document,
+
+ debugAlert: false,
+
+ codebase: "",
+ modelbase: ".",
+
+ appletCount: 0,
+ appletSuffixes: [],
+ appletWindow: null,
+ allowedJmolSize: [25, 2048, 300], // min, max, default (pixels)
+ /* By setting the _jmol.allowedJmolSize[] variable in the webpage
+ before calling jmolApplet(), limits for applet size can be overriden.
+ 2048 standard for GeoWall (http://geowall.geo.lsa.umich.edu/home.html)
+ */
+ buttonCount: 0,
+ checkboxCount: 0,
+ linkCount: 0,
+ cmdCount: 0,
+ menuCount: 0,
+ radioCount: 0,
+ radioGroupCount: 0,
+
+ appletCssClass: null,
+ appletCssText: "",
+ buttonCssClass: null,
+ buttonCssText: "",
+ checkboxCssClass: null,
+ checkboxCssText: "",
+ java_arguments: "-Xmx512m",
+ radioCssClass: null,
+ radioCssText: "",
+ linkCssClass: null,
+ linkCssText: "",
+ menuCssClass: null,
+ menuCssText: "",
+
+ targetSuffix: 0,
+ targetText: ",0",
+ scripts: [""],
+ params: {
+ syncId: ("" + Math.random()).substring(3),
+ progressbar: "true",
+ progresscolor: "blue",
+ boxbgcolor: "black",
+ boxfgcolor: "white",
+ boxmessage: "Downloading JmolApplet ..."
+ },
+ ua: navigator.userAgent.toLowerCase(),
+ // uaVersion: parseFloat(navigator.appVersion), // not used
+
+ os: "unknown",
+ browser: "unknown",
+ browserVersion: 0,
+ hasGetElementById: !!document.getElementById,
+ isJavaEnabled: navigator.javaEnabled(),
+ // isNetscape47Win: false, // not used, N4.7 is no longer supported even for detection
+ useIEObject: false,
+ useHtml4Object: false,
+
+ windowsClassId: "clsid:8AD9C840-044E-11D1-B3E9-00805F499D93",
+ windowsCabUrl:
+ "http://java.sun.com/update/1.6.0/jinstall-6u22-windows-i586.cab",
+
+ isBrowserCompliant: false,
+ isJavaCompliant: false,
+ isFullyCompliant: false,
+
+ initialized: false,
+ initChecked: false,
+
+ browserChecked: false,
+ checkBrowserAction: "alert",
+ checkBrowserUrlOrMessage: null,
+
+ archivePath: null, // JmolApplet0.jar OR JmolAppletSigned0.jar
+
+ previousOnloadHandler: null,
+
+ jmoljar: null,
+ useNoApplet: false,
+
+ ready: {}
+}
+
+with (_jmol) {
+ function _jmolTestUA(candidate) {
+ var ua = _jmol.ua;
+ var index = ua.indexOf(candidate);
+ if (index < 0)
+ return false;
+ _jmol.browser = candidate;
+ _jmol.browserVersion = parseFloat(ua.substring(index+candidate.length+1));
+ return true;
+ }
+
+ function _jmolTestOS(candidate) {
+ if (_jmol.ua.indexOf(candidate) < 0)
+ return false;
+ _jmol.os = candidate;
+ return true;
+ }
+
+ _jmolTestUA("konqueror") ||
+ _jmolTestUA("webkit") ||
+ _jmolTestUA("omniweb") ||
+ _jmolTestUA("opera") ||
+ _jmolTestUA("webtv") ||
+ _jmolTestUA("icab") ||
+ _jmolTestUA("msie") ||
+ (_jmol.ua.indexOf("compatible") < 0 && _jmolTestUA("mozilla")); //Netscape, Mozilla, Seamonkey, Firefox and anything assimilated
+
+ _jmolTestOS("linux") ||
+ _jmolTestOS("unix") ||
+ _jmolTestOS("mac") ||
+ _jmolTestOS("win");
+
+ /* not used:
+ isNetscape47Win = (os == "win" && browser == "mozilla" &&
+ browserVersion >= 4.78 && browserVersion <= 4.8);
+ */
+
+ if (os == "win") {
+ isBrowserCompliant = hasGetElementById;
+ } else if (os == "mac") { // mac is the problem child :-(
+ if (browser == "mozilla" && browserVersion >= 5) {
+ // miguel 2004 11 17
+ // checking the plugins array does not work because
+ // Netscape 7.2 OS X still has Java 1.3.1 listed even though
+ // javaplugin.sf.net is installed to upgrade to 1.4.2
+ eval("try {var v = java.lang.System.getProperty('java.version');" +
+ " _jmol.isBrowserCompliant = v >= '1.4.2';" +
+ " } catch (e) { }");
+ } else if (browser == "opera" && browserVersion <= 7.54) {
+ isBrowserCompliant = false;
+ } else {
+ isBrowserCompliant = hasGetElementById &&
+ !((browser == "msie") ||
+ (browser == "webkit" && browserVersion < 125.12));
+ }
+ } else if (os == "linux" || os == "unix") {
+ if (browser == "konqueror" && browserVersion <= 3.3)
+ isBrowserCompliant = false;
+ else
+ isBrowserCompliant = hasGetElementById;
+ } else { // other OS
+ isBrowserCompliant = hasGetElementById;
+ }
+
+ // possibly more checks in the future for this
+ isJavaCompliant = isJavaEnabled;
+
+ isFullyCompliant = isBrowserCompliant && isJavaCompliant;
+
+ useIEObject = (os == "win" && browser == "msie" && browserVersion >= 5.5);
+ useHtml4Object =
+ (browser == "mozilla" && browserVersion >= 5) ||
+ (browser == "opera" && browserVersion >= 8) ||
+ (browser == "webkit" && browserVersion >= 412.2);
+ try {
+ if (top.location.search.indexOf("JMOLJAR=")>=0)
+ jmoljar = top.location.search.split("JMOLJAR=")[1].split("&")[0];
+ } catch(e) {
+ // can't access top.location
+ }
+ try {
+ useNoApplet = (top.location.search.indexOf("NOAPPLET")>=0);
+ } catch(e) {
+ // can't access top.document
+ }
+}
+
+function jmolSetMemoryMb(nMb) {
+ _jmol.java_arguments = "-Xmx" + Math.round(nMb) + "m"
+}
+
+function jmolSetParameter(name,value) {
+ _jmol.params[name] = value
+}
+
+function jmolSetCallback(callbackName,funcName) {
+ _jmol.params[callbackName] = funcName
+}
+
+ try {
+// note this is done FIRST, so it cannot override a setting done by the developer
+ if (top.location.search.indexOf("PARAMS=")>=0) {
+ var pars = unescape(top.location.search.split("PARAMS=")[1].split("&")[0]).split(";");
+ for (var i = 0; i < pars.length; i++) {
+ var p = pars[i].split(":");
+ jmolSetParameter(p[0],p[1]);
+ }
+ }
+ } catch(e) {
+ // can't access top.location
+ }
+
+function jmolSetSyncId(n) {
+ return _jmol.params["syncId"] = n
+}
+
+function jmolGetSyncId() {
+ return _jmol.params["syncId"]
+}
+
+function jmolSetLogLevel(n) {
+ _jmol.params.logLevel = ''+n;
+}
+
+ /* AngelH, mar2007:
+ By (re)setting these variables in the webpage before calling jmolApplet(),
+ a custom message can be provided (e.g. localized for user's language) when no Java is installed.
+ */
+if (noJavaMsg==undefined) var noJavaMsg =
+ "You do not have Java applets enabled in your web browser, or your browser is blocking this applet.<br />\n" +
+ "Check the warning message from your browser and/or enable Java applets in<br />\n" +
+ "your web browser preferences, or install the Java Runtime Environment from <a href='http://www.java.com'>www.java.com</a><br />";
+if (noJavaMsg2==undefined) var noJavaMsg2 =
+ "You do not have the<br />\n" +
+ "Java Runtime Environment<br />\n" +
+ "installed for applet support.<br />\n" +
+ "Visit <a href='http://www.java.com'>www.java.com</a>";
+function _jmolApplet(size, inlineModel, script, nameSuffix) {
+ /* AngelH, mar2007
+ Fixed percent / pixel business, to avoid browser errors:
+ put "px" where needed, avoid where not.
+
+ Bob Hanson, 1/2010
+ Fixed inline escape changing returns to |
+ */
+ with (_jmol) {
+ nameSuffix == undefined && (nameSuffix = appletCount);
+ appletSuffixes.push(nameSuffix);
+ ++appletCount;
+ script || (script = "select *");
+ var sz = _jmolGetAppletSize(size);
+ var widthAndHeight = " width='" + sz[0] + "' height='" + sz[1] + "' ";
+ var tHeader, tFooter;
+ codebase || jmolInitialize(".");
+ if (useIEObject || useHtml4Object) {
+ params.archive = archivePath;
+ params.mayscript = 'true';
+ params.codebase = codebase;
+ params.code = 'JmolApplet';
+ tHeader =
+ "<object name='jmolApplet" + nameSuffix +
+ "' id='jmolApplet" + nameSuffix + "' " + appletCssText + "\n" +
+ widthAndHeight + "\n";
+ tFooter = "</object>";
+ }
+ if (java_arguments)
+ params.java_arguments = java_arguments;
+ if (useIEObject) { // use MSFT IE6 object tag with .cab file reference
+ tHeader += " classid='" + windowsClassId + "'\n" +
+ (windowsCabUrl ? " codebase='" + windowsCabUrl + "'\n" : "") + ">\n";
+ } else if (useHtml4Object) { // use HTML4 object tag
+ tHeader += " type='application/x-java-applet'\n>\n";
+ /* " classid='java:JmolApplet'\n" + AH removed this
+ Chromium Issue 62076: Java Applets using an <object> with a classid paramater don't load.
+ http://code.google.com/p/chromium/issues/detail?id=62076
+ They say this is the correct behavior according to the spec, and there's no indication at this point
+ that WebKit will be changing the handling, so eventually Safari will acquire this behavior too.
+ Removing the classid parameter seems to be well tolerated by all browsers (even IE!).
+ */
+ } else { // use applet tag
+ tHeader =
+ "<applet name='jmolApplet" + nameSuffix +
+ "' id='jmolApplet" + nameSuffix + "' " + appletCssText + "\n" +
+ widthAndHeight + "\n" +
+ " code='JmolApplet'" +
+ " archive='" + archivePath + "' codebase='" + codebase + "'\n" +
+ " mayscript='true'>\n";
+ tFooter = "</applet>";
+ }
+ var visitJava;
+ if (useIEObject || useHtml4Object) {
+ var szX = "width:" + sz[0]
+ if ( szX.indexOf("%")==-1 ) szX+="px"
+ var szY = "height:" + sz[1]
+ if ( szY.indexOf("%")==-1 ) szY+="px"
+ visitJava =
+ "<p style='background-color:yellow; color:black; " +
+ szX + ";" + szY + ";" +
+ // why doesn't this vertical-align work?
+ "text-align:center;vertical-align:middle;'>\n" +
+ noJavaMsg +
+ "</p>";
+ } else {
+ visitJava =
+ "<table bgcolor='yellow'><tr>" +
+ "<td align='center' valign='middle' " + widthAndHeight + "><font color='black'>\n" +
+ noJavaMsg2 +
+ "</font></td></tr></table>";
+ }
+ params.loadInline = (inlineModel ? inlineModel : "");
+ params.script = (script ? _jmolSterilizeScript(script) : "");
+ var t = tHeader + _jmolParams() + visitJava + tFooter;
+ jmolSetTarget(nameSuffix);
+ ready["jmolApplet" + nameSuffix] = false;
+ if (_jmol.debugAlert)
+ alert(t);
+ return _jmolDocumentWrite(t);
+ }
+}
+
+function _jmolParams() {
+ var t = "";
+ for (var i in _jmol.params)
+ if(_jmol.params[i]!="")
+ t+=" <param name='"+i+"' value='"+_jmol.params[i]+"' />\n";
+ return t
+}
+
+function _jmolInitCheck() {
+ if (_jmol.initChecked)
+ return;
+ _jmol.initChecked = true;
+ jmolInitialize(defaultdir, defaultjar)
+}
+
+function _jmolCheckBrowser() {
+ with (_jmol) {
+ if (browserChecked)
+ return;
+ browserChecked = true;
+
+ if (isFullyCompliant)
+ return true;
+
+ if (checkBrowserAction == "redirect")
+ location.href = checkBrowserUrlOrMessage;
+ else if (checkBrowserAction == "popup")
+ _jmolPopup(checkBrowserUrlOrMessage);
+ else {
+ var msg = checkBrowserUrlOrMessage;
+ if (msg == null)
+ msg = "Your web browser is not fully compatible with Jmol\n\n" +
+ "browser: " + browser +
+ " version: " + browserVersion +
+ " os: " + os +
+ " isBrowserCompliant: " + isBrowserCompliant +
+ " isJavaCompliant: " + isJavaCompliant +
+ "\n\n" + ua;
+ alert(msg);
+ }
+ }
+ return false;
+}
+
+function jmolSetXHTML(id) {
+ _jmol.isXHTML = true
+ _jmol.XhtmlElement = null
+ _jmol.XhtmlAppendChild = false
+ if (id){
+ _jmol.XhtmlElement = document.getElementById(id)
+ _jmol.XhtmlAppendChild = true
+ }
+}
+
+function _jmolDocumentWrite(text) {
+ if (_jmol.currentDocument) {
+ if (_jmol.isXHTML && !_jmol.XhtmlElement) {
+ var s = document.getElementsByTagName("script")
+ _jmol.XhtmlElement = s.item(s.length - 1)
+ _jmol.XhtmlAppendChild = false
+ }
+ if (_jmol.XhtmlElement) {
+ _jmolDomDocumentWrite(text)
+ } else {
+ _jmol.currentDocument.write(text);
+ }
+ }
+ return text;
+}
+
+function _jmolDomDocumentWrite(data) {
+ var pt = 0
+ var Ptr = []
+ Ptr[0] = 0
+ while (Ptr[0] < data.length) {
+ var child = _jmolGetDomElement(data, Ptr)
+ if (!child)break
+ if (_jmol.XhtmlAppendChild)
+ _jmol.XhtmlElement.appendChild(child)
+ else
+ _jmol.XhtmlElement.parentNode.insertBefore(child, _jmol.XhtmlElement);
+ }
+}
+function _jmolGetDomElement(data, Ptr, closetag, lvel) {
+ var e = document.createElement("span")
+ e.innerHTML = data
+ Ptr[0] = data.length
+ return e
+
+//unnecessary?
+
+ closetag || (closetag = "")
+ lvel || (lvel = 0)
+ var pt0 = Ptr[0]
+ var pt = pt0
+ while (pt < data.length && data.charAt(pt) != "<") pt++
+ if (pt != pt0) {
+ var text = data.substring(pt0, pt)
+ Ptr[0] = pt
+ return document.createTextNode(text)
+ }
+ pt0 = ++pt
+ var ch
+ while (pt < data.length && "\n\r\t >".indexOf(ch = data.charAt(pt)) < 0) pt++
+ var tagname = data.substring(pt0, pt)
+ var e = (tagname == closetag || tagname == "/" ? ""
+ : document.createElementNS ? document.createElementNS('http://www.w3.org/1999/xhtml', tagname)
+ : document.createElement(tagname));
+ if (ch == ">") {
+ Ptr[0] = ++pt
+ return e
+ }
+ while (pt < data.length && (ch = data.charAt(pt)) != ">") {
+ while (pt < data.length && "\n\r\t ".indexOf(ch = data.charAt(pt)) >= 0) pt++
+ pt0 = pt
+ while (pt < data.length && "\n\r\t =/>".indexOf(ch = data.charAt(pt)) < 0) pt++
+ var attrname = data.substring(pt0, pt).toLowerCase()
+ if (attrname && ch != "=")
+ e.setAttribute(attrname, "true")
+ while (pt < data.length && "\n\r\t ".indexOf(ch = data.charAt(pt)) >= 0) pt++
+ if (ch == "/") {
+ Ptr[0] = pt + 2
+ return e
+ } else if (ch == "=") {
+ var quote = data.charAt(++pt)
+ pt0 = ++pt
+ while (pt < data.length && (ch = data.charAt(pt)) != quote) pt++
+ var attrvalue = data.substring(pt0, pt)
+ e.setAttribute(attrname, attrvalue)
+ pt++
+ }
+ }
+ Ptr[0] = ++pt
+ while (Ptr[0] < data.length) {
+ var child = _jmolGetDomElement(data, Ptr, "/" + tagname, lvel+1)
+ if (!child)break
+ e.appendChild(child)
+ }
+ return e
+}
+
+function _jmolPopup(url) {
+ var popup = window.open(url, "JmolPopup",
+ "left=150,top=150,height=400,width=600," +
+ "directories=yes,location=yes,menubar=yes," +
+ "toolbar=yes," +
+ "resizable=yes,scrollbars=yes,status=yes");
+ if (popup.focus)
+ poup.focus();
+}
+
+function _jmolReadyCallback(name) {
+ if (_jmol.debugAlert)
+ alert(name + " is ready");
+ _jmol.ready["" + name] = true;
+}
+
+function _jmolSterilizeScript(script) {
+ script = script.replace(/'/g, "'");
+ if (_jmol.debugAlert)
+ alert("script:\n" + script);
+ return script;
+}
+
+function _jmolSterilizeInline(model) {
+ model = model.replace(/\r|\n|\r\n/g, (model.indexOf("|") >= 0 ? "\\/n" : "|")).replace(/'/g, "'");
+ if (_jmol.debugAlert)
+ alert("inline model:\n" + model);
+ return model;
+}
+
+function _jmolRadio(script, labelHtml, isChecked, separatorHtml, groupName, id, title) {
+ ++_jmol.radioCount;
+ groupName != undefined && groupName != null || (groupName = "jmolRadioGroup" + (_jmol.radioGroupCount - 1));
+ if (!script)
+ return "";
+ labelHtml != undefined && labelHtml != null || (labelHtml = script.substring(0, 32));
+ separatorHtml || (separatorHtml = "")
+ var scriptIndex = _jmolAddScript(script);
+ var eospan = "</span>"
+ var t = "<span id=\"span_"+id+"\""+(title ? " title=\"" + title + "\"":"")+"><input name='"
+ + groupName + "' id='"+id+"' type='radio' onclick='_jmolClick(this," +
+ scriptIndex + _jmol.targetText + ");return true;' onmouseover='_jmolMouseOver(" +
+ scriptIndex + ");return true;' onmouseout='_jmolMouseOut()' " +
+ (isChecked ? "checked='true' " : "") + _jmol.radioCssText + " />"
+ if (labelHtml.toLowerCase().indexOf("<td>")>=0) {
+ t += eospan
+ eospan = "";
+ }
+ t += "<label for=\"" + id + "\">" + labelHtml + "</label>" +eospan + separatorHtml;
+
+ return t;
+}
+
+function _jmolFindApplet(target) {
+ // first look for the target in the current window
+ var applet = _jmolFindAppletInWindow(_jmol.appletWindow != null ? _jmol.appletWindow : window, target);
+ // THEN look for the target in child frames
+ if (applet == undefined)
+ applet = _jmolSearchFrames(window, target);
+ // FINALLY look for the target in sibling frames
+ if (applet == undefined)
+ applet = _jmolSearchFrames(top, target); // look starting in top frame
+ return applet;
+}
+
+function _jmolGetApplet(targetSuffix){
+ var target = "jmolApplet" + (targetSuffix ? targetSuffix : "0");
+ var applet = _jmolFindApplet(target);
+ if (applet) return applet
+ _jmol.alerted || alert("could not find applet " + target);
+ _jmol.alerted = true;
+ return null
+}
+
+function _jmolSearchFrames(win, target) {
+ var applet;
+ var frames = win.frames;
+ if (frames && frames.length) { // look in all the frames below this window
+ try{
+ for (var i = 0; i < frames.length; ++i) {
+ applet = _jmolSearchFrames(frames[i], target);
+ if (applet)
+ return applet;
+ }
+ }catch(e) {
+ if (_jmol.debugAlert)
+ alert("Jmol.js _jmolSearchFrames cannot access " + win.name + ".frame[" + i + "] consider using jmolSetAppletWindow()")
+ }
+ }
+ return applet = _jmolFindAppletInWindow(win, target)
+}
+
+function _jmolFindAppletInWindow(win, target) {
+ var doc = win.document;
+ if (doc.getElementById(target))
+ return doc.getElementById(target);
+ else if (doc.applets)
+ return doc.applets[target];
+ else
+ return doc[target];
+}
+
+function _jmolAddScript(script) {
+ if (!script)
+ return 0;
+ var index = _jmol.scripts.length;
+ _jmol.scripts[index] = script;
+ return index;
+}
+
+function _jmolClick(elementClicked, scriptIndex, targetSuffix) {
+ _jmol.element = elementClicked;
+ _jmolScriptExecute(elementClicked, _jmol.scripts[scriptIndex], targetSuffix);
+}
+
+function _jmolMenuSelected(menuObject, targetSuffix) {
+ var scriptIndex = menuObject.value;
+ if (scriptIndex != undefined) {
+ _jmolScriptExecute(menuObject, _jmol.scripts[scriptIndex], targetSuffix);
+ return;
+ }
+ var len = menuObject.length;
+ if (typeof len == "number") {
+ for (var i = 0; i < len; ++i) {
+ if (menuObject[i].selected) {
+ _jmolClick(menuObject[i], menuObject[i].value, targetSuffix);
+ return;
+ }
+ }
+ }
+ alert("?Que? menu selected bug #8734");
+}
+
+
+_jmol.checkboxMasters = {};
+_jmol.checkboxItems = {};
+
+function jmolSetCheckboxGroup(chkMaster,chkBox) {
+ var id = chkMaster;
+ if(typeof(id)=="number")id = "jmolCheckbox" + id;
+ chkMaster = document.getElementById(id);
+ if (!chkMaster)alert("jmolSetCheckboxGroup: master checkbox not found: " + id);
+ var m = _jmol.checkboxMasters[id] = {};
+ m.chkMaster = chkMaster;
+ m.chkGroup = {};
+ for (var i = 1; i < arguments.length; i++){
+ var id = arguments[i];
+ if(typeof(id)=="number")id = "jmolCheckbox" + id;
+ checkboxItem = document.getElementById(id);
+ if (!checkboxItem)alert("jmolSetCheckboxGroup: group checkbox not found: " + id);
+ m.chkGroup[id] = checkboxItem;
+ _jmol.checkboxItems[id] = m;
+ }
+}
+
+function _jmolNotifyMaster(m){
+ //called when a group item is checked
+ var allOn = true;
+ var allOff = true;
+ for (var chkBox in m.chkGroup){
+ if(m.chkGroup[chkBox].checked)
+ allOff = false;
+ else
+ allOn = false;
+ }
+ if (allOn)m.chkMaster.checked = true;
+ if (allOff)m.chkMaster.checked = false;
+ if ((allOn || allOff) && _jmol.checkboxItems[m.chkMaster.id])
+ _jmolNotifyMaster(_jmol.checkboxItems[m.chkMaster.id])
+}
+
+function _jmolNotifyGroup(m, isOn){
+ //called when a master item is checked
+ for (var chkBox in m.chkGroup){
+ var item = m.chkGroup[chkBox]
+ item.checked = isOn;
+ if (_jmol.checkboxMasters[item.id])
+ _jmolNotifyGroup(_jmol.checkboxMasters[item.id], isOn)
+ }
+}
+
+function _jmolCbClick(ckbox, whenChecked, whenUnchecked, targetSuffix) {
+ _jmol.control = ckbox
+ _jmolClick(ckbox, ckbox.checked ? whenChecked : whenUnchecked, targetSuffix);
+ if(_jmol.checkboxMasters[ckbox.id])
+ _jmolNotifyGroup(_jmol.checkboxMasters[ckbox.id], ckbox.checked)
+ if(_jmol.checkboxItems[ckbox.id])
+ _jmolNotifyMaster(_jmol.checkboxItems[ckbox.id])
+}
+
+function _jmolCbOver(ckbox, whenChecked, whenUnchecked) {
+ window.status = _jmol.scripts[ckbox.checked ? whenUnchecked : whenChecked];
+}
+
+function _jmolMouseOver(scriptIndex) {
+ window.status = _jmol.scripts[scriptIndex];
+}
+
+function _jmolMouseOut() {
+ window.status = " ";
+ return true;
+}
+
+function _jmolSetCodebase(codebase) {
+ _jmol.codebase = codebase ? codebase : ".";
+ if (_jmol.debugAlert)
+ alert("jmolCodebase=" + _jmol.codebase);
+}
+
+function _jmolOnloadResetForms() {
+ // must be evaluated ONLY once
+ _jmol.previousOnloadHandler = window.onload;
+ window.onload =
+ function() {
+ with (_jmol) {
+ if (buttonCount+checkboxCount+menuCount+radioCount+radioGroupCount > 0) {
+ var forms = document.forms;
+ for (var i = forms.length; --i >= 0; )
+ forms[i].reset();
+ }
+ if (previousOnloadHandler)
+ previousOnloadHandler();
+ }
+ }
+}
+
+////////////////////////////////////
+/////extensions for getProperty/////
+////////////////////////////////////
+
+
+function _jmolEvalJSON(s,key){
+ s=s+""
+ if(!s)return []
+ if(s.charAt(0)!="{"){
+ if(s.indexOf(" | ")>=0)s=s.replace(/\ \|\ /g, "\n")
+ return s
+ }
+ var A = eval("("+s+")")
+ if(!A)return
+ if(key && A[key])A=A[key]
+ return A
+}
+
+function _jmolEnumerateObject(A,key){
+ var sout=""
+ if(typeof(A) == "string" && A!="null"){
+ sout+="\n"+key+"=\""+A+"\""
+ }else if(!isNaN(A)||A==null){
+ sout+="\n"+key+"="+(A+""==""?"null":A)
+ }else if(A.length){
+ sout+=key+"=[]"
+ for(var i=0;i<A.length;i++){
+ sout+="\n"
+ if(typeof(A[i]) == "object"||typeof(A[i]) == "array"){
+ sout+=_jmolEnumerateObject(A[i],key+"["+i+"]")
+ }else{
+ sout+=key+"["+i+"]="+(typeof(A[i]) == "string" && A[i]!="null"?"\""+A[i].replace(/\"/g,"\\\"")+"\"":A[i])
+ }
+ }
+ }else{
+ if(key != ""){
+ sout+=key+"={}"
+ key+="."
+ }
+
+ for(var i in A){
+ sout+="\n"
+ if(typeof(A[i]) == "object"||typeof(A[i]) == "array"){
+ sout+=_jmolEnumerateObject(A[i],key+i)
+ }else{
+ sout+=key+i+"="+(typeof(A[i]) == "string" && A[i]!="null"?"\""+A[i].replace(/\"/g,"\\\"")+"\"":A[i])
+ }
+ }
+ }
+ return sout
+}
+
+
+function _jmolSortKey0(a,b){
+ return (a[0]<b[0]?1:a[0]>b[0]?-1:0)
+}
+
+function _jmolSortMessages(A){
+ if(!A || typeof(A)!="object")return []
+ var B = []
+ for(var i=A.length-1;i>=0;i--)for(var j=0;j<A[i].length;j++)B[B.length]=A[i][j]
+ if(B.length == 0) return
+ B=B.sort(_jmolSortKey0)
+ return B
+}
+
+/////////additional extensions //////////
+
+
+function _jmolDomScriptLoad(URL){
+ //open(URL) //to debug
+ _jmol.servercall=URL
+ var node = document.getElementById("_jmolScriptNode")
+ if (node && _jmol.browser!="msie"){
+ document.getElementsByTagName("HEAD")[0].removeChild(node)
+ node=null
+ }
+ if (node) {
+ node.setAttribute("src",URL)
+ } else {
+ node=document.createElement("script")
+ node.setAttribute("id","_jmolScriptNode")
+ node.setAttribute("type","text/javascript")
+ node.setAttribute("src",URL)
+ document.getElementsByTagName("HEAD")[0].appendChild(node)
+ }
+}
+
+
+function _jmolExtractPostData(url){
+ S=url.split("&POST:")
+ var s=""
+ for(var i=1;i<S.length;i++){
+ KV=S[i].split("=")
+ s+="&POSTKEY"+i+"="+KV[0]
+ s+="&POSTVALUE"+i+"="+KV[1]
+ }
+ return "&url="+escape(S[0])+s
+}
+
+function _jmolLoadModel(targetSuffix,remoteURL,array,isError,errorMessage){
+ //called by server, but in client
+ //overload this function to customize return
+ _jmol.remoteURL=remoteURL
+ isError && alert(errorMessage)
+ jmolLoadInlineScript(array.join("\n"),_jmol.optionalscript,targetSuffix)
+}
+
+//////////user property/status functions/////////
+
+function jmolGetStatus(strStatus,targetSuffix){
+ return _jmolSortMessages(jmolGetPropertyAsArray("jmolStatus",strStatus,targetSuffix))
+}
+
+function jmolGetPropertyAsArray(sKey,sValue,targetSuffix) {
+ return _jmolEvalJSON(jmolGetPropertyAsJSON(sKey,sValue,targetSuffix),sKey)
+}
+
+function jmolGetPropertyAsString(sKey,sValue,targetSuffix) {
+ var applet = _jmolGetApplet(targetSuffix);
+ sValue == undefined && (sValue="");
+ return (applet ? applet.getPropertyAsString(sKey,sValue) + "" : "")
+}
+
+function jmolGetPropertyAsJSON(sKey,sValue,targetSuffix) {
+ sValue == undefined && (sValue = "")
+ var applet = _jmolGetApplet(targetSuffix);
+ try {
+ return (applet ? applet.getPropertyAsJSON(sKey,sValue) + "" : "")
+ } catch(e) {
+ return ""
+ }
+}
+
+function jmolGetPropertyAsJavaObject(sKey,sValue,targetSuffix) {
+ sValue == undefined && (sValue = "")
+ var applet = _jmolGetApplet(targetSuffix);
+ return (applet ? applet.getProperty(sKey,sValue) : null)
+}
+
+
+function jmolDecodeJSON(s) {
+ return _jmolEnumerateObject(_jmolEvalJSON(s),"")
+}
+
+
+///////// synchronous scripting ////////
+
+function jmolScriptWait(script, targetSuffix) {
+ targetSuffix == undefined && (targetSuffix="0")
+ var Ret=jmolScriptWaitAsArray(script, targetSuffix)
+ var s = ""
+ for(var i=Ret.length;--i>=0;)
+ for(var j=0;j< Ret[i].length;j++)
+ s+=Ret[i][j]+"\n"
+ return s
+}
+
+function jmolScriptWaitOutput(script, targetSuffix) {
+ targetSuffix == undefined && (targetSuffix="0")
+ var ret = ""
+ try{
+ if (script) {
+ _jmolCheckBrowser();
+ var applet=_jmolGetApplet(targetSuffix);
+ if (applet) ret += applet.scriptWaitOutput(script);
+ }
+ }catch(e){
+ }
+ return ret;
+}
+
+function jmolEvaluate(molecularMath, targetSuffix) {
+
+ //carries out molecular math on a model
+
+ targetSuffix == undefined && (targetSuffix="0")
+ var result = "" + jmolGetPropertyAsJavaObject("evaluate", molecularMath, targetSuffix);
+ var s = result.replace(/\-*\d+/,"")
+ if (s == "" && !isNaN(parseInt(result)))return parseInt(result);
+ var s = result.replace(/\-*\d*\.\d*/,"")
+ if (s == "" && !isNaN(parseFloat(result)))return parseFloat(result);
+ return result;
+}
+
+function jmolScriptEcho(script, targetSuffix) {
+ // returns a newline-separated list of all echos from a script
+ targetSuffix == undefined && (targetSuffix="0")
+ var Ret=jmolScriptWaitAsArray(script, targetSuffix)
+ var s = ""
+ for(var i=Ret.length;--i>=0;)
+ for(var j=Ret[i].length;--j>=0;)
+ if (Ret[i][j][1] == "scriptEcho")s+=Ret[i][j][3]+"\n"
+ return s.replace(/ \| /g, "\n")
+}
+
+
+function jmolScriptMessage(script, targetSuffix) {
+ // returns a newline-separated list of all messages from a script, ending with "script completed\n"
+ targetSuffix == undefined && (targetSuffix="0")
+ var Ret=jmolScriptWaitAsArray(script, targetSuffix)
+ var s = ""
+ for(var i=Ret.length;--i>=0;)
+ for(var j=Ret[i].length;--j>=0;)
+ if (Ret[i][j][1] == "scriptStatus")s+=Ret[i][j][3]+"\n"
+ return s.replace(/ \| /g, "\n")
+}
+
+
+function jmolScriptWaitAsArray(script, targetSuffix) {
+ var ret = ""
+ try{
+ jmolGetStatus("scriptEcho,scriptMessage,scriptStatus,scriptError",targetSuffix)
+ if (script) {
+ _jmolCheckBrowser();
+ var applet=_jmolGetApplet(targetSuffix);
+ if (applet) ret += applet.scriptWait(script);
+ ret = _jmolEvalJSON(ret,"jmolStatus")
+ if(typeof ret == "object")
+ return ret
+ }
+ }catch(e){
+ }
+ return [[ret]]
+}
+
+
+
+//////////// save/restore orientation /////////////
+
+function jmolSaveOrientation(id, targetSuffix) {
+ targetSuffix == undefined && (targetSuffix="0")
+ return _jmol["savedOrientation"+id] = jmolGetPropertyAsArray("orientationInfo","info",targetSuffix).moveTo
+}
+
+function jmolRestoreOrientation(id, targetSuffix) {
+ targetSuffix == undefined && (targetSuffix="0")
+ var s=_jmol["savedOrientation"+id]
+ if (!s || s == "")return
+ s=s.replace(/1\.0/,"0")
+ return jmolScriptWait(s,targetSuffix)
+}
+
+function jmolRestoreOrientationDelayed(id, delay, targetSuffix) {
+ arguments.length < 2 && (delay=1)
+ targetSuffix == undefined && (targetSuffix="0")
+ var s=_jmol["savedOrientation"+id]
+ if (!s || s == "")return
+ s=s.replace(/1\.0/,delay)
+ return jmolScriptWait(s,targetSuffix)
+}
+
+//////////// add parameter /////////////
+/*
+ * for adding callbacks or other parameters. Use:
+
+ jmolSetDocument(0)
+ var s= jmolApplet(....)
+ s = jmolAppletAddParam(s,"messageCallback", "myFunctionName")
+ document.write(s)
+ jmolSetDocument(document) // if you want to then write buttons and such normally
+
+ */
+
+function jmolAppletAddParam(appletCode,name,value){
+ return (value == "" ? appletCode : appletCode.replace(/\<param/,"\n<param name='"+name+"' value='"+value+"' />\n<param"))
+}
+
+///////////////auto load Research Consortium for Structural Biology (RCSB) data ///////////
+
+function jmolLoadAjax_STOLAF_RCSB(fileformat,pdbid,optionalscript,targetSuffix){
+
+ _jmol.thismodel || (_jmol.thismodel = "1crn")
+ _jmol.serverURL || (_jmol.serverURL="http://fusion.stolaf.edu/chemistry/jmol/getajaxjs.cfm")
+ _jmol.RCSBserver || (_jmol.RCSBserver="http://www.rcsb.org")
+ _jmol.defaultURL_RCSB || (_jmol.defaultURL_RCSB=_jmol.RCSBserver+"/pdb/files/1CRN.CIF")
+ fileformat || (fileformat="PDB")
+ pdbid || (pdbid=prompt("Enter a 4-digit PDB ID:",_jmol.thismodel))
+ if(!pdbid || pdbid.length != 4)return ""
+ targetSuffix || (targetSuffix="0")
+ optionalscript || (optionalscript="")
+ var url=_jmol.defaultURL_RCSB.replace(/1CRN/g,pdbid.toUpperCase())
+ fileformat=="CIF" || (url=url.replace(/CIF/,fileformat))
+ _jmol.optionalscript=optionalscript
+ _jmol.thismodel=pdbid
+ _jmol.thistargetsuffix=targetSuffix
+ _jmol.thisurl=url
+ _jmol.modelArray = []
+ url=_jmol.serverURL+"?returnfunction=_jmolLoadModel&returnArray=_jmol.modelArray&id="+targetSuffix+_jmolExtractPostData(url)
+ _jmolDomScriptLoad(url)
+ return url
+}
+
+
+///////////////auto load NIH CACTVS data -- compound name or SMILES ///////////
+
+function jmolLoadAjax_STOLAF_NIH(compoundid,optionalscript,targetSuffix){
+ _jmol.thismodel || (_jmol.thismodel = "aspirin")
+ _jmol.serverURL || (_jmol.serverURL="http://fusion.stolaf.edu/chemistry/jmol/getajaxjs.cfm")
+ _jmol.defaultURL_NIH || (_jmol.defaultURL_NIH="http://cactus.nci.nih.gov/chemical/structure/FILE/file?format=sdf&get3d=True")
+ compoundid || (compoundid=prompt("Enter a compound name or a SMILES string:",_jmol.thismodel))
+ if(!compoundid)return ""
+ targetSuffix || (targetSuffix="0")
+ optionalscript || (optionalscript="")
+ var url=_jmol.defaultURL_NIH.replace(/FILE/g,compoundid)
+ _jmol.optionalscript=optionalscript
+ _jmol.thismodel=compoundid
+ _jmol.thistargetsuffix=targetSuffix
+ _jmol.thisurl=url
+ _jmol.modelArray = []
+ url=_jmol.serverURL+"?returnfunction=_jmolLoadModel&returnArray=_jmol.modelArray&id="+targetSuffix+_jmolExtractPostData(url)
+ _jmolDomScriptLoad(url)
+ return url
+}
+
+
+/////////////// St. Olaf College AJAX server -- ANY URL ///////////
+
+function jmolLoadAjax_STOLAF_ANY(url, userid, optionalscript,targetSuffix){
+ _jmol.serverURL="http://fusion.stolaf.edu/chemistry/jmol/getajaxjs.cfm"
+ _jmol.thisurlANY || (_jmol.thisurlANY = "http://www.stolaf.edu/depts/chemistry/mo/struc/data/ycp3-1.mol")
+ url || (url=prompt("Enter any (uncompressed file) URL:", _jmol.thisurlANY))
+ userid || (userid="0")
+ targetSuffix || (targetSuffix="0")
+ optionalscript || (optionalscript="")
+ _jmol.optionalscript=optionalscript
+ _jmol.thistargetsuffix=targetSuffix
+ _jmol.modelArray = []
+ _jmol.thisurl = url
+ url=_jmol.serverURL+"?returnfunction=_jmolLoadModel&returnArray=_jmol.modelArray&id="+targetSuffix+_jmolExtractPostData(url)
+ _jmolDomScriptLoad(url)
+}
+
+
+/////////////// Mineralogical Society of America (MSA) data /////////
+
+function jmolLoadAjax_MSA(key,value,optionalscript,targetSuffix){
+
+ _jmol.thiskeyMSA || (_jmol.thiskeyMSA = "mineral")
+ _jmol.thismodelMSA || (_jmol.thismodelMSA = "quartz")
+ _jmol.ajaxURL_MSA || (_jmol.ajaxURL_MSA="http://rruff.geo.arizona.edu/AMS/result.php?mineral=quartz&viewing=ajaxjs")
+ key || (key=prompt("Enter a field:", _jmol.thiskeyMSA))
+ if(!key)return ""
+ value || (value=prompt("Enter a "+key+":", _jmol.thismodelMSA))
+ if(!value)return ""
+ targetSuffix || (targetSuffix="0")
+ optionalscript || (optionalscript="")
+ optionalscript == 1 && (optionalscript='load "" {1 1 1}')
+ var url=_jmol.ajaxURL_MSA.replace(/mineral/g,key).replace(/quartz/g,value)
+ _jmol.optionalscript=optionalscript
+ _jmol.thiskeyMSA=key
+ _jmol.thismodelMSA=value
+ _jmol.thistargetsuffix=targetSuffix
+ _jmol.thisurl=url
+ _jmol.modelArray = []
+ loadModel=_jmolLoadModel
+ _jmolDomScriptLoad(url)
+ return url
+}
+
+
+
+function jmolLoadAjaxJS(url, userid, optionalscript,targetSuffix){
+ userid || (userid="0")
+ targetSuffix || (targetSuffix="0")
+ optionalscript || (optionalscript="")
+ _jmol.optionalscript=optionalscript
+ _jmol.thismodel=userid
+ _jmol.thistargetsuffix=targetSuffix
+ _jmol.modelArray = []
+ _jmol.thisurl = url
+ url+="&returnFunction=_jmolLoadModel&returnArray=_jmol.modelArray&id="+targetSuffix
+ _jmolDomScriptLoad(url)
+}
+
+
+//// in case Jmol library has already been loaded:
+
+}catch(e){}
+
+///////////////moving atoms //////////////
+
+// HIGHLY experimental!!
+
+function jmolSetAtomCoord(i,x,y,z,targetSuffix){
+ _jmolCheckBrowser();
+ var applet=_jmolGetApplet(targetSuffix);
+ if (applet) applet.getProperty('jmolViewer').setAtomCoord(i,x,y,z)
+}
+
+function jmolSetAtomCoordRelative(i,x,y,z,targetSuffix){
+ _jmolCheckBrowser();
+ var applet=_jmolGetApplet(targetSuffix);
+ if (applet) applet.getProperty('jmolViewer').setAtomCoordRelative(i,x,y,z)
+}
+
+
+///////////////applet fake for testing buttons/////////////
+
+
+if(_jmol.useNoApplet){
+ jmolApplet = function(w){
+ var s="<table style='background-color:black' width="+w+"><tr height="+w+">"
+ +"<td align=center valign=center style='background-color:white'>"
+ +"Applet would be here"
+ +"<p><textarea id=fakeApplet rows=5 cols=50></textarea>"
+ +"</td></tr></table>"
+ return _jmolDocumentWrite(s)
+ }
+
+ _jmolFindApplet = function(){return jmolApplet0}
+
+ jmolApplet0 = {
+ script: function(script){document.getElementById("fakeApplet").value="\njmolScript:\n"+script}
+ ,scriptWait: function(script){document.getElementById("fakeApplet").value="\njmolScriptWait:\n"+script}
+ ,loadInline: function(data,script){document.getElementById("fakeApplet").value="\njmolLoadInline data:\n"+data+"\n\nscript:\n"+script}
+ }
+}
+
+
+///////////////////////////////////////////
+
+ // This should no longer be needed, jmolResizeApplet() is better; kept for backwards compatibility
+ /*
+ Resizes absolutely (pixels) or by percent of window (w or h 0.5 means 50%).
+ targetSuffix is optional and defaults to zero (first applet in page).
+ Both w and h are optional, but needed if you want to use targetSuffix.
+ h defaults to w
+ w defaults to 100% of window
+ If either w or h is between 0 and 1, then it is taken as percent/100.
+ If either w or h is greater than 1, then it is taken as a size (pixels).
+ */
+function jmolResize(w,h,targetSuffix) {
+ _jmol.alerted = true;
+ var percentW = (!w ? 100 : w <= 1 && w > 0 ? w * 100 : 0);
+ var percentH = (!h ? percentW : h <= 1 && h > 0 ? h * 100 : 0);
+ if (_jmol.browser=="msie") {
+ var width=document.body.clientWidth;
+ var height=document.body.clientHeight;
+ } else {
+ var netscapeScrollWidth=15;
+ var width=window.innerWidth - netscapeScrollWidth;
+ var height=window.innerHeight-netscapeScrollWidth;
+ }
+ var applet = _jmolGetApplet(targetSuffix);
+ if(!applet)return;
+ applet.style.width = (percentW ? width * percentW/100 : w)+"px";
+ applet.style.height = (percentH ? height * percentH/100 : (h ? h : w))+"px";
+ //title=width + " " + height + " " + (new Date());
+}
+
+// 13 Jun 09 -- makes jmolResize() obsolete (kept for backwards compatibility)
+function jmolResizeApplet(size,targetSuffix) {
+ // See _jmolGetAppletSize() for the formats accepted as size [same used by jmolApplet()]
+ // Special case: an empty value for width or height is accepted, meaning no change in that dimension.
+ _jmol.alerted = true;
+ var applet = _jmolGetApplet(targetSuffix);
+ if(!applet)return;
+ var sz = _jmolGetAppletSize(size, "px");
+ sz[0] && (applet.style.width = sz[0]);
+ sz[1] && (applet.style.height = sz[1]);
+}
+
+function _jmolGetAppletSize(size, units) {
+ /* Accepts single number or 2-value array, each one can be one of:
+ percent (text string ending %), decimal 0 to 1 (percent/100), number, or text string (interpreted as nr.)
+ [width, height] array of strings is returned, with units added if specified.
+ Percent is relative to container div or element (which should have explicitly set size).
+ */
+ var width, height;
+ if ( (typeof size) == "object" && size != null ) {
+ width = size[0]; height = size[1];
+ } else {
+ width = height = size;
+ }
+ return [_jmolFixDim(width, units), _jmolFixDim(height, units)];
+}
+
+function _jmolFixDim(x, units) {
+ var sx = "" + x;
+ return (sx.length == 0 ? (units ? "" : _jmol.allowedJmolSize[2])
+ : sx.indexOf("%") == sx.length-1 ? sx
+ : (x = parseFloat(x)) <= 1 && x > 0 ? x * 100 + "%"
+ : (isNaN(x = Math.floor(x)) ? _jmol.allowedJmolSize[2]
+ : x < _jmol.allowedJmolSize[0] ? _jmol.allowedJmolSize[0]
+ : x > _jmol.allowedJmolSize[1] ? _jmol.allowedJmolSize[1]
+ : x) + (units ? units : ""));
+}
+
+
+
+
->FER_CAPAA Ferredoxin\r
------------------------------------------------------------ASYKVKLITPDGP\r
-IEFDCPDDVYILDQAEEAGHDLPYSCRAGSCSSCAGKIAGGAVDQTDGNFLDDDQLEEGWVLTCVAYPQSDV\r
-TIETHKEAELVG-\r
->FER_CAPAN Ferredoxin, chloroplast precursor\r
-MA------SVSATMISTSFMPRKPAVTSL-KPIPNVGE--ALFGLKS-A--NGGKVTCMASYKVKLITPDGP\r
-IEFDCPDNVYILDQAEEAGHDLPYSCRAGSCSSCAGKIAGGAVDQTDGNFLDDDQLEEGWVLTCVAYPQSDV\r
-TIETHKEAELVG-\r
->FER1_SOLLC Ferredoxin-1, chloroplast precursor\r
-MA------SISGTMISTSFLPRKPAVTSL-KAISNVGE--ALFGLKS-G--RNGRITCMASYKVKLITPEGP\r
-IEFECPDDVYILDQAEEEGHDLPYSCRAGSCSSCAGKVTAGSVDQSDGNFLDEDQEAAGFVLTCVAYPKGDV\r
-TIETHKEEELTA-\r
->Q93XJ9_SOLTU Ferredoxin I precursor\r
-MA------SISGTMISTSFLPRKPVVTSL-KAISNVGE--ALFGLKS-G--RNGRITCMASYKVKLITPDGP\r
-IEFECPDDVYILDQAEEEGHDLPYSCRAGSCSSCAGKVTAGTVDQSDGKFLDDDQEAAGFVLTCVAYPKCDV\r
-TIETHKEEELTA-\r
->FER1_PEA Ferredoxin-1, chloroplast precursor\r
-MATT---PALYGTAVSTSFLRTQPMPMSV-TTTKAFSN--GFLGLKT-SLKRGDLAVAMASYKVKLVTPDGT\r
-QEFECPSDVYILDHAEEVGIDLPYSCRAGSCSSCAGKVVGGEVDQSDGSFLDDEQIEAGFVLTCVAYPTSDV\r
-VIETHKEEDLTA-\r
->Q7XA98_TRIPR Ferredoxin I\r
-MATT---PALYGTAVSTSFMRRQPVPMSV-ATTTTTKAFPSGFGLKSVSTKRGDLAVAMATYKVKLITPEGP\r
-QEFDCPDDVYILDHAEEVGIELPYSCRAGSCSSCAGKVVNGNVNQEDGSFLDDEQIEGGWVLTCVAFPTSDV\r
-TIETHKEEELTA-\r
->FER1_MESCR Ferredoxin-1, chloroplast precursor\r
-MAAT--TAALSGATMSTAFAPK--TPPMTAALPTNVGR--ALFGLKS-SASR-GRVTAMAAYKVTLVTPEGK\r
-QELECPDDVYILDAAEEAGIDLPYSCRAGSCSSCAGKVTSGSVNQDDGSFLDDDQIKEGWVLTCVAYPTGDV\r
-TIETHKEEELTA-\r
->FER1_SPIOL Ferredoxin-1, chloroplast precursor\r
-MAAT--TTTMMG--MATTFVPKPQAPPMMAALPSNTGR--SLFGLKT-GSR--GGRMTMAAYKVTLVTPTGN\r
-VEFQCPDDVYILDAAEEEGIDLPYSCRAGSCSSCAGKLKTGSLNQDDQSFLDDDQIDEGWVLTCAAYPVSDV\r
-TIETHKEEELTA-\r
->FER3_RAPSA Ferredoxin, leaf L-A\r
------------------------------------------------------------ATYKVKFITPEGE\r
-QEVECDDDVYVLDAAEEAGIDLPYSCRAGSCSSCAGKVVSGSVDQSDQSFLDDDQIAEGFVLTCAAYPTSDV\r
-TIETHREEDMV--\r
->FER1_ARATH Ferredoxin-1, chloroplast precursor\r
-MAST----ALSSAIVGTSFIRRSPAPISLRSLPSANTQ--SLFGLKS-GTARGGRVTAMATYKVKFITPEGE\r
-LEVECDDDVYVLDAAEEAGIDLPYSCRAGSCSSCAGKVVSGSVDQSDQSFLDDEQIGEGFVLTCAAYPTSDV\r
-TIETHKEEDIV--\r
->FER_BRANA Ferredoxin\r
------------------------------------------------------------ATYKVKFITPEGE\r
-QEVECDDDVYVLDAAEEAGIDLPYSCRAGSCSSCAGKVVSGFVDQSDESFLDDDQIAEGFVLTCAAYPTSDV\r
-TIETHKEEELV--\r
->FER2_ARATH Ferredoxin-2, chloroplast precursor\r
-MAST----ALSSAIVSTSFLRRQQTPISLRSLPFANTQ--SLFGLKS-STARGGRVTAMATYKVKFITPEGE\r
-QEVECEEDVYVLDAAEEAGLDLPYSCRAGSCSSCAGKVVSGSIDQSDQSFLDDEQMSEGYVLTCVAYPTSDV\r
-VIETHKEEAIM--\r
->Q93Z60_ARATH At1g10960/T19D16_12\r
-MAST----ALSSAIVSTSFLRRQQTPISLRSLPFANTQ--SLFGLKS-STARGGRVTAMATYKVKFITPEGE\r
-QEVECEEDVYVLDAAEEAGLDLPYSCRAGSCSSCAGKVVSGSIDQSDQSFLDD-------------------\r
--------------\r
->FER1_MAIZE Ferredoxin-1, chloroplast precursor\r
-MATVLGSPRAPAFFFSSSSLRAAPAPTAV--ALPAAKV--GIMGRSA-SSRR--RLRAQATYNVKLITPEGE\r
-VELQVPDDVYILDQAEEDGIDLPYSCRAGSCSSCAGKVVSGSVDQSDQSYLDDGQIADGWVLTCHAYPTSDV\r
-VIETHKEEELTGA\r
->O80429_MAIZE Ferredoxin\r
-MAAT---------ALSMSILR---APPPCFSSPLRLRV--AVAKPLA-APMRRQLLRAQATYNVKLITPEGE\r
-VELQVPDDVYILDFAEEEGIDLPFSCRAGSCSSCAGKVVSGSVDQSDQSFLNDNQVADGWVLTCAAYPTSDV\r
-VIETHKEDDLL--\r
+>FER_CAPAA Ferredoxin
+-----------------------------------------------------------ASYKVKLITPDGP
+IEFDCPDDVYILDQAEEAGHDLPYSCRAGSCSSCAGKIAGGAVDQTDGNFLDDDQLEEGWVLTCVAYPQSDV
+TIETHKEAELVG-
+>FER_CAPAN Ferredoxin, chloroplast precursor
+MA------SVSATMISTSFMPRKPAVTSL-KPIPNVGE--ALFGLKS-A--NGGKVTCMASYKVKLITPDGP
+IEFDCPDNVYILDQAEEAGHDLPYSCRAGSCSSCAGKIAGGAVDQTDGNFLDDDQLEEGWVLTCVAYPQSDV
+TIETHKEAELVG-
+>FER1_SOLLC Ferredoxin-1, chloroplast precursor
+MA------SISGTMISTSFLPRKPAVTSL-KAISNVGE--ALFGLKS-G--RNGRITCMASYKVKLITPEGP
+IEFECPDDVYILDQAEEEGHDLPYSCRAGSCSSCAGKVTAGSVDQSDGNFLDEDQEAAGFVLTCVAYPKGDV
+TIETHKEEELTA-
+>Q93XJ9_SOLTU Ferredoxin I precursor
+MA------SISGTMISTSFLPRKPVVTSL-KAISNVGE--ALFGLKS-G--RNGRITCMASYKVKLITPDGP
+IEFECPDDVYILDQAEEEGHDLPYSCRAGSCSSCAGKVTAGTVDQSDGKFLDDDQEAAGFVLTCVAYPKCDV
+TIETHKEEELTA-
+>FER1_PEA Ferredoxin-1, chloroplast precursor
+MATT---PALYGTAVSTSFLRTQPMPMSV-TTTKAFSN--GFLGLKT-SLKRGDLAVAMASYKVKLVTPDGT
+QEFECPSDVYILDHAEEVGIDLPYSCRAGSCSSCAGKVVGGEVDQSDGSFLDDEQIEAGFVLTCVAYPTSDV
+VIETHKEEDLTA-
+>Q7XA98_TRIPR Ferredoxin I
+MATT---PALYGTAVSTSFMRRQPVPMSV-ATTTTTKAFPSGFGLKSVSTKRGDLAVAMATYKVKLITPEGP
+QEFDCPDDVYILDHAEEVGIELPYSCRAGSCSSCAGKVVNGNVNQEDGSFLDDEQIEGGWVLTCVAFPTSDV
+TIETHKEEELTA-
+>FER1_MESCR Ferredoxin-1, chloroplast precursor
+MAAT--TAALSGATMSTAFAPK--TPPMTAALPTNVGR--ALFGLKS-SASR-GRVTAMAAYKVTLVTPEGK
+QELECPDDVYILDAAEEAGIDLPYSCRAGSCSSCAGKVTSGSVNQDDGSFLDDDQIKEGWVLTCVAYPTGDV
+TIETHKEEELTA-
+>FER1_SPIOL Ferredoxin-1, chloroplast precursor
+MAAT--TTTMMG--MATTFVPKPQAPPMMAALPSNTGR--SLFGLKT-GSR--GGRMTMAAYKVTLVTPTGN
+VEFQCPDDVYILDAAEEEGIDLPYSCRAGSCSSCAGKLKTGSLNQDDQSFLDDDQIDEGWVLTCAAYPVSDV
+TIETHKEEELTA-
+>FER3_RAPSA Ferredoxin, leaf L-A
+-----------------------------------------------------------ATYKVKFITPEGE
+QEVECDDDVYVLDAAEEAGIDLPYSCRAGSCSSCAGKVVSGSVDQSDQSFLDDDQIAEGFVLTCAAYPTSDV
+TIETHREEDMV--
+>FER1_ARATH Ferredoxin-1, chloroplast precursor
+MAST----ALSSAIVGTSFIRRSPAPISLRSLPSANTQ--SLFGLKS-GTARGGRVTAMATYKVKFITPEGE
+LEVECDDDVYVLDAAEEAGIDLPYSCRAGSCSSCAGKVVSGSVDQSDQSFLDDEQIGEGFVLTCAAYPTSDV
+TIETHKEEDIV--
+>FER_BRANA Ferredoxin
+-----------------------------------------------------------ATYKVKFITPEGE
+QEVECDDDVYVLDAAEEAGIDLPYSCRAGSCSSCAGKVVSGFVDQSDESFLDDDQIAEGFVLTCAAYPTSDV
+TIETHKEEELV--
+>FER2_ARATH Ferredoxin-2, chloroplast precursor
+MAST----ALSSAIVSTSFLRRQQTPISLRSLPFANTQ--SLFGLKS-STARGGRVTAMATYKVKFITPEGE
+QEVECEEDVYVLDAAEEAGLDLPYSCRAGSCSSCAGKVVSGSIDQSDQSFLDDEQMSEGYVLTCVAYPTSDV
+VIETHKEEAIM--
+>Q93Z60_ARATH At1g10960/T19D16_12
+MAST----ALSSAIVSTSFLRRQQTPISLRSLPFANTQ--SLFGLKS-STARGGRVTAMATYKVKFITPEGE
+QEVECEEDVYVLDAAEEAGLDLPYSCRAGSCSSCAGKVVSGSIDQSDQSFLDD-------------------
+-------------
+>FER1_MAIZE Ferredoxin-1, chloroplast precursor
+MATVLGSPRAPAFFFSSSSLRAAPAPTAV--ALPAAKV--GIMGRSA-SSRR--RLRAQATYNVKLITPEGE
+VELQVPDDVYILDQAEEDGIDLPYSCRAGSCSSCAGKVVSGSVDQSDQSYLDDGQIADGWVLTCHAYPTSDV
+VIETHKEEELTGA
+>O80429_MAIZE Ferredoxin
+MAAT---------ALSMSILR---APPPCFSSPLRLRV--AVAKPLA-APMRRQLLRAQATYNVKLITPEGE
+VELQVPDDVYILDFAEEEGIDLPFSCRAGSCSSCAGKVVSGSVDQSDQSFLNDNQVADGWVLTCAAYPTSDV
+VIETHKEDDLL--
-<?xml version="1.0" encoding="ISO-8859-1" ?>\r
-<!--\r
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2)\r
- * Copyright (C) 2014 The Jalview Authors\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
- * The Jalview Authors are detailed in the 'AUTHORS' file.\r
--->\r
-<!DOCTYPE helpset PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp HelpSet Version 1.0//EN" "http://java.sun.com/products/javahelp/helpset_1_0.dtd">\r
-<helpset version="1.0">\r
- <!-- title -->\r
- <title>Jalview Documentation</title>\r
- <!-- maps -->\r
- <maps>\r
- <homeID>home</homeID>\r
- <mapref location="help.jhm" />\r
- </maps>\r
- <!-- views -->\r
- <view>\r
- <name>TOC</name>\r
- <label>Table Of Contents</label>\r
- <type>javax.help.TOCView</type>\r
- <data>helpTOC.xml</data>\r
- </view>\r
- <view>\r
- <name>Search</name>\r
- <label>Search</label>\r
- <type>javax.help.SearchView</type>\r
- <data engine="com.sun.java.help.search.DefaultSearchEngine">\r
- JavaHelpSearch\r
- </data>\r
- </view>\r
-<presentation default="true" displayviews="true" displayviewimages="false">\r
- <name>TOPALi</name>\r
- <size width="800" height="700" />\r
- <location x="200" y="50" />\r
- <title>Jalview Documentation</title>\r
- <image>helpIcon</image>\r
- <toolbar>\r
- <helpaction image="backIcon">javax.help.BackAction</helpaction>\r
- <helpaction image="forwardIcon">javax.help.ForwardAction</helpaction>\r
- <helpaction image="homeIcon">javax.help.HomeAction</helpaction>\r
- <helpaction>javax.help.SeparatorAction</helpaction>\r
- <!--<helpaction image="reloadIcon">javax.help.ReloadAction</helpaction>-->\r
- <!--<helpaction image="addBookmarkIcon">javax.help.FavoritesAction</helpaction>-->\r
- <helpaction image="printIcon">javax.help.PrintAction</helpaction>\r
- <helpaction image="printSetupIcon">javax.help.PrintSetupAction</helpaction>\r
- </toolbar>\r
- </presentation>\r
-</helpset>\r
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!--
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2)
+ * Copyright (C) 2014 The Jalview Authors
+ *
+ * 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/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+-->
+<!DOCTYPE helpset PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp HelpSet Version 1.0//EN" "http://java.sun.com/products/javahelp/helpset_1_0.dtd">
+<helpset version="1.0">
+ <!-- title -->
+ <title>Jalview Documentation</title>
+ <!-- maps -->
+ <maps>
+ <homeID>home</homeID>
+ <mapref location="help.jhm" />
+ </maps>
+ <!-- views -->
+ <view>
+ <name>TOC</name>
+ <label>Table Of Contents</label>
+ <type>javax.help.TOCView</type>
+ <data>helpTOC.xml</data>
+ </view>
+ <view>
+ <name>Search</name>
+ <label>Search</label>
+ <type>javax.help.SearchView</type>
+ <data engine="com.sun.java.help.search.DefaultSearchEngine">
+ JavaHelpSearch
+ </data>
+ </view>
+<presentation default="true" displayviews="true" displayviewimages="false">
+ <name>TOPALi</name>
+ <size width="800" height="700" />
+ <location x="200" y="50" />
+ <title>Jalview Documentation</title>
+ <image>helpIcon</image>
+ <toolbar>
+ <helpaction image="backIcon">javax.help.BackAction</helpaction>
+ <helpaction image="forwardIcon">javax.help.ForwardAction</helpaction>
+ <helpaction image="homeIcon">javax.help.HomeAction</helpaction>
+ <helpaction>javax.help.SeparatorAction</helpaction>
+ <!--<helpaction image="reloadIcon">javax.help.ReloadAction</helpaction>-->
+ <!--<helpaction image="addBookmarkIcon">javax.help.FavoritesAction</helpaction>-->
+ <helpaction image="printIcon">javax.help.PrintAction</helpaction>
+ <helpaction image="printSetupIcon">javax.help.PrintSetupAction</helpaction>
+ </toolbar>
+ </presentation>
+</helpset>
-action.refresh_services = Refrescar servicios\r
-action.reset_services = Reiniciar servicios\r
-action.merge_results = Unificar resultados\r
-action.load_scheme = Cargar esquema\r
-action.save_scheme = Guardar esquema\r
-action.save_image = Guardar imagen\r
-action.paste = Pegar\r
-action.show_html_source = Mostrar código HTML\r
-action.print = Imprimir\r
-action.web_service = Servicio web\r
-action.cancel_job = Cancelar trabajo\r
-action.start_job = Arrancar trabajo\r
-action.revert = Deshacer\r
-action.move_down = Mover hacia abajo\r
-action.move_up = Mover hacia arriba\r
-action.remove_return_datatype = Borrar tipo de datos de retorno\r
-action.add_return_datatype = Añadir tipo de datos de retorno\r
-action.remove_input_parameter = Borrar el parámetro de entrada seleccionado\r
-action.add_input_parameter = Añadir parámetro de entrada seleccionado\r
-action.edit = Editar\r
-action.new = Nuevo\r
-action.open_file = Abrir fichero\r
-action.show_unconserved = Mostrar regiones no conservadas\r
-action.open_new_aligmnent = Abrir nuevo alineamiento\r
-action.raise_associated_windows = Destacar ventanas asociadas\r
-action.minimize_associated_windows = Minimizar ventanas asociadas\r
-action.close_all = Cerrar todo\r
-action.load_project = Cargar proyecto\r
-action.save_project = Guardar proyecto\r
-action.quit = Salir\r
-action.expand_views = Expandir vistas\r
-action.gather_views = Capturar vistas\r
-action.page_setup = Configuración de la página\r
-action.reload = Recargar\r
-action.load = Cargar\r
-action.open = Abrir\r
-action.cancel = Cancelar\r
-action.create = Crear\r
-action.update = Actualizar\r
-action.delete = Borrar\r
-action.snapshot = Imagen\r
-action.clear = Limpiar\r
-action.accept = Aceptar\r
-action.select_ddbb = --- Seleccionar base de datos ---\r
-action.undo = Deshacer\r
-action.redo = Rehacer\r
-action.reset = Reiniciar\r
-action.remove_left = Eliminar parte izquierda\r
-action.remove_right = Eliminar parte derecha\r
-action.remove_empty_columns = Eliminar las columnas vacías\r
-action.remove_all_gaps = Eliminar todos los huecos\r
-action.left_justify_alignment = Ajustar el alineamiento a la izquierda\r
-action.right_justify_alignment = Ajustar el alineamiento a la derecha\r
-action.boxes = Casillas\r
-action.text = Texto\r
-action.by_pairwise_id = Identificar por parejas\r
-action.by_id = Por identificador\r
-action.by_length = Por longitud\r
-action.by_group = Por grupo\r
-action.remove = Eliminar\r
-action.remove_redundancy = Eliminar redundancia...\r
-action.pairwise_alignment = Alineamiento de pares...\r
-action.by_rna_helixes = Por hélices de RNA\r
-action.user_defined = Definido por el usuario...\r
-action.by_conservation = Por conservación\r
-action.wrap = Envolver\r
-action.show_gaps = Mostrar huecos\r
-action.show_hidden_markers = Mostrar marcadores ocultos\r
-action.find = Buscar\r
-action.undefine_groups = Grupos sin definir\r
-action.create_groups = Crear grupos\r
-action.make_groups_selection = Hacer grupos para seleccionar\r
-action.copy = Copiar\r
-action.cut = Cortar\r
-action.font = Fuente...\r
-action.scale_above = Escala superior\r
-action.scale_left = Escala izquierda\r
-action.scale_right = Escala derecha\r
-action.by_tree_order = Por orden del árbol\r
-action.sort = Ordenar\r
-action.calculate_tree = Calcular árbol\r
-action.help = Ayuda\r
-action.by_annotation = Por anotación...\r
-action.invert_sequence_selection = Invertir selección de secuencias\r
-action.invert_column_selection = Invertir selección de columnas\r
-action.show = Mostrar\r
-action.hide = Ocultar\r
-action.ok = OK\r
-action.set_defaults = Defecto\r
-action.create_group = Crear grupo\r
-action.remove_group = Eliminar grupo\r
-action.edit_group = Editar grupo\r
-action.border_colour = Color del borde\r
-action.edit_new_group = Editar nuevo grupo\r
-action.hide_sequences = Ocultar secuencias\r
-action.sequences = Secuencias\r
-action.ids = IDS\r
-action.ids_sequences = IDS y secuencias\r
-action.reveal_all = Revelar todo\r
-action.reveal_sequences = Revelar secuencias\r
-action.find_all = Buscar todo\r
-action.find_next = Buscar siguiente\r
-action.file = Archivo\r
-action.view = Ver \r
-action.change_params = Cambiar parámetros\r
-action.apply = Aplicar\r
-action.apply_threshold_all_groups = Aplicar umbral a todos los grupos\r
-action.apply_all_groups = Aplicar a todos los grupos\r
-action.by_chain = Por cadena\r
-action.by_sequence = Por secuencia\r
-action.paste_annotations = Pegar anotaciones\r
-action.format = Formato\r
-action.select = Seleccionar\r
-action.new_view = Nueva vista\r
-action.close = Cerrar\r
-action.add = Añadir\r
-action.save_as_default = Guardar como por defecto\r
-action.save_as = Guardar como\r
-action.save = Guardar\r
-action.cancel_fetch = Cancelar búsqueda\r
-action.save_omit_hidden_columns = Guardar / Omitir las columnas ocultas\r
-action.change_font = Cambiar Fuente\r
-action.change_font_tree_panel = Cambiar fuente (panel del árbol)\r
-action.colour = Color\r
-action.calculate = Calcular\r
-action.select_all = Seleccionar Todo\r
-action.deselect_all = Deseleccionar Todo\r
-action.invert_selection = Invertir selección\r
-action.using_jmol = Usar Jmol\r
-action.link = Enlazar\r
-action.group_link = Enlazar grupo\r
-action.show_chain = Mostrar cadena\r
-action.show_group = Mostrar grupo\r
-action.fetch_db_references = Recuperar referencias a base de datos\r
-action.view_flanking_regions = Mostrar flancos\r
-label.view_flanking_regions = Mostrar los datos de la secuencia a ambos lados de las subsecuencias implicadas en este alineamiento\r
-label.str = Str: \r
-label.seq = Seq: \r
-label.structures_manager = Administrar estructuras\r
-label.nickname = Sobrenombre:\r
-label.url = URL: \r
-label.input_file_url = Introducir URL en el fichero de entrada\r
-label.select_feature = Seleccionar función:\r
-label.name = Nombre:\r
-label.name_param = Nombre: {0}\r
-label.group = Grupo:\r
-label.group_name = Nombre del grupo\r
-label.group_description = Descripción del grupo\r
-label.edit_group_name_description = Editar nombre/descripción del grupo\r
-label.colour = Color:\r
-label.description = Descripción:\r
-label.start = Comenzar:\r
-label.end = Terminar:\r
-label.current_parameter_set_name = Nombre actual del conjunto de parámetros:\r
-label.service_action = Acción de servicio:\r
-label.post_url = POST URL: \r
-label.url_suffix = URL Sufijo\r
-label.sequence_source = Fuente de la secuencia\r
-label.per_seq = por secuencia\r
-label.result_vertically_separable = Los resultados son separables verticalmente\r
-label.amend = Modificar\r
-label.undo_command = Deshacer {0}\r
-label.redo_command = Rehacer {0}\r
-label.principal_component_analysis = Análisis del Componente Principal\r
-label.average_distance_identity = Distancia Media Usando % de Identidad\r
-label.neighbour_joining_identity = Unir vecinos utilizando % de Identidad\r
-label.treecalc_title = {0} utilizando {1}\r
-label.tree_calc_av = Distancia media\r
-label.tree_calc_nj = Unir vecinos\r
-label.select_score_model = Selecciones modelo de puntuación\r
-label.score_model_pid = % Identidad\r
-label.score_model_blosum62 = BLOSUM62\r
-label.score_model_pam250 = PAM 250\r
-label.score_model_conservation = Conservación de las propiedades físico-químicas\r
-label.score_model_enhconservation = Conservación de las propiedades físico-químicas\r
-label.status_bar = Barra de estado\r
-label.out_to_textbox = Generar cuadro de texto\r
-label.clustalx = Clustalx\r
-label.clustal = Clustal\r
-label.zappo = Zappo\r
-label.taylor = Taylor\r
-label.blc = BLC\r
-label.fasta = Fasta\r
-label.msf = MSF\r
-label.pfam = PFAM\r
-label.pileup = Pileup\r
-label.pir = PIR\r
-label.hydrophobicity = Hidrofobicidad\r
-label.helix_propensity = Tendencia de la hélice\r
-label.strand_propensity = Tendencia de la hebra\r
-label.turn_propensity = Tendencia de giro\r
-label.buried_index = Índice de encubrimiento\r
-label.purine_pyrimidine = Purina/Pirimidina\r
-label.percentage_identity = Porcentaje de identidad\r
-label.blosum62 = BLOSUM62\r
-label.blosum62_score = Puntuación del BLOSUM62 \r
-label.tcoffee_scores = Puntuación del T-Coffee\r
-label.average_distance_bloslum62 = Distancia Media Usando BLOSUM62\r
-label.neighbour_blosum62 = Neighbour Joining usando BLOSUM62\r
-label.show_annotations = Mostrar anotaciones\r
-label.colour_text = Color del texto\r
-label.show_non_conversed = Mostrar no conservadas\r
-label.overview_window = Ventana resumen\r
-label.none = Ninguno\r
-label.above_identity_threshold = Por encima del umbral de identidad\r
-label.show_sequence_features = Mostrar las características de las secuencias\r
-label.nucleotide = Nucleótido\r
-label.to_new_alignment = A nuevo alineamiento\r
-label.to_this_alignment = Añadir a este alineamiento\r
-label.apply_colour_to_all_groups = Aplicar color a todos los grupos\r
-label.modify_identity_thereshold = Modificar el umbral de identidad...\r
-label.modify_conservation_thereshold = Modificar el umbral de conservación...\r
-label.input_from_textbox = Introducir desde el cuadro de texto\r
-label.centre_column_labels = Centrar las etiquetas de las columnas\r
-label.automatic_scrolling = Desplazamiento automático\r
-label.documentation = Documentación\r
-label.about = Acerca de...\r
-label.show_sequence_limits = Mostrar los límites de la secuencia\r
-label.feature_settings = Ajustar funciones...\r
-label.sequence_features = Funciones de la secuencia\r
-label.all_columns = Todas las columnas\r
-label.all_sequences = Todas las secuencias\r
-label.selected_columns = Columnas seleccionadas\r
-label.selected_sequences = Secuencias seleccionadas\r
-label.all_but_selected_region = Todo menos la región seleccionada (Shift+Ctrl+H)\r
-label.selected_region = Región seleccionada\r
-label.all_sequences_columns = Todas las secuencias y columnas\r
-label.group_consensus = Consenso de grupo\r
-label.group_conservation = Conservación de grupo\r
-label.show_consensus_histogram = Mostrar el histograma de consenso\r
-label.show_consensus_logo = Mostrar el logo de consenso\r
-label.norm_consensus_logo = Normalizar el logo de consenso\r
-label.apply_all_groups = Aplicar a todos los grupos\r
-label.autocalculated_annotation = Anotación autocalculada\r
-label.min_colour = Color mínimo\r
-label.max_colour = Color máximo\r
-label.use_original_colours = Usar colores originales\r
-label.threshold_minmax = El umbral es mín/máx\r
-label.represent_group_with = Representar al grupo con\r
-label.selection = Seleccionar\r
-label.group_colour = Color del grupo\r
-label.sequence = Secuencia\r
-label.view_pdb_structure = Ver estructura PDB\r
-label.min = Mín:\r
-label.max = Máx:\r
-label.colour_by_label = Color por etiquetas\r
-label.new_feature = Nueva función\r
-label.match_case = Hacer corresponder mayúsculas y minúsculas\r
-label.view_alignment_editor = Ver en el editor de alineamientos\r
-label.labels = Etiquetas\r
-label.output_values = Valores de salida...\r
-label.output_points = Puntos de salida...\r
-label.output_transformed_points = Puntos de salida transformados\r
-label.input_data = Datos de entrada...\r
-label.nucleotide_matrix = Matriz nucleotídica\r
-label.protein_matrix = Matriz proteica\r
-label.show_bootstrap_values = Mostrar valores de Bootstrap\r
-label.show_distances = Mostrar distancias\r
-label.mark_unassociated_leaves = Marcar hojas no asociadas\r
-label.fit_to_window = Ajustar a la ventana\r
-label.newick_format = Formato Newick\r
-label.select_newick_like_tree_file = Seleccione un fichero de árbol tipo Newick\r
-label.colours = Colores\r
-label.view_mapping = Ver mapeado\r
-label.wireframe = Estructura metálica\r
-label.depthcue = Clave de profundidad\r
-label.z_buffering = Tamponamiento Z\r
-label.charge_cysteine = Carga & Cisteína\r
-label.all_chains_visible = Todas las cadenas visibles\r
-label.successfully_added_features_alignment = Funciones añadidas exitosamente al alineamiento\r
-label.keyboard_editing_mode = El modo de editar teclado es {0}\r
-label.paste_features_annotations_Tcoffee_here = Pegar tus funciones / anotaciones / puntuación del fichero T-coffee aquí.\r
-label.removed_columns = {0} columnas eliminadas.\r
-label.removed_empty_columns = {0} columnas vacías eliminadas.\r
-label.paste_newick_tree_file = Pegar su fichero árbol Newick aquí. \r
-label.order_by_params = Ordenar por {0}\r
-label.html_content = <html>{0}</html>\r
-label.paste_pdb_file= Pegar tu fichero PDB aquí.\r
-label.paste_pdb_file_for_sequence = Pegar fichero PDB para la secuencia {0}\r
-label.could_not_parse_newick_file = No se pudo analizar el fichero Newick\\\!\\n {0}\r
-label.successfully_pasted_tcoffee_scores_to_alignment= Pegada exitosamente la puntuación T-Coffee al alineamiento.\r
-label.failed_add_tcoffee_scores = Fallo al añadir las puntuaciones T-Coffee: \r
-label.successfully_pasted_annotation_to_alignment = Anotación pegada exitosamente al alineamiento.\r
-label.couldnt_parse_pasted_text_as_valid_annotation_feature_GFF_tcoffee_file = No es posible parsear el texto pegado como una anotación características, GFF, o fichero T-Coffee válidos\r
-label.successfully_pasted_alignment_file = Fichero de alineamiento pegado exitosamente\r
-label.paste_your_alignment_file = Pegar su fichero de alineamiento aquí\r
-label.paste_your = Pegar su\r
-label.finished_searching = Búsqueda finalizada\r
-label.search_results= Buscar Resultados {0} : {1}\r
-label.found_match_for = Buscar coincidencia para {0}\r
-label.font = Fuente:\r
-label.size = Talla:\r
-label.style = Estilo:\r
-label.enter_redundancy_threshold = Introducir el umbral de redundancia\r
-label.calculating = Calculando....\r
-label.modify_conservation_visibility = Modificar la visibilidad de conservación\r
-label.colour_residues_above_occurence = Residuos de color por encima del % de aparición \r
-label.set_this_label_text = fijar como etiqueta \r
-label.sequences_from = Secuencias de {0}\r
-label.successfully_loaded_file = Fichero cargado exitosamente {0}\r
-label.successfully_saved_to_file_in_format = Guardado exitosamente en el fichero: {0} en formato {1}.\r
-label.copied_sequences_to_clipboard = Copiadas {0} secuencias en el portapapeles.\r
-label.check_file_matches_sequence_ids_alignment = Comprobar que el fichero coincide con el ID de la secuencia en el alineamiento.\r
-label.problem_reading_tcoffee_score_file = Problema de lectura del fichero de puntuaciones T-COFFEE\r
-label.source_to_target = {0} a '{1}'\r
-label.per_sequence_only= Sólo por secuencia\r
-label.to_file = a fichero\r
-label.to_textbox = a cuadro de texto\r
-label.jalview = Jalview\r
-label.csv_spreadsheet = CSV (Hoja de cálculo)\r
-label.status = [Estado]\r
-label.channels = Canales\r
-label.channel_title_item_count = {0} ({1})\r
-label.blog_item_published_on_date = {0} {1} \r
-label.select_das_service_from_table = Seleccionar servicio DAS de la tabla para leer una descripción completa aquí.\r
-label.session_update = Actualizar sesión\r
-label.new_vamsas_session = Nueva sesión Vamsas\r
-label.load_vamsas_session = Cargar sesión Vamsas\r
-label.save_vamsas_session = Guardar sesión Vamsas\r
-label.select_vamsas_session_opened_as_new_vamsas_session= Selecciones una sesión vamsas para abrirla como una nueva sesión.\r
-label.open_saved_vamsas_session = Abrir una sesión VAMSAS guardada\r
-label.groovy_console = Consola Groovy \r
-label.lineart = lineart\r
-label.dont_ask_me_again = No volver a preguntar\r
-label.select_eps_character_rendering_style = Seleccionar el carácter EPS como estilo de visualización \r
-label.invert_selection = Invertir selección\r
-label.optimise_order = Optimizar orden\r
-label.seq_sort_by_score = Ordenar las secuencias por puntuación\r
-label.load_colours = Cargar colores\r
-label.save_colours = Guardar colores\r
-label.fetch_das_features = Recuperar funciones DAS\r
-label.selected_database_to_fetch_from = Seleccionada {0} Base de datos {1} para buscar de {2} \r
-label.database_param = Base de datos: {0}\r
-label.example = Ejemplo\r
-label.example_param = Ejemplo: {0}\r
-label.select_file_format_before_saving = Debe seleccionar un formato de fichero antes de guardar!\r
-label.file_format_not_specified = Formato de fichero no especificado\r
-label.alignment_contains_hidden_columns = El alineamiento contiene columnas ocultas.\\nQuieres guardar s\u00F3lo el alineamiento visible?\r
-label.couldnt_save_file = No se pudo guardar el fichero: {0}\r
-label.error_saving_file = Error guardando el fichero\r
-label.remove_from_default_list = eliminar de la lista de defectuosos?\r
-label.remove_user_defined_colour = Eliminar el color definido por el usuario\r
-label.you_must_select_least_two_sequences = Debes seleccionar al menos 2 secuencias.\r
-label.invalid_selection = Selección inválida\r
-label.principal_component_analysis_must_take_least_four_input_sequences = El an\u00E1lisis de la componente principal debe tomar\\nal menos 4 secuencias de entrada.\r
-label.sequence_selection_insufficient = Selección de secuencias insuficiente\r
-label.you_need_more_two_sequences_selected_build_tree = necesitas seleccionar más de dos secuencias para construir un árbol!\r
-label.not_enough_sequences = No suficientes secuencias\r
-label.selected_region_to_tree_may_only_contain_residues_or_gaps = La regi\u00F3n seleccionada para construir un \u00E1rbol puede\\ncontener s\u00F3lo residuos o espacios.\\nPrueba usando la funci\u00F3n Pad en el men\u00FA de edici\u00F3n,\\n o uno de los m\u00FAltiples servicios web de alineamiento de secuencias.\r
-label.sequences_selection_not_aligned = Las secuencias seleccionadas no están alineadas\r
-label.sequences_must_be_aligned_before_creating_tree = Las secuencias deben estar alineadas antes de crear el \u00E1rbol.\\nPrueba usando la funci\u00F3n Pad en el men\u00FA de editar,\\n o uno de los m\u00FAltiples servicios web de alineamiento de secuencias.\r
-label.sequences_not_aligned = Secuencias no alineadas\r
-label.problem_reading_tree_file = Problema al leer el fichero del árbol\r
-label.possible_problem_with_tree_file = Posible problema con el fichero del árbol\r
-label.select_at_least_three_bases_in_at_least_one_sequence_to_cDNA_translation = Por favor seleccionar al menos tres bases de al menos una secuencia para poder realizar la traducción de cDNA.\r
-label.translation_failed = Translation Failed\r
-label.error_when_translating_sequences_submit_bug_report = Desafortunadamente, algo fue mal a la hora de traducir tus secuencias.\\nPor favor, revisa la consola Jalview java \\ny presenta un informe de error que incluya el seguimiento.\r
-label.implementation_error = Error de implementación:\r
-label.automatically_associate_pdb_files_with_sequences_same_name = Quieres asociar automáticamente los {0} ficheros PDB con las secuencias del alineamiento que tengan el mismo nombre?\r
-label.automatically_associate_pdb_files_by_name = Asociar los ficheros PDB por nombre automáticamente\r
-label.ignore_unmatched_dropped_files_info = Quieres <em>ignorar</em> los {0} ficheros cuyos nombres no coincidan con ningún IDs de las secuencias ?\r
-label.ignore_unmatched_dropped_files = Ignorar los ficheros sin coincidencias?\r
-label.enter_view_name = Introducir nombre visible (¿?)\r
-label.enter_label = Introducir etiqueta\r
-label.enter_label_for_the_structure = Introducir una etiqueta para la estructura?\r
-label.pdb_entry_is_already_displayed = {0} Ya est\u00E1 mostrado.\\nQuieres volver a usar este visor?\r
-label.map_sequences_to_visible_window = Mapa de secuencias en ventana visible: {0}\r
-label.add_pdbentry_to_view = Quieres a\u00F1adir {0} a la vista llamada\\n'{1}'\\n\r
-label.align_to_existing_structure_view = Alinear a una estructura ya existente\r
-label.pdb_entries_couldnt_be_retrieved = Las siguientes entradas pdb no pueden ser extra\u00EDdas del PDB\\\:\\n{0}\\nPor favor, prueba descarg\u00E1ndolas manualmente.\r
-label.couldnt_load_file = No se pudo cargar el fichero\r
-label.couldnt_find_pdb_id_in_file = No se pudo encontrar un Id PDB en el fichero suministrado. Por favor, introduzca un Id para identificar esta estructura.\r
-label.no_pdb_id_in_file = No hay un Id PDB en el fichero\r
-label.couldnt_read_pasted_text = No se pudo leer el texto pegado {0}\r
-label.error_parsing_text = Error analizando el texto\r
-label.enter_local_das_source = Intruduzca el Nickname & URL de la fuente DAS local\r
-label.you_can_only_edit_or_remove_local_das_sources = Sólo puedes editar o eliminar fuentes DAS locales!\r
-label.public_das_source = Fuente pública DAS - no editable\r
-label.input_alignment_from_url = Alineamiento de entrada desde URL\r
-label.input_alignment = Alineamiento de entrada\r
-label.couldnt_import_as_vamsas_session = No se pudo importar '{0}' como una nueva sesión Vamsas.\r
-label.vamsas_document_import_failed = Fallo en la importación del documento Vamsas\r
-label.couldnt_locate = No se pudo localizar {0}\r
-label.url_not_found = URL no encontrada\r
-label.no_link_selected = Enlace no seleccionado\r
-label.new_sequence_url_link = Enlace a una nueva secuencia URL\r
-label.cannot_edit_annotations_in_wrapped_view = No se pueden editar anotaciones en vista envolvente\r
-label.wrapped_view_no_edit = Vista envolvente - no editar\r
-label.error_retrieving_data = Error en la recuperación de datos\r
-label.user_colour_scheme_must_have_name = El esquema de colores del usuario debe tener un nombre\r
-label.no_name_colour_scheme = No hay nombre para el esquema de colores \r
-label.invalid_url = URL Invalido!\r
-label.error_loading_file = Error al cargar el fichero\r
-label.problems_opening_file = Encontrados problemas al abrir el fichero {0}!!\r
-label.file_open_error = Error al abrir el fichero\r
-label.no_das_sources_selected_warn = No han sido seleccionadas fuentes DAS.\\nPor favor, seleccione algunas fuentes y\\npruebe de nuevo.\r
-label.no_das_sources_selected_title = No han sido seleccionadas fuentes DAS\r
-label.colour_scheme_exists_overwrite = El esquema de colores {0} ya existe.\\nContinuar guardando el esquema de colores como {1}?"\r
-label.duplicate_scheme_name = Duplicar nombre de esquema\r
-label.jalview_new_questionnaire = Hay un nuevo cuestionario disponible. Querr\u00EDa completarlo ahora ?\\n\r
-label.jalview_user_survey = Encuesta de usuario Jalview \r
-label.alignment_properties = Propiedades del alineamiento: {0}\r
-label.alignment_props = Propiedades del alineamiento\r
-label.input_cut_paste = Cortar y pegar la entrada\r
-label.input_cut_paste_params = Cortar y pegar la entrada - {0}\r
-label.alignment_output_command = Alineamiento de salida - {0}\r
-label.annotations = Anotaciones\r
-label.features = Funciones\r
-label.overview_params = Visión general {0}\r
-label.paste_newick_file = Pegar nuevo fichero Newick\r
-label.load_tree_from_file = desde fichero - \r
-label.colour_by_annotation = Color por anotación\r
-label.selection_output_command = Seleccionar salida - {0}\r
-label.annotation_for_displayid = <p><h2>Anotación para {0} </h2></p><p>\r
-label.pdb_sequence_mapping = PDB - Mapeado de secuencia\r
-label.pca_details = detalles de la PCA\r
-label.redundancy_threshold_selection = Selección del umbral de redundancia\r
-label.user_defined_colours = Colores definidos del usuario\r
-label.jalviewLite_release = JalviewLite - versión {0}\r
-label.jaview_build_date = Fecha de creación: {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 = Desarrollo gestionado por The Barton Group, University of Dundee, Scotland, UK.\r
-label.jalview_distribution_lists = Para ayuda, ver el FAQ at www.jalview.org y/o adjuntar la lista de envío jalview-discuss@jalview.org\r
-label.jalview_please_cite = Si usa Jalview incluya la siguiente cita, por favor:\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 - un editor de alineamiento múltiple de secuencias y banco de trabajo de análisis\r
-label.jalview_cite_1_ref = Bioinformaticos doi: 10.1093/bioinformatics/btp033\r
-label.right_click = clic en el botón derecho\r
-label.to_add_annotation = para añadir anotación\r
-label.alignment_has_no_annotations = El alineamiento no tiene anotaciones\r
-label.retrieving_pdb_data = Recuperación de datos PDB...\r
-label.label = Etiqueta\r
-label.no_features_added_to_this_alignment = No hay funciones asociadas a este alineamiento!!\r
-label.features_can_be_added_from_searches_1 = (Las funciones pueden ser añadidas de búsquedas o\r
-label.features_can_be_added_from_searches_2 = de ficheros de funciones Jalview / GFF)\r
-label.calculating_pca= Calculando PCA\r
-label.reveal_columns = Mostrar Columnas\r
-label.jalview_cannot_open_file = Jalview no puede abrir el fichero\r
-label.jalview_applet = Aplicación Jalview \r
-label.loading_data = Cargando datos\r
-label.memory_stats = Memoria libre total: {0} MB; Memoria máxima: {1} MB; {2} %\r
-label.calculating_tree = Calculando árbol\r
-label.state_queueing = En cola \r
-label.state_running = Procesando\r
-label.state_complete = Completar\r
-label.state_completed = Finalizado\r
-label.state_job_cancelled = ¡Trabajo cancelado!\r
-label.state_job_error = Error del trabajo!\r
-label.server_error_try_later = ¡Error del servidor! (Intentar más tarde)\r
-label.error_loading_pdb_data = ¡Error cargando los datos PDB!\r
-label.fetching_pdb_data = Buscando los datos PDB...\r
-label.structure_type = Estructura_tipo\r
-label.settings_for_type = Ajustes para {0}\r
-label.view_full_application = Ver en la aplicación completa \r
-label.load_associated_tree = Cargar árbol asociado ...\r
-label.load_features_annotations = Cargar características/anotaciones ...\r
-label.export_features = Exportar características...\r
-label.export_annotations = Exportar anotaciones ...\r
-label.jalview_copy = Copiar (sólo Jalview)\r
-label.jalview_cut = Cortar (sólo Jalview)\r
-label.to_upper_case = Pasar a mayúsculas\r
-label.to_lower_case = Pasar a minúsculas\r
-label.toggle_case = Alternar mayúsculas y minúsculas\r
-label.edit_name_description = Editar nombre/descripción\r
-label.create_sequence_feature = Crear función de secuencia\r
-label.edit_sequence = Editar secuencia\r
-label.edit_sequences = Editar secuencias\r
-label.sequence_details = Detalles de la secuencia\r
-label.jmol_help = Ayuda de Jmol \r
-label.all = Todo\r
-label.sort_by = Ordenar por\r
-label.sort_by_score = Ordenar por puntuación\r
-label.sort_by_density = Ordenar por densidad\r
-label.sequence_sort_by_density = Ordenar las secuencias por densidad\r
-label.reveal = Revelar\r
-label.hide_columns = Ocultar columnas\r
-label.load_jalview_annotations = Cargar un fichero de anotación de Jalivew o un fichero de características\r
-label.load_tree_file = Cargar un fichero de árbol\r
-label.retrieve_parse_sequence_database_records_alignment_or_selected_sequences = Recuperar y parsear un registro de secuencia de base de datos para el alineamiento o secuencias actualmente seleccionados\r
-label.standard_databases = Bases de datos estándar\r
-label.fetch_embl_uniprot = Recuperar de EMBL/EMBLCDS o Uniprot/PDB y de cualquier fuente DAS seleccionada\r
-label.reset_min_max_colours_to_defaults = Reiniciar los colores min y max colours a los valores por defecto establecidos en las preferencias de usuario\r
-label.align_structures_using_linked_alignment_views = Alinear las estructuras utlizando las {0} vistas de alineamiento enlazadas\r
-label.connect_to_session = Conectar a la sesión {0}\r
-label.threshold_feature_display_by_score = Filtrar la característica mostrada por puntuación.\r
-label.threshold_feature_no_thereshold = Sin umbral\r
-label.threshold_feature_above_thereshold = Por encima del umbral\r
-label.threshold_feature_below_thereshold = Por debajo del umbral\r
-label.adjust_thereshold = Ajustar umbral\r
-label.toggle_absolute_relative_display_threshold = Cambiar entre mostrar el umbral absoluto y el relativo.\r
-label.display_features_same_type_different_label_using_different_colour = Mostrar las características del mismo tipo con una etiqueta diferente y empleando un color distinto (p.e. características del dominio)\r
-label.select_colour_minimum_value = Seleccionar el color para el valor mínimo\r
-label.select_colour_maximum_value = Seleccionar el color para el valor máximo\r
-label.open_new_jmol_view_with_all_structures_associated_current_selection_superimpose_using_alignment = Abrir una nueva vista Jmol con todas las estructuras asociadas con la selección acxtual y superponer las utilizando el alineamiento.\r
-label.open_url_param = Abrir URL {0}\r
-label.open_url_seqs_param = Abrir URL ({0}..) ({1} secuencias)\r
-label.load_pdb_file_associate_with_sequence = Cargar un fichero PDB y asociarlo con la secuencia '{0}'\r
-label.reveal_hidden_columns = Revelar las columnas ocultas con el botón derecho del ratón\r
-label.dark_colour = Oscurecer color\r
-label.light_colour = Aclarar color\r
-label.highlightnode = Pulse el botón izquierdo para seleccionar las hojas.<br>Haga doble clic para invertir las hojas.<br>Pulse el botón derecho para cambiar el color.\r
-label.load_colour_scheme = Cargar esquema cromático\r
-label.toggle_enabled_views = Cuando está habilitado, permite que se seleccionen varias vistas.\r
-label.edit_notes_parameter_set = Haga clic para editar las notas de este conjunto de parámetros.\r
-label.open_local_file = Abrir fichero local\r
-label.enable_automatically_sort_alignment_when_open_new_tree = Habilite esta opción para ordenar automáticamente<br>el alineamiento cuando abra<br> un nuevo árbol.\r
-label.listen_for_selections = Atención a las selecciones\r
-label.selections_mirror_selections_made_same_sequences_other_views = Cuando está habilitado, las selecciones de esta vista serán un reflejo<br>de las selecciones realizadas en las mismas secuencias de otras vistas.\r
-label.toggle_sequence_visibility = Shift+H cambia la visibilidad de la secuencia\r
-label.toggle_columns_visibility = Ctrl+H cambia la visibilidad de la columna\r
-label.toggles_visibility_hidden_selected_regions = H cambiar la visibilidad de las regiones ocultas o seleccionadas\r
-label.rename_tab_eXpand_reGroup= Haga clic en el botón derecho para renombrar la pestaña<br>Presione X para expandir las tablas y G para reagrupar.\r
-label.right_align_sequence_id = Alinear a la derecha el ID de la secuencia\r
-label.sequence_id_tooltip = Ayuda del ID de la secuencia\r
-label.no_services = <Sin Servicios>\r
-label.select_copy_raw_html = Seleccione esta opción si desea copiar el html en bruto\r
-label.share_data_vamsas_applications = Compartir datos con otras aplicaciones vamsas\r
-label.connect_to = Conectar a\r
-label.join_existing_vamsas_session = Unirse a una sesión vamsas existente\r
-label.from_url = desde una URL\r
-label.any_trees_calculated_or_loaded_alignment_automatically_sort = Cuando está habilitado, cualquier árbol calculado o cargado en el alineamiento lo ordenará\r
-label.sort_with_new_tree = Ordenar con el nuevo árbol\r
-label.from_textbox = desde un área de texto\r
-label.window = Ventana\r
-label.preferences = Preferencias\r
-label.tools = Herramientas\r
-label.fetch_sequences = Recuperar secuencia(s)\r
-label.stop_vamsas_session = Parar sesión vamsas\r
-label.collect_garbage = Recolector de basura\r
-label.show_memory_usage = Mostrar uso de memoria\r
-label.show_java_console = Mostrar consola de Java\r
-label.show_jalview_news = Mostrar las noticias de Jalview\r
-label.take_snapshot = Tomar captura\r
-label.monospaced_fonts_faster_to_render = Las fuentes monoespaciadas son más rápidas de pintar\r
-label.anti_alias_fonts = Fuentes anti-alias (más lentas de pintar)\r
-label.monospaced_font= Monoespaciadas\r
-label.quality = Calidad\r
-label.maximize_window = Maximizar ventana\r
-label.conservation = Conservación\r
-label.consensus = Consenso\r
-label.histogram = Histograma\r
-label.logo = Logo\r
-label.non_positional_features = Características no posicionales\r
-label.database_references = Referencias a base de datos\r
-label.share_selection_across_views = Compartir la selección en todas las vistas\r
-label.scroll_highlighted_regions = Desplazarse hasta las regiones resaltadas\r
-label.gap_symbol = Símbolo del hueco\r
-label.alignment_colour = Color del alineamiento\r
-label.address = Dirección\r
-label.port = Puerto\r
-label.default_browser_unix = Navegador por defecto (Unix)\r
-label.send_usage_statistics = Enviar estadísticas de uso\r
-label.check_for_questionnaires = Comprobar los cuestionarios\r
-label.check_for_latest_version = Comprobar la última versión\r
-label.url_linkfrom_sequence_id = URL del enlace del ID de la secuencia\r
-label.use_proxy_server = Utilizar un servidor proxy\r
-label.eps_rendering_style = Estilo de visualización EPS\r
-label.append_start_end = Añadir /inicio-fin (/15-380)\r
-label.full_sequence_id = ID de la secuencia completo\r
-label.smooth_font = Fuente alargada\r
-label.autocalculate_consensus = Autocalcular consenso\r
-label.pad_gaps = Rellenar huecos\r
-label.pad_gaps_when_editing = Rellenar huecos al editar\r
-label.automatically_set_id_width = Establecer automáticamente al anchura del ID\r
-label.figure_id_column_width = Anchura de la columna del ID de la Figura\r
-label.use_modeller_output = Utilizar la salidad del Modeller\r
-label.wrap_alignment = Envolver alineamiento\r
-label.right_align_ids = Alinear IDs a la derecha\r
-label.sequence_name_italics = Nombre de la secuencia en cursiva\r
-label.open_overview = Abrir resumen\r
-label.default_colour_scheme_for_alignment = Esquema cromático por defecto para el alineamiento\r
-label.annotation_shading_default = Sombreado por defecto de la anotación\r
-label.default_minimum_colour_annotation_shading = Por mínimo por defecto para el sombreado de la anotación\r
-label.default_maximum_colour_annotation_shading = Por máximo por defecto para el sombreado de la anotación\r
-label.visual = Visual\r
-label.connections = Conexiones\r
-label.output = Salida\r
-label.editing = Edición\r
-label.das_settings = Configuración DAS\r
-label.web_services = Servicios web\r
-label.right_click_to_edit_currently_selected_parameter = Haga clic en el botón derecho para editar el parámetro seleccionado actualmente.\r
-label.let_jmol_manage_structure_colours = Permitir que Jmol gestione la estructuras cromáticas\r
-label.marks_leaves_tree_not_associated_with_sequence = Marcar las hojas del árbol que no están asociadas a una secuencia\r
-label.index_web_services_menu_by_host_site = Indizar los servicios web en el menú por el host que los aloja\r
-label.option_want_informed_web_service_URL_cannot_be_accessed_jalview_when_starts_up = Marque esta opción si desea ser informado<br>cuando no se pueda acceder a la URL de un servicio web<br>al arrancar Jalview.\r
-label.new_service_url = Nueva URL del servicio\r
-label.edit_service_url = Editar la URL del servicio\r
-label.delete_service_url = Borrar la URL del servicio\r
-label.details = Detalles\r
-label.options = Opciones\r
-label.parameters = Paramétros\r
-label.available_das_sources = Fuentes DAS disponibles\r
-label.full_details = Detalles completos\r
-label.authority = Autoridad\r
-label.type = Tipo\r
-label.proxy_server = Servidor proxy\r
-label.file_output = Fichero de salida\r
-label.select_input_type = Seleccionar el tipo de entrada\r
-label.set_options_for_type = Establecer opciones para el tipo\r
-label.data_input_parameters = Datos de los parámetros de entrada\r
-label.data_returned_by_service = Datos devueltos por el servicio\r
-label.rsbs_encoded_service = Servicio RSBS codificado\r
-label.parsing_errors = Errores de parseo\r
-label.simple_bioinformatics_rest_services = Simple Bioinformatics Rest Services\r
-label.web_service_discovery_urls = URL de descubrimiento de servicios web\r
-label.input_parameter_name = Nombre del parámetro de entrada\r
-label.short_descriptive_name_for_service = Nombre corto descriptivo del servicio\r
-label.function_service_performs = Tipo de función que realiza el servicio (p.e. alineamiento, análisis, búsqueda, etc).\r
-label.brief_description_service = Descripción breve del servicio\r
-label.url_post_data_service = URL a la que enviar los datos del servicio. Incluya cualquier parámetro especial que se necesite aquí\r
-label.optional_suffix = Sufijo opcional añadido a la URL al recuperar los resultados del servicio\r
-label.preferred_gap_character = ¿Qué caracter para el hueco prefiere el servicio?\r
-label.gap_character = Carácter para hueco\r
-label.move_return_type_up_order= Mover el tipo de returno hacia arriba en el orden\r
-label.move_return_type_down_order= Mover el tipo de returno hacia abajo en el orden\r
-label.update_user_parameter_set = Actualizar el conjunto de parámetros de usuario existente\r
-label.delete_user_parameter_set = Borrar el conjunto de parámetros de usuario existente\r
-label.create_user_parameter_set = Crear un nuevo conjunto de parámetro con la configuración actual.\r
-label.revert_changes_user_parameter_set = Deshacer todos los cambios en el conjunto de parámetros actual\r
-label.start_job_current_settings = Arrancar trabajo con la configuración actual\r
-label.cancel_job_close_dialog = Cerrar este diálogo y cancelar el trabajo\r
-label.input_output = Entrada/Salida\r
-label.cut_paste = Cortar y pegar\r
-label.adjusting_parameters_for_calculation = Ajustar los parámetros para el cálculo existente\r
-label.2d_rna_structure_line = 2D RNA {0}\r
-label.2d_rna_sequence_name = 2D RNA - {0}\r
-label.edit_name_and_description_current_group = Editar el nombre y la descripción del grupo actual.\r
-label.view_structure_for = Visualizar la estructura para {0}\r
-label.view_all_structures = Visualizar todas las {0} estructuras.\r
-label.view_all_representative_structures = Visualizar todas las {0} estructuras representativas.\r
-label.open_new_jmol_view_with_all_representative_structures_associated_current_selection_superimpose_using_alignment = Abrir una nueva vista de Jmol con todas las estructuras representativas\nasociadas con la selecci\u00F3n actual\nsuperpuesta con el alineamiento actual.\r
-label.associate_structure_with_sequence = Asociar estructura con la secuencia\r
-label.from_file = desde fichero\r
-label.enter_pdb_id = Introducir PDB Id\r
-label.discover_pdb_ids = Buscar PDB ids\r
-label.text_colour = Color del texto\r
-label.structure = Estructura\r
-label.view_structure = Visualizar estructura\r
-label.clustalx_colours = Colores de Clustalx\r
-label.above_identity_percentage = Sobre % identidad\r
-label.create_sequence_details_report_annotation_for = Anotación para {0}\r
-label.sequece_details_for = Detalles de la secuencia para {0}\r
-label.sequence_name = Nombre de la secuencia\r
-label.sequence_description = Descripción de la secuencia\r
-label.edit_sequence_name_description = Editar el nombre/descripción de la secuencia\r
-label.spaces_converted_to_backslashes = Los espacios se han convertido en _\r
-label.no_spaces_allowed_sequence_name = No se permiten espacios en el nombre de la secuencia\r
-label.select_outline_colour = Seleccionar el color del límite\r
-label.web_browser_not_found_unix = Unixers\: No es posible encontrar el navegador web por defecto.\nA\u00F1ada la ruta completa de su navegador en la pesta\u00F1a de Preferencias.\r
-label.web_browser_not_found = No se encuentra el navegador web\r
-label.select_pdb_file_for = Seleccione un fichero PDB para {0}\r
-label.html = HTML\r
-label.wrap = Envolver\r
-label.show_database_refs = Mostrar las referencias en base de datos\r
-label.show_non_positional_features = Mostrar las características no posicionales\r
-label.save_png_image = Guardar como imagen PNG\r
-label.load_tree_for_sequence_set = Cargar un árbol para este conjunto de secuencias\r
-label.export_image = Exportar imagen\r
-label.vamsas_store = Almacén VAMSAS\r
-label.translate_cDNA = Traducir cDNA\r
-label.extract_scores = Extraer puntuaciones\r
-label.get_cross_refs = Obtener referencias cruzadas\r
-label.sort_alignment_new_tree = Alinear el alineamiento con el nuevo árbol\r
-label.add_sequences = Añadir secuencias\r
-label.new_window = Nueva ventana\r
-label.refresh_available_sources = Refrescar las fuentes disponibles\r
-label.use_registry = Utilizar el registro\r
-label.add_local_source = Añadir fuente local\r
-label.set_as_default = Establecer por defecto\r
-label.show_labels = Mostrar etiquetas\r
-label.background_colour = Color de fondo\r
-label.associate_nodes_with = Asociar nodos con\r
-label.jalview_pca_calculation = Cálculo del PCA por Jalview\r
-label.link_name = Nombre del enalce\r
-label.pdb_file = Fichero PDB\r
-label.colour_with_jmol = Colorear con Jmol\r
-label.align_structures = Alinear estructuras\r
-label.jmol = Jmol\r
-label.sort_alignment_by_tree = Ordenar alineamiento por árbol\r
-label.mark_unlinked_leaves = Marcar las hojas como no enlazadas\r
-label.associate_leaves_with = Asociar hojas con\r
-label.save_colour_scheme_with_unique_name_added_to_colour_menu = Guarde el esquema cromáticos con un nombre único y se añadirá al menú de colores\r
-label.case_sensitive = Sensible a mayúsculas\r
-label.lower_case_colour = Color para las minúsculas\r
-label.index_by_host = Indizar por host\r
-label.index_by_type = Indizar por tipo\r
-label.enable_jabaws_services = Habilitar servicios JABAWS\r
-label.display_warnings = Mostrar advertencias\r
-label.move_url_up = Mover la URL hacia arriba\r
-label.move_url_down = Mover la URL hacia abajo\r
-label.add_sbrs_definition = Añadir una definición SBRS \r
-label.edit_sbrs_definition = Editar una definición SBRS \r
-label.delete_sbrs_definition = Borrar una definición SBRS \r
-label.your_sequences_have_been_verified = Sus secuencias has sido verificadas en una base de datos de secuencias conocidas. Algunos de sus ID se han alterado y\n, probablemente, el residuo de inicio/fin se haya actualizado.\nGuarde su alineamiento para mantener el ID actualizado.\n\n \r
-label.sequence_names_updated = Nombres de secuencia actualizados\r
-label.dbref_search_completed = Búsqueda de DBRef terminada\r
-label.show_all_chains = Mostrar todas las cadenas\r
-label.fetch_all_param = Recuperar todas {0}\r
-label.paste_new_window = Pegar en una nueva ventana\r
-label.settings_for_param = Configuración para {0}\r
-label.view_params = Visualizar {0}\r
-label.select_all_views = Seleccionar todas las vistas\r
-label.align_sequences_to_existing_alignment = Alinear las secuencias con el alineamiento existente\r
-label.realign_with_params = Realinear con {0}\r
-label.calcname_with_default_settings = {0} por defecto\r
-label.action_with_default_settings = {0} con la configuración por defecto\r
-label.edit_settings_and_run = Editar la configuración y ejecutar...\r
-label.view_and_change_parameters_before_alignment = Ver y cambiar los parámetros antes del alineamiento\r
-label.run_with_preset_params = Ejecutar {0} con preconfiguración\r
-label.view_and_change_parameters_before_running_calculation = Ver y cambiar los parámetros antes de lanzar el cálculo\r
-label.view_documentation = Ver documentación\r
-label.select_return_type = Seleccionar el tipo de retorno\r
-label.translation_of_params = Traducción de {0}\r
-label.features_for_params = Características de - {0}\r
-label.annotations_for_params = Anotaciones de - {0}\r
-label.generating_features_for_params = Generando características de - {0}\r
-label.generating_annotations_for_params = Generando anotaciones de - {0}\r
-label.varna_params = VARNA - {0}\r
-label.sequence_feature_settings = Configuración de las características de la secuencia\r
-label.pairwise_aligned_sequences = Secuencias alineadas a pares\r
-label.original_data_for_params = Datos originales de {0}\r
-label.points_for_params = Puntos de {0}\r
-label.transformed_points_for_params = Puntos transformados de {0}\r
-label.graduated_color_for_params = Color graduado para la característica de {0}\r
-label.select_backgroud_colour = Seleccionar color de fondo\r
-label.invalid_font = Fuente no válida\r
-label.separate_multiple_accession_ids = Separar los accession id con un punto y coma ";"\r
-label.replace_commas_semicolons = Cambiar comas por puntos y comas\r
-label.parsing_failed_syntax_errors_shown_below_param = Parseo erróneo. A continuación, se muestras los errores de sintaxis {0}\r
-label.parsing_failed_unrecoverable_exception_thrown_param = \nParseo err\u00F3neo. Se ha lanzado una excepci\u00F3n fatal\:\n {0}\r
-label.example_query_param = Consulta de ejemplo: {0}\r
-label.enter_value_increase_conservation_visibility = Introduzca un valor para incrementar la visibilidad de la conservación\r
-label.enter_percentage_identity_above_which_colour_residues = Introduza un % de identidad por encima del cual se colorearán los residuos\r
-label.wswublast_client_credits = Para mostrar las caracter\u00EDsticas de una secuencia, debe indicarse un id de Uniprot cuya secuencia se corresponda al 100 % con la introducida.\nPara mostrar estas caracter\u00EDsticas, prueba a cambar los nombre de sus secuencia con los ID que se sugieren a continuaci\u00F3n.\n\nRunning WSWUBlast at EBI.\nPlease quote Pillai S., Silventoinen V., Kallio K., Senger M., Sobhany S., Tate J., Velankar S., Golovin A., Henrick K., Rice P., Stoehr P., Lopez R.\nSOAP-based services provided by the European Bioinformatics Institute.\nNucleic Acids Res. 33(1)\:W25-W28 (2005));\r
-label.blasting_for_unidentified_sequence = Ejecutar BLAST para la secuencias sin identificar\r
-label.select_columns_containing = Seleccione las columnas que contengan\r
-label.select_columns_not_containing = Seleccione las columnas que no contengan\r
-option.trim_retrieved_seqs = Ajustar las secuencias recuperadas\r
-label.trim_retrieved_sequences = Cuando la secuencia de referencia es más larga que la secuencia con la que está trabajando, sólo se mantienen las subsecuencias relevantes.\r
-label.use_sequence_id_1 = Utilice $SEQUENCE_ID$ o $SEQUENCE_ID=/<regex>/=$\r
-label.use_sequence_id_2 = \nto para embeber el id de la secuencia en una URL\r
-label.ws_parameters_for = Parámetros para {0}\r
-label.switch_server = Cambiar servidor\r
-label.open_jabaws_web_page = Abre el página principal del servidor JABAWS en un navegador web\r
-label.choose_jabaws_server = Escoja un servidor para ejecutar este servicio\r
-label.services_at = Servicios en {0}\r
-label.rest_client_submit = {0} utilizando {1}\r
-label.fetch_retrieve_from =Recuperar de {0}\r
-label.fetch_retrieve_from_all_sources = Recuperar de todas las fuentes {0} en {1}<br>La primera es :{2} \r
-label.feature_settings_click_drag = Haga clic o arrastre los tipos de las características hacia arriba o hacia abajo para cambiar el orden de visualización.<br/>Haga doble clic para seleccionar las columnas que contienen las características del alineamiento/selección actual.<br/>Presionando Alt seleccionará las columnas exteriores a las características en lugar de las interiores<br/>Presione Shift para modificar la selección actual (en lugar de borrarla)<br/>Presione CTRL o Command/Meta para cambiar las columans externas o internas a las características<br/>\r
-label.opt_and_params_further_details = ver los detalles adicionales haciendo clic en el botón derecho\r
-label.opt_and_params_show_brief_desc_image_link = Haga clic para ver una descripción breve<br><img src="{0}"/>Haga clic en el botón derecho para obtener información adicional. \r
-label.opt_and_params_show_brief_desc = Haga clic para ver una descripción breve<br>\r
-label.adjusts_width_generated_eps_png = Ajusta la anchura del fichero EPS o PNG generado para asegurar incluso que el ID de la secuencia más larga o las etiquetas de anotación se muestran\r
-label.manually_specify_width_left_column = Especificar manualmente la anchura de la columna izquierda en las etiquetas de los ID de la secuencia y las anotaciones se mostrar en las figuras del alineamiento exportado.Esta configuraicón se ignorará si está marcada la opción 'Establecer automáticamente al anchura del ID'\r
-label.job_created_when_checked = Cuando está habilitado, se crea un trabajo para cada secuencia de la selección actual\r
-label.when_checked_job_visible_region_and_results = Cuando está habilitado, se crea un único trabajo para la región visible y los resultados de mapean en su ubicación dentro del alineamiento. En caso contrario, se creará un trabajo para cada región visible y contigua en el alineamiento o selección actual (p.e. un alineamiento múlitple).\r
-label.flat_file_representation = La representación del fichero plano de este servicio utilizando el formalismo Really Simple Bioinformatics Service\r
-label.result_of_parsing_rsbs = Resultados de parsear la representación RSBS\r
-label.user_preset = Preselección de usuario\r
-label.service_preset = Preselección del servicio\r
-label.run_with_preset = Ejecutar {0} con preselección\r
-label.view_service_doc_url = Visualizar <a href="{0}">{1}</a>\r
-label.submit_sequence = Enviar {0} {1} {2} {3} a<br/>{4}\r
-action.by_title_param = por {0}\r
-label.alignment = Alineamiento\r
-label.secondary_structure_prediction = Predicción de la estructura secundaria\r
-label.sequence_database_search = Búsqueda en base de datos de secuencias\r
-label.analysis = Análisis\r
-label.protein_disorder = Desorden en la proteína \r
-label.source_from_db_source = Fuentes de {0}\r
-label.from_msname = de '{0}'\r
-label.superpose_with = Superponer con...\r
-action.do = Hacer\r
-label.scale_label_to_column = Ajustar la etiqueta a la columna\r
-label.add_new_row = Añadir nuevo fila\r
-label.edit_label_description = Editar etiqueta/descripción\r
-label.hide_row = Ocultar esta fila\r
-label.delete_row = Borrar esta fila\r
-label.show_all_hidden_rows = Mostrar todas las filas ocultas\r
-label.export_annotation = Exportar anotación\r
-label.copy_consensus_sequence = Copiar secuencia de consenso\r
-label.helix = Hélice\r
-label.sheet = Hoja\r
-label.rna_helix = Hélice de ARN\r
-label.remove_annotation = Borrar anotación\r
-label.colour_by = Colorear por...\r
-label.muscle_multiple_protein_sequence_alignment = Alineamiento múltiple de secuencias de proteínas con Muscle\r
-label.mafft_multiple_sequence_alignment = Alineamiento múltiple de secuencias con MAFFT\r
-label.clustalw_multiple_sequence_alignment = Alineamiento múltiple de secuencias con ClustalW\r
-label.jnet_secondary_structure_prediction = Predicción de la estructura secundaria con JNet\r
-label.multiharmony = Multi-Harmony\r
-label.unable_start_web_service_analysis = No es posible iniciar el servicio web de análisis\r
-label.job_couldnt_be_started_check_input = El trabajo no puede arrancarse. Por favor, compruebe los parámetros de entrada y los mensajes de advertencia de la consola de Jalview.\r
-label.prompt_each_time = Preguntar siempre\r
-label.use_source = Fuente\r
-label.couldnt_save_project = No es posible guardar el proyecto\r
-label.error_whilst_saving_current_state_to = Error mientras se guardaba el estado a {0}\r
-label.error_whilst_loading_project_from = Error cargado el proyecto desde {0}\r
-label.couldnt_load_project = No es posible cargar el proyecto\r
+action.refresh_services = Refrescar servicios
+action.reset_services = Reiniciar servicios
+action.merge_results = Unificar resultados
+action.load_scheme = Cargar esquema
+action.save_scheme = Guardar esquema
+action.save_image = Guardar imagen
+action.paste = Pegar
+action.show_html_source = Mostrar código HTML
+action.print = Imprimir
+action.web_service = Servicio web
+action.cancel_job = Cancelar trabajo
+action.start_job = Arrancar trabajo
+action.revert = Deshacer
+action.move_down = Mover hacia abajo
+action.move_up = Mover hacia arriba
+action.remove_return_datatype = Borrar tipo de datos de retorno
+action.add_return_datatype = Añadir tipo de datos de retorno
+action.remove_input_parameter = Borrar el parámetro de entrada seleccionado
+action.add_input_parameter = Añadir parámetro de entrada seleccionado
+action.edit = Editar
+action.new = Nuevo
+action.open_file = Abrir fichero
+action.show_unconserved = Mostrar regiones no conservadas
+action.open_new_aligmnent = Abrir nuevo alineamiento
+action.raise_associated_windows = Destacar ventanas asociadas
+action.minimize_associated_windows = Minimizar ventanas asociadas
+action.close_all = Cerrar todo
+action.load_project = Cargar proyecto
+action.save_project = Guardar proyecto
+action.quit = Salir
+action.expand_views = Expandir vistas
+action.gather_views = Capturar vistas
+action.page_setup = Configuración de la página
+action.reload = Recargar
+action.load = Cargar
+action.open = Abrir
+action.cancel = Cancelar
+action.create = Crear
+action.update = Actualizar
+action.delete = Borrar
+action.snapshot = Imagen
+action.clear = Limpiar
+action.accept = Aceptar
+action.select_ddbb = --- Seleccionar base de datos ---
+action.undo = Deshacer
+action.redo = Rehacer
+action.reset = Reiniciar
+action.remove_left = Eliminar parte izquierda
+action.remove_right = Eliminar parte derecha
+action.remove_empty_columns = Eliminar las columnas vacías
+action.remove_all_gaps = Eliminar todos los huecos
+action.left_justify_alignment = Ajustar el alineamiento a la izquierda
+action.right_justify_alignment = Ajustar el alineamiento a la derecha
+action.boxes = Casillas
+action.text = Texto
+action.by_pairwise_id = Identificar por parejas
+action.by_id = Por identificador
+action.by_length = Por longitud
+action.by_group = Por grupo
+action.remove = Eliminar
+action.remove_redundancy = Eliminar redundancia...
+action.pairwise_alignment = Alineamiento de pares...
+action.by_rna_helixes = Por hélices de RNA
+action.user_defined = Definido por el usuario...
+action.by_conservation = Por conservación
+action.wrap = Envolver
+action.show_gaps = Mostrar huecos
+action.show_hidden_markers = Mostrar marcadores ocultos
+action.find = Buscar
+action.undefine_groups = Grupos sin definir
+action.create_groups = Crear grupos
+action.make_groups_selection = Hacer grupos para seleccionar
+action.copy = Copiar
+action.cut = Cortar
+action.font = Fuente...
+action.scale_above = Escala superior
+action.scale_left = Escala izquierda
+action.scale_right = Escala derecha
+action.by_tree_order = Por orden del árbol
+action.sort = Ordenar
+action.calculate_tree = Calcular árbol
+action.help = Ayuda
+action.by_annotation = Por anotación...
+action.invert_sequence_selection = Invertir selección de secuencias
+action.invert_column_selection = Invertir selección de columnas
+action.show = Mostrar
+action.hide = Ocultar
+action.ok = OK
+action.set_defaults = Defecto
+action.create_group = Crear grupo
+action.remove_group = Eliminar grupo
+action.edit_group = Editar grupo
+action.border_colour = Color del borde
+action.edit_new_group = Editar nuevo grupo
+action.hide_sequences = Ocultar secuencias
+action.sequences = Secuencias
+action.ids = IDS
+action.ids_sequences = IDS y secuencias
+action.reveal_all = Revelar todo
+action.reveal_sequences = Revelar secuencias
+action.find_all = Buscar todo
+action.find_next = Buscar siguiente
+action.file = Archivo
+action.view = Ver
+action.change_params = Cambiar parámetros
+action.apply = Aplicar
+action.apply_threshold_all_groups = Aplicar umbral a todos los grupos
+action.apply_all_groups = Aplicar a todos los grupos
+action.by_chain = Por cadena
+action.by_sequence = Por secuencia
+action.paste_annotations = Pegar anotaciones
+action.format = Formato
+action.select = Seleccionar
+action.new_view = Nueva vista
+action.close = Cerrar
+action.add = Añadir
+action.save_as_default = Guardar como por defecto
+action.save_as = Guardar como
+action.save = Guardar
+action.cancel_fetch = Cancelar búsqueda
+action.save_omit_hidden_columns = Guardar / Omitir las columnas ocultas
+action.change_font = Cambiar Fuente
+action.change_font_tree_panel = Cambiar fuente (panel del árbol)
+action.colour = Color
+action.calculate = Calcular
+action.select_all = Seleccionar Todo
+action.deselect_all = Deseleccionar Todo
+action.invert_selection = Invertir selección
+action.using_jmol = Usar Jmol
+action.link = Enlazar
+action.group_link = Enlazar grupo
+action.show_chain = Mostrar cadena
+action.show_group = Mostrar grupo
+action.fetch_db_references = Recuperar referencias a base de datos
+action.view_flanking_regions = Mostrar flancos
+label.view_flanking_regions = Mostrar los datos de la secuencia a ambos lados de las subsecuencias implicadas en este alineamiento
+label.str = Str:
+label.seq = Seq:
+label.structures_manager = Administrar estructuras
+label.nickname = Sobrenombre:
+label.url = URL:
+label.input_file_url = Introducir URL en el fichero de entrada
+label.select_feature = Seleccionar función:
+label.name = Nombre:
+label.name_param = Nombre: {0}
+label.group = Grupo:
+label.group_name = Nombre del grupo
+label.group_description = Descripción del grupo
+label.edit_group_name_description = Editar nombre/descripción del grupo
+label.colour = Color:
+label.description = Descripción:
+label.start = Comenzar:
+label.end = Terminar:
+label.current_parameter_set_name = Nombre actual del conjunto de parámetros:
+label.service_action = Acción de servicio:
+label.post_url = POST URL:
+label.url_suffix = URL Sufijo
+label.sequence_source = Fuente de la secuencia
+label.per_seq = por secuencia
+label.result_vertically_separable = Los resultados son separables verticalmente
+label.amend = Modificar
+label.undo_command = Deshacer {0}
+label.redo_command = Rehacer {0}
+label.principal_component_analysis = Análisis del Componente Principal
+label.average_distance_identity = Distancia Media Usando % de Identidad
+label.neighbour_joining_identity = Unir vecinos utilizando % de Identidad
+label.treecalc_title = {0} utilizando {1}
+label.tree_calc_av = Distancia media
+label.tree_calc_nj = Unir vecinos
+label.select_score_model = Selecciones modelo de puntuación
+label.score_model_pid = % Identidad
+label.score_model_blosum62 = BLOSUM62
+label.score_model_pam250 = PAM 250
+label.score_model_conservation = Conservación de las propiedades físico-químicas
+label.score_model_enhconservation = Conservación de las propiedades físico-químicas
+label.status_bar = Barra de estado
+label.out_to_textbox = Generar cuadro de texto
+label.clustalx = Clustalx
+label.clustal = Clustal
+label.zappo = Zappo
+label.taylor = Taylor
+label.blc = BLC
+label.fasta = Fasta
+label.msf = MSF
+label.pfam = PFAM
+label.pileup = Pileup
+label.pir = PIR
+label.hydrophobicity = Hidrofobicidad
+label.helix_propensity = Tendencia de la hélice
+label.strand_propensity = Tendencia de la hebra
+label.turn_propensity = Tendencia de giro
+label.buried_index = Índice de encubrimiento
+label.purine_pyrimidine = Purina/Pirimidina
+label.percentage_identity = Porcentaje de identidad
+label.blosum62 = BLOSUM62
+label.blosum62_score = Puntuación del BLOSUM62
+label.tcoffee_scores = Puntuación del T-Coffee
+label.average_distance_bloslum62 = Distancia Media Usando BLOSUM62
+label.neighbour_blosum62 = Neighbour Joining usando BLOSUM62
+label.show_annotations = Mostrar anotaciones
+label.colour_text = Color del texto
+label.show_non_conversed = Mostrar no conservadas
+label.overview_window = Ventana resumen
+label.none = Ninguno
+label.above_identity_threshold = Por encima del umbral de identidad
+label.show_sequence_features = Mostrar las características de las secuencias
+label.nucleotide = Nucleótido
+label.to_new_alignment = A nuevo alineamiento
+label.to_this_alignment = Añadir a este alineamiento
+label.apply_colour_to_all_groups = Aplicar color a todos los grupos
+label.modify_identity_thereshold = Modificar el umbral de identidad...
+label.modify_conservation_thereshold = Modificar el umbral de conservación...
+label.input_from_textbox = Introducir desde el cuadro de texto
+label.centre_column_labels = Centrar las etiquetas de las columnas
+label.automatic_scrolling = Desplazamiento automático
+label.documentation = Documentación
+label.about = Acerca de...
+label.show_sequence_limits = Mostrar los límites de la secuencia
+label.feature_settings = Ajustar funciones...
+label.sequence_features = Funciones de la secuencia
+label.all_columns = Todas las columnas
+label.all_sequences = Todas las secuencias
+label.selected_columns = Columnas seleccionadas
+label.selected_sequences = Secuencias seleccionadas
+label.all_but_selected_region = Todo menos la región seleccionada (Shift+Ctrl+H)
+label.selected_region = Región seleccionada
+label.all_sequences_columns = Todas las secuencias y columnas
+label.group_consensus = Consenso de grupo
+label.group_conservation = Conservación de grupo
+label.show_consensus_histogram = Mostrar el histograma de consenso
+label.show_consensus_logo = Mostrar el logo de consenso
+label.norm_consensus_logo = Normalizar el logo de consenso
+label.apply_all_groups = Aplicar a todos los grupos
+label.autocalculated_annotation = Anotación autocalculada
+label.min_colour = Color mínimo
+label.max_colour = Color máximo
+label.use_original_colours = Usar colores originales
+label.threshold_minmax = El umbral es mín/máx
+label.represent_group_with = Representar al grupo con
+label.selection = Seleccionar
+label.group_colour = Color del grupo
+label.sequence = Secuencia
+label.view_pdb_structure = Ver estructura PDB
+label.min = Mín:
+label.max = Máx:
+label.colour_by_label = Color por etiquetas
+label.new_feature = Nueva función
+label.match_case = Hacer corresponder mayúsculas y minúsculas
+label.view_alignment_editor = Ver en el editor de alineamientos
+label.labels = Etiquetas
+label.output_values = Valores de salida...
+label.output_points = Puntos de salida...
+label.output_transformed_points = Puntos de salida transformados
+label.input_data = Datos de entrada...
+label.nucleotide_matrix = Matriz nucleotídica
+label.protein_matrix = Matriz proteica
+label.show_bootstrap_values = Mostrar valores de Bootstrap
+label.show_distances = Mostrar distancias
+label.mark_unassociated_leaves = Marcar hojas no asociadas
+label.fit_to_window = Ajustar a la ventana
+label.newick_format = Formato Newick
+label.select_newick_like_tree_file = Seleccione un fichero de árbol tipo Newick
+label.colours = Colores
+label.view_mapping = Ver mapeado
+label.wireframe = Estructura metálica
+label.depthcue = Clave de profundidad
+label.z_buffering = Tamponamiento Z
+label.charge_cysteine = Carga & Cisteína
+label.all_chains_visible = Todas las cadenas visibles
+label.successfully_added_features_alignment = Funciones añadidas exitosamente al alineamiento
+label.keyboard_editing_mode = El modo de editar teclado es {0}
+label.paste_features_annotations_Tcoffee_here = Pegar tus funciones / anotaciones / puntuación del fichero T-coffee aquí.
+label.removed_columns = {0} columnas eliminadas.
+label.removed_empty_columns = {0} columnas vacías eliminadas.
+label.paste_newick_tree_file = Pegar su fichero árbol Newick aquí.
+label.order_by_params = Ordenar por {0}
+label.html_content = <html>{0}</html>
+label.paste_pdb_file= Pegar tu fichero PDB aquí.
+label.paste_pdb_file_for_sequence = Pegar fichero PDB para la secuencia {0}
+label.could_not_parse_newick_file = No se pudo analizar el fichero Newick\\\!\\n {0}
+label.successfully_pasted_tcoffee_scores_to_alignment= Pegada exitosamente la puntuación T-Coffee al alineamiento.
+label.failed_add_tcoffee_scores = Fallo al añadir las puntuaciones T-Coffee:
+label.successfully_pasted_annotation_to_alignment = Anotación pegada exitosamente al alineamiento.
+label.couldnt_parse_pasted_text_as_valid_annotation_feature_GFF_tcoffee_file = No es posible parsear el texto pegado como una anotación características, GFF, o fichero T-Coffee válidos
+label.successfully_pasted_alignment_file = Fichero de alineamiento pegado exitosamente
+label.paste_your_alignment_file = Pegar su fichero de alineamiento aquí
+label.paste_your = Pegar su
+label.finished_searching = Búsqueda finalizada
+label.search_results= Buscar Resultados {0} : {1}
+label.found_match_for = Buscar coincidencia para {0}
+label.font = Fuente:
+label.size = Talla:
+label.style = Estilo:
+label.enter_redundancy_threshold = Introducir el umbral de redundancia
+label.calculating = Calculando....
+label.modify_conservation_visibility = Modificar la visibilidad de conservación
+label.colour_residues_above_occurence = Residuos de color por encima del % de aparición
+label.set_this_label_text = fijar como etiqueta
+label.sequences_from = Secuencias de {0}
+label.successfully_loaded_file = Fichero cargado exitosamente {0}
+label.successfully_saved_to_file_in_format = Guardado exitosamente en el fichero: {0} en formato {1}.
+label.copied_sequences_to_clipboard = Copiadas {0} secuencias en el portapapeles.
+label.check_file_matches_sequence_ids_alignment = Comprobar que el fichero coincide con el ID de la secuencia en el alineamiento.
+label.problem_reading_tcoffee_score_file = Problema de lectura del fichero de puntuaciones T-COFFEE
+label.source_to_target = {0} a '{1}'
+label.per_sequence_only= Sólo por secuencia
+label.to_file = a fichero
+label.to_textbox = a cuadro de texto
+label.jalview = Jalview
+label.csv_spreadsheet = CSV (Hoja de cálculo)
+label.status = [Estado]
+label.channels = Canales
+label.channel_title_item_count = {0} ({1})
+label.blog_item_published_on_date = {0} {1}
+label.select_das_service_from_table = Seleccionar servicio DAS de la tabla para leer una descripción completa aquí.
+label.session_update = Actualizar sesión
+label.new_vamsas_session = Nueva sesión Vamsas
+label.load_vamsas_session = Cargar sesión Vamsas
+label.save_vamsas_session = Guardar sesión Vamsas
+label.select_vamsas_session_opened_as_new_vamsas_session= Selecciones una sesión vamsas para abrirla como una nueva sesión.
+label.open_saved_vamsas_session = Abrir una sesión VAMSAS guardada
+label.groovy_console = Consola Groovy
+label.lineart = lineart
+label.dont_ask_me_again = No volver a preguntar
+label.select_eps_character_rendering_style = Seleccionar el carácter EPS como estilo de visualización
+label.invert_selection = Invertir selección
+label.optimise_order = Optimizar orden
+label.seq_sort_by_score = Ordenar las secuencias por puntuación
+label.load_colours = Cargar colores
+label.save_colours = Guardar colores
+label.fetch_das_features = Recuperar funciones DAS
+label.selected_database_to_fetch_from = Seleccionada {0} Base de datos {1} para buscar de {2}
+label.database_param = Base de datos: {0}
+label.example = Ejemplo
+label.example_param = Ejemplo: {0}
+label.select_file_format_before_saving = Debe seleccionar un formato de fichero antes de guardar!
+label.file_format_not_specified = Formato de fichero no especificado
+label.alignment_contains_hidden_columns = El alineamiento contiene columnas ocultas.\\nQuieres guardar s\u00F3lo el alineamiento visible?
+label.couldnt_save_file = No se pudo guardar el fichero: {0}
+label.error_saving_file = Error guardando el fichero
+label.remove_from_default_list = eliminar de la lista de defectuosos?
+label.remove_user_defined_colour = Eliminar el color definido por el usuario
+label.you_must_select_least_two_sequences = Debes seleccionar al menos 2 secuencias.
+label.invalid_selection = Selección inválida
+label.principal_component_analysis_must_take_least_four_input_sequences = El an\u00E1lisis de la componente principal debe tomar\\nal menos 4 secuencias de entrada.
+label.sequence_selection_insufficient = Selección de secuencias insuficiente
+label.you_need_more_two_sequences_selected_build_tree = necesitas seleccionar más de dos secuencias para construir un árbol!
+label.not_enough_sequences = No suficientes secuencias
+label.selected_region_to_tree_may_only_contain_residues_or_gaps = La regi\u00F3n seleccionada para construir un \u00E1rbol puede\\ncontener s\u00F3lo residuos o espacios.\\nPrueba usando la funci\u00F3n Pad en el men\u00FA de edici\u00F3n,\\n o uno de los m\u00FAltiples servicios web de alineamiento de secuencias.
+label.sequences_selection_not_aligned = Las secuencias seleccionadas no están alineadas
+label.sequences_must_be_aligned_before_creating_tree = Las secuencias deben estar alineadas antes de crear el \u00E1rbol.\\nPrueba usando la funci\u00F3n Pad en el men\u00FA de editar,\\n o uno de los m\u00FAltiples servicios web de alineamiento de secuencias.
+label.sequences_not_aligned = Secuencias no alineadas
+label.problem_reading_tree_file = Problema al leer el fichero del árbol
+label.possible_problem_with_tree_file = Posible problema con el fichero del árbol
+label.select_at_least_three_bases_in_at_least_one_sequence_to_cDNA_translation = Por favor seleccionar al menos tres bases de al menos una secuencia para poder realizar la traducción de cDNA.
+label.translation_failed = Translation Failed
+label.error_when_translating_sequences_submit_bug_report = Desafortunadamente, algo fue mal a la hora de traducir tus secuencias.\\nPor favor, revisa la consola Jalview java \\ny presenta un informe de error que incluya el seguimiento.
+label.implementation_error = Error de implementación:
+label.automatically_associate_pdb_files_with_sequences_same_name = Quieres asociar automáticamente los {0} ficheros PDB con las secuencias del alineamiento que tengan el mismo nombre?
+label.automatically_associate_pdb_files_by_name = Asociar los ficheros PDB por nombre automáticamente
+label.ignore_unmatched_dropped_files_info = Quieres <em>ignorar</em> los {0} ficheros cuyos nombres no coincidan con ningún IDs de las secuencias ?
+label.ignore_unmatched_dropped_files = Ignorar los ficheros sin coincidencias?
+label.enter_view_name = Introducir nombre visible (¿?)
+label.enter_label = Introducir etiqueta
+label.enter_label_for_the_structure = Introducir una etiqueta para la estructura?
+label.pdb_entry_is_already_displayed = {0} Ya est\u00E1 mostrado.\\nQuieres volver a usar este visor?
+label.map_sequences_to_visible_window = Mapa de secuencias en ventana visible: {0}
+label.add_pdbentry_to_view = Quieres a\u00F1adir {0} a la vista llamada\\n'{1}'\\n
+label.align_to_existing_structure_view = Alinear a una estructura ya existente
+label.pdb_entries_couldnt_be_retrieved = Las siguientes entradas pdb no pueden ser extra\u00EDdas del PDB\\\:\\n{0}\\nPor favor, prueba descarg\u00E1ndolas manualmente.
+label.couldnt_load_file = No se pudo cargar el fichero
+label.couldnt_find_pdb_id_in_file = No se pudo encontrar un Id PDB en el fichero suministrado. Por favor, introduzca un Id para identificar esta estructura.
+label.no_pdb_id_in_file = No hay un Id PDB en el fichero
+label.couldnt_read_pasted_text = No se pudo leer el texto pegado {0}
+label.error_parsing_text = Error analizando el texto
+label.enter_local_das_source = Intruduzca el Nickname & URL de la fuente DAS local
+label.you_can_only_edit_or_remove_local_das_sources = Sólo puedes editar o eliminar fuentes DAS locales!
+label.public_das_source = Fuente pública DAS - no editable
+label.input_alignment_from_url = Alineamiento de entrada desde URL
+label.input_alignment = Alineamiento de entrada
+label.couldnt_import_as_vamsas_session = No se pudo importar '{0}' como una nueva sesión Vamsas.
+label.vamsas_document_import_failed = Fallo en la importación del documento Vamsas
+label.couldnt_locate = No se pudo localizar {0}
+label.url_not_found = URL no encontrada
+label.no_link_selected = Enlace no seleccionado
+label.new_sequence_url_link = Enlace a una nueva secuencia URL
+label.cannot_edit_annotations_in_wrapped_view = No se pueden editar anotaciones en vista envolvente
+label.wrapped_view_no_edit = Vista envolvente - no editar
+label.error_retrieving_data = Error en la recuperación de datos
+label.user_colour_scheme_must_have_name = El esquema de colores del usuario debe tener un nombre
+label.no_name_colour_scheme = No hay nombre para el esquema de colores
+label.invalid_url = URL Invalido!
+label.error_loading_file = Error al cargar el fichero
+label.problems_opening_file = Encontrados problemas al abrir el fichero {0}!!
+label.file_open_error = Error al abrir el fichero
+label.no_das_sources_selected_warn = No han sido seleccionadas fuentes DAS.\\nPor favor, seleccione algunas fuentes y\\npruebe de nuevo.
+label.no_das_sources_selected_title = No han sido seleccionadas fuentes DAS
+label.colour_scheme_exists_overwrite = El esquema de colores {0} ya existe.\\nContinuar guardando el esquema de colores como {1}?"
+label.duplicate_scheme_name = Duplicar nombre de esquema
+label.jalview_new_questionnaire = Hay un nuevo cuestionario disponible. Querr\u00EDa completarlo ahora ?\\n
+label.jalview_user_survey = Encuesta de usuario Jalview
+label.alignment_properties = Propiedades del alineamiento: {0}
+label.alignment_props = Propiedades del alineamiento
+label.input_cut_paste = Cortar y pegar la entrada
+label.input_cut_paste_params = Cortar y pegar la entrada - {0}
+label.alignment_output_command = Alineamiento de salida - {0}
+label.annotations = Anotaciones
+label.features = Funciones
+label.overview_params = Visión general {0}
+label.paste_newick_file = Pegar nuevo fichero Newick
+label.load_tree_from_file = desde fichero -
+label.colour_by_annotation = Color por anotación
+label.selection_output_command = Seleccionar salida - {0}
+label.annotation_for_displayid = <p><h2>Anotación para {0} </h2></p><p>
+label.pdb_sequence_mapping = PDB - Mapeado de secuencia
+label.pca_details = detalles de la PCA
+label.redundancy_threshold_selection = Selección del umbral de redundancia
+label.user_defined_colours = Colores definidos del usuario
+label.jalviewLite_release = JalviewLite - versión {0}
+label.jaview_build_date = Fecha de creación: {0}
+label.jalview_authors_1 = Authors: Jim Procter, Andrew Waterhouse, Jan Engelhardt, Lauren Lui,
+label.jalview_authors_2 = Michele Clamp, James Cuff, Steve Searle, David Martin & Geoff Barton.
+label.jalview_dev_managers = Desarrollo gestionado por The Barton Group, University of Dundee, Scotland, UK.
+label.jalview_distribution_lists = Para ayuda, ver el FAQ at www.jalview.org y/o adjuntar la lista de envío jalview-discuss@jalview.org
+label.jalview_please_cite = Si usa Jalview incluya la siguiente cita, por favor:
+label.jalview_cite_1_authors = Waterhouse, A.M., Procter, J.B., Martin, D.M.A, Clamp, M. and Barton, G. J. (2009)
+label.jalview_cite_1_title = Jalview Version 2 - un editor de alineamiento múltiple de secuencias y banco de trabajo de análisis
+label.jalview_cite_1_ref = Bioinformaticos doi: 10.1093/bioinformatics/btp033
+label.right_click = clic en el botón derecho
+label.to_add_annotation = para añadir anotación
+label.alignment_has_no_annotations = El alineamiento no tiene anotaciones
+label.retrieving_pdb_data = Recuperación de datos PDB...
+label.label = Etiqueta
+label.no_features_added_to_this_alignment = No hay funciones asociadas a este alineamiento!!
+label.features_can_be_added_from_searches_1 = (Las funciones pueden ser añadidas de búsquedas o
+label.features_can_be_added_from_searches_2 = de ficheros de funciones Jalview / GFF)
+label.calculating_pca= Calculando PCA
+label.reveal_columns = Mostrar Columnas
+label.jalview_cannot_open_file = Jalview no puede abrir el fichero
+label.jalview_applet = Aplicación Jalview
+label.loading_data = Cargando datos
+label.memory_stats = Memoria libre total: {0} MB; Memoria máxima: {1} MB; {2} %
+label.calculating_tree = Calculando árbol
+label.state_queueing = En cola
+label.state_running = Procesando
+label.state_complete = Completar
+label.state_completed = Finalizado
+label.state_job_cancelled = ¡Trabajo cancelado!
+label.state_job_error = Error del trabajo!
+label.server_error_try_later = ¡Error del servidor! (Intentar más tarde)
+label.error_loading_pdb_data = ¡Error cargando los datos PDB!
+label.fetching_pdb_data = Buscando los datos PDB...
+label.structure_type = Estructura_tipo
+label.settings_for_type = Ajustes para {0}
+label.view_full_application = Ver en la aplicación completa
+label.load_associated_tree = Cargar árbol asociado ...
+label.load_features_annotations = Cargar características/anotaciones ...
+label.export_features = Exportar características...
+label.export_annotations = Exportar anotaciones ...
+label.jalview_copy = Copiar (sólo Jalview)
+label.jalview_cut = Cortar (sólo Jalview)
+label.to_upper_case = Pasar a mayúsculas
+label.to_lower_case = Pasar a minúsculas
+label.toggle_case = Alternar mayúsculas y minúsculas
+label.edit_name_description = Editar nombre/descripción
+label.create_sequence_feature = Crear función de secuencia
+label.edit_sequence = Editar secuencia
+label.edit_sequences = Editar secuencias
+label.sequence_details = Detalles de la secuencia
+label.jmol_help = Ayuda de Jmol
+label.all = Todo
+label.sort_by = Ordenar por
+label.sort_by_score = Ordenar por puntuación
+label.sort_by_density = Ordenar por densidad
+label.sequence_sort_by_density = Ordenar las secuencias por densidad
+label.reveal = Revelar
+label.hide_columns = Ocultar columnas
+label.load_jalview_annotations = Cargar un fichero de anotación de Jalivew o un fichero de características
+label.load_tree_file = Cargar un fichero de árbol
+label.retrieve_parse_sequence_database_records_alignment_or_selected_sequences = Recuperar y parsear un registro de secuencia de base de datos para el alineamiento o secuencias actualmente seleccionados
+label.standard_databases = Bases de datos estándar
+label.fetch_embl_uniprot = Recuperar de EMBL/EMBLCDS o Uniprot/PDB y de cualquier fuente DAS seleccionada
+label.reset_min_max_colours_to_defaults = Reiniciar los colores min y max colours a los valores por defecto establecidos en las preferencias de usuario
+label.align_structures_using_linked_alignment_views = Alinear las estructuras utlizando las {0} vistas de alineamiento enlazadas
+label.connect_to_session = Conectar a la sesión {0}
+label.threshold_feature_display_by_score = Filtrar la característica mostrada por puntuación.
+label.threshold_feature_no_thereshold = Sin umbral
+label.threshold_feature_above_thereshold = Por encima del umbral
+label.threshold_feature_below_thereshold = Por debajo del umbral
+label.adjust_thereshold = Ajustar umbral
+label.toggle_absolute_relative_display_threshold = Cambiar entre mostrar el umbral absoluto y el relativo.
+label.display_features_same_type_different_label_using_different_colour = Mostrar las características del mismo tipo con una etiqueta diferente y empleando un color distinto (p.e. características del dominio)
+label.select_colour_minimum_value = Seleccionar el color para el valor mínimo
+label.select_colour_maximum_value = Seleccionar el color para el valor máximo
+label.open_new_jmol_view_with_all_structures_associated_current_selection_superimpose_using_alignment = Abrir una nueva vista Jmol con todas las estructuras asociadas con la selección acxtual y superponer las utilizando el alineamiento.
+label.open_url_param = Abrir URL {0}
+label.open_url_seqs_param = Abrir URL ({0}..) ({1} secuencias)
+label.load_pdb_file_associate_with_sequence = Cargar un fichero PDB y asociarlo con la secuencia '{0}'
+label.reveal_hidden_columns = Revelar las columnas ocultas con el botón derecho del ratón
+label.dark_colour = Oscurecer color
+label.light_colour = Aclarar color
+label.highlightnode = Pulse el botón izquierdo para seleccionar las hojas.<br>Haga doble clic para invertir las hojas.<br>Pulse el botón derecho para cambiar el color.
+label.load_colour_scheme = Cargar esquema cromático
+label.toggle_enabled_views = Cuando está habilitado, permite que se seleccionen varias vistas.
+label.edit_notes_parameter_set = Haga clic para editar las notas de este conjunto de parámetros.
+label.open_local_file = Abrir fichero local
+label.enable_automatically_sort_alignment_when_open_new_tree = Habilite esta opción para ordenar automáticamente<br>el alineamiento cuando abra<br> un nuevo árbol.
+label.listen_for_selections = Atención a las selecciones
+label.selections_mirror_selections_made_same_sequences_other_views = Cuando está habilitado, las selecciones de esta vista serán un reflejo<br>de las selecciones realizadas en las mismas secuencias de otras vistas.
+label.toggle_sequence_visibility = Shift+H cambia la visibilidad de la secuencia
+label.toggle_columns_visibility = Ctrl+H cambia la visibilidad de la columna
+label.toggles_visibility_hidden_selected_regions = H cambiar la visibilidad de las regiones ocultas o seleccionadas
+label.rename_tab_eXpand_reGroup= Haga clic en el botón derecho para renombrar la pestaña<br>Presione X para expandir las tablas y G para reagrupar.
+label.right_align_sequence_id = Alinear a la derecha el ID de la secuencia
+label.sequence_id_tooltip = Ayuda del ID de la secuencia
+label.no_services = <Sin Servicios>
+label.select_copy_raw_html = Seleccione esta opción si desea copiar el html en bruto
+label.share_data_vamsas_applications = Compartir datos con otras aplicaciones vamsas
+label.connect_to = Conectar a
+label.join_existing_vamsas_session = Unirse a una sesión vamsas existente
+label.from_url = desde una URL
+label.any_trees_calculated_or_loaded_alignment_automatically_sort = Cuando está habilitado, cualquier árbol calculado o cargado en el alineamiento lo ordenará
+label.sort_with_new_tree = Ordenar con el nuevo árbol
+label.from_textbox = desde un área de texto
+label.window = Ventana
+label.preferences = Preferencias
+label.tools = Herramientas
+label.fetch_sequences = Recuperar secuencia(s)
+label.stop_vamsas_session = Parar sesión vamsas
+label.collect_garbage = Recolector de basura
+label.show_memory_usage = Mostrar uso de memoria
+label.show_java_console = Mostrar consola de Java
+label.show_jalview_news = Mostrar las noticias de Jalview
+label.take_snapshot = Tomar captura
+label.monospaced_fonts_faster_to_render = Las fuentes monoespaciadas son más rápidas de pintar
+label.anti_alias_fonts = Fuentes anti-alias (más lentas de pintar)
+label.monospaced_font= Monoespaciadas
+label.quality = Calidad
+label.maximize_window = Maximizar ventana
+label.conservation = Conservación
+label.consensus = Consenso
+label.histogram = Histograma
+label.logo = Logo
+label.non_positional_features = Características no posicionales
+label.database_references = Referencias a base de datos
+label.share_selection_across_views = Compartir la selección en todas las vistas
+label.scroll_highlighted_regions = Desplazarse hasta las regiones resaltadas
+label.gap_symbol = Símbolo del hueco
+label.alignment_colour = Color del alineamiento
+label.address = Dirección
+label.port = Puerto
+label.default_browser_unix = Navegador por defecto (Unix)
+label.send_usage_statistics = Enviar estadísticas de uso
+label.check_for_questionnaires = Comprobar los cuestionarios
+label.check_for_latest_version = Comprobar la última versión
+label.url_linkfrom_sequence_id = URL del enlace del ID de la secuencia
+label.use_proxy_server = Utilizar un servidor proxy
+label.eps_rendering_style = Estilo de visualización EPS
+label.append_start_end = Añadir /inicio-fin (/15-380)
+label.full_sequence_id = ID de la secuencia completo
+label.smooth_font = Fuente alargada
+label.autocalculate_consensus = Autocalcular consenso
+label.pad_gaps = Rellenar huecos
+label.pad_gaps_when_editing = Rellenar huecos al editar
+label.automatically_set_id_width = Establecer automáticamente al anchura del ID
+label.figure_id_column_width = Anchura de la columna del ID de la Figura
+label.use_modeller_output = Utilizar la salidad del Modeller
+label.wrap_alignment = Envolver alineamiento
+label.right_align_ids = Alinear IDs a la derecha
+label.sequence_name_italics = Nombre de la secuencia en cursiva
+label.open_overview = Abrir resumen
+label.default_colour_scheme_for_alignment = Esquema cromático por defecto para el alineamiento
+label.annotation_shading_default = Sombreado por defecto de la anotación
+label.default_minimum_colour_annotation_shading = Por mínimo por defecto para el sombreado de la anotación
+label.default_maximum_colour_annotation_shading = Por máximo por defecto para el sombreado de la anotación
+label.visual = Visual
+label.connections = Conexiones
+label.output = Salida
+label.editing = Edición
+label.das_settings = Configuración DAS
+label.web_services = Servicios web
+label.right_click_to_edit_currently_selected_parameter = Haga clic en el botón derecho para editar el parámetro seleccionado actualmente.
+label.let_jmol_manage_structure_colours = Permitir que Jmol gestione la estructuras cromáticas
+label.marks_leaves_tree_not_associated_with_sequence = Marcar las hojas del árbol que no están asociadas a una secuencia
+label.index_web_services_menu_by_host_site = Indizar los servicios web en el menú por el host que los aloja
+label.option_want_informed_web_service_URL_cannot_be_accessed_jalview_when_starts_up = Marque esta opción si desea ser informado<br>cuando no se pueda acceder a la URL de un servicio web<br>al arrancar Jalview.
+label.new_service_url = Nueva URL del servicio
+label.edit_service_url = Editar la URL del servicio
+label.delete_service_url = Borrar la URL del servicio
+label.details = Detalles
+label.options = Opciones
+label.parameters = Paramétros
+label.available_das_sources = Fuentes DAS disponibles
+label.full_details = Detalles completos
+label.authority = Autoridad
+label.type = Tipo
+label.proxy_server = Servidor proxy
+label.file_output = Fichero de salida
+label.select_input_type = Seleccionar el tipo de entrada
+label.set_options_for_type = Establecer opciones para el tipo
+label.data_input_parameters = Datos de los parámetros de entrada
+label.data_returned_by_service = Datos devueltos por el servicio
+label.rsbs_encoded_service = Servicio RSBS codificado
+label.parsing_errors = Errores de parseo
+label.simple_bioinformatics_rest_services = Simple Bioinformatics Rest Services
+label.web_service_discovery_urls = URL de descubrimiento de servicios web
+label.input_parameter_name = Nombre del parámetro de entrada
+label.short_descriptive_name_for_service = Nombre corto descriptivo del servicio
+label.function_service_performs = Tipo de función que realiza el servicio (p.e. alineamiento, análisis, búsqueda, etc).
+label.brief_description_service = Descripción breve del servicio
+label.url_post_data_service = URL a la que enviar los datos del servicio. Incluya cualquier parámetro especial que se necesite aquí
+label.optional_suffix = Sufijo opcional añadido a la URL al recuperar los resultados del servicio
+label.preferred_gap_character = ¿Qué caracter para el hueco prefiere el servicio?
+label.gap_character = Carácter para hueco
+label.move_return_type_up_order= Mover el tipo de returno hacia arriba en el orden
+label.move_return_type_down_order= Mover el tipo de returno hacia abajo en el orden
+label.update_user_parameter_set = Actualizar el conjunto de parámetros de usuario existente
+label.delete_user_parameter_set = Borrar el conjunto de parámetros de usuario existente
+label.create_user_parameter_set = Crear un nuevo conjunto de parámetro con la configuración actual.
+label.revert_changes_user_parameter_set = Deshacer todos los cambios en el conjunto de parámetros actual
+label.start_job_current_settings = Arrancar trabajo con la configuración actual
+label.cancel_job_close_dialog = Cerrar este diálogo y cancelar el trabajo
+label.input_output = Entrada/Salida
+label.cut_paste = Cortar y pegar
+label.adjusting_parameters_for_calculation = Ajustar los parámetros para el cálculo existente
+label.2d_rna_structure_line = 2D RNA {0}
+label.2d_rna_sequence_name = 2D RNA - {0}
+label.edit_name_and_description_current_group = Editar el nombre y la descripción del grupo actual.
+label.view_structure_for = Visualizar la estructura para {0}
+label.view_all_structures = Visualizar todas las {0} estructuras.
+label.view_all_representative_structures = Visualizar todas las {0} estructuras representativas.
+label.open_new_jmol_view_with_all_representative_structures_associated_current_selection_superimpose_using_alignment = Abrir una nueva vista de Jmol con todas las estructuras representativas\nasociadas con la selecci\u00F3n actual\nsuperpuesta con el alineamiento actual.
+label.associate_structure_with_sequence = Asociar estructura con la secuencia
+label.from_file = desde fichero
+label.enter_pdb_id = Introducir PDB Id
+label.discover_pdb_ids = Buscar PDB ids
+label.text_colour = Color del texto
+label.structure = Estructura
+label.view_structure = Visualizar estructura
+label.clustalx_colours = Colores de Clustalx
+label.above_identity_percentage = Sobre % identidad
+label.create_sequence_details_report_annotation_for = Anotación para {0}
+label.sequece_details_for = Detalles de la secuencia para {0}
+label.sequence_name = Nombre de la secuencia
+label.sequence_description = Descripción de la secuencia
+label.edit_sequence_name_description = Editar el nombre/descripción de la secuencia
+label.spaces_converted_to_backslashes = Los espacios se han convertido en _
+label.no_spaces_allowed_sequence_name = No se permiten espacios en el nombre de la secuencia
+label.select_outline_colour = Seleccionar el color del límite
+label.web_browser_not_found_unix = Unixers\: No es posible encontrar el navegador web por defecto.\nA\u00F1ada la ruta completa de su navegador en la pesta\u00F1a de Preferencias.
+label.web_browser_not_found = No se encuentra el navegador web
+label.select_pdb_file_for = Seleccione un fichero PDB para {0}
+label.html = HTML
+label.wrap = Envolver
+label.show_database_refs = Mostrar las referencias en base de datos
+label.show_non_positional_features = Mostrar las características no posicionales
+label.save_png_image = Guardar como imagen PNG
+label.load_tree_for_sequence_set = Cargar un árbol para este conjunto de secuencias
+label.export_image = Exportar imagen
+label.vamsas_store = Almacén VAMSAS
+label.translate_cDNA = Traducir cDNA
+label.extract_scores = Extraer puntuaciones
+label.get_cross_refs = Obtener referencias cruzadas
+label.sort_alignment_new_tree = Alinear el alineamiento con el nuevo árbol
+label.add_sequences = Añadir secuencias
+label.new_window = Nueva ventana
+label.refresh_available_sources = Refrescar las fuentes disponibles
+label.use_registry = Utilizar el registro
+label.add_local_source = Añadir fuente local
+label.set_as_default = Establecer por defecto
+label.show_labels = Mostrar etiquetas
+label.background_colour = Color de fondo
+label.associate_nodes_with = Asociar nodos con
+label.jalview_pca_calculation = Cálculo del PCA por Jalview
+label.link_name = Nombre del enalce
+label.pdb_file = Fichero PDB
+label.colour_with_jmol = Colorear con Jmol
+label.align_structures = Alinear estructuras
+label.jmol = Jmol
+label.sort_alignment_by_tree = Ordenar alineamiento por árbol
+label.mark_unlinked_leaves = Marcar las hojas como no enlazadas
+label.associate_leaves_with = Asociar hojas con
+label.save_colour_scheme_with_unique_name_added_to_colour_menu = Guarde el esquema cromáticos con un nombre único y se añadirá al menú de colores
+label.case_sensitive = Sensible a mayúsculas
+label.lower_case_colour = Color para las minúsculas
+label.index_by_host = Indizar por host
+label.index_by_type = Indizar por tipo
+label.enable_jabaws_services = Habilitar servicios JABAWS
+label.display_warnings = Mostrar advertencias
+label.move_url_up = Mover la URL hacia arriba
+label.move_url_down = Mover la URL hacia abajo
+label.add_sbrs_definition = Añadir una definición SBRS
+label.edit_sbrs_definition = Editar una definición SBRS
+label.delete_sbrs_definition = Borrar una definición SBRS
+label.your_sequences_have_been_verified = Sus secuencias has sido verificadas en una base de datos de secuencias conocidas. Algunos de sus ID se han alterado y\n, probablemente, el residuo de inicio/fin se haya actualizado.\nGuarde su alineamiento para mantener el ID actualizado.\n\n
+label.sequence_names_updated = Nombres de secuencia actualizados
+label.dbref_search_completed = Búsqueda de DBRef terminada
+label.show_all_chains = Mostrar todas las cadenas
+label.fetch_all_param = Recuperar todas {0}
+label.paste_new_window = Pegar en una nueva ventana
+label.settings_for_param = Configuración para {0}
+label.view_params = Visualizar {0}
+label.select_all_views = Seleccionar todas las vistas
+label.align_sequences_to_existing_alignment = Alinear las secuencias con el alineamiento existente
+label.realign_with_params = Realinear con {0}
+label.calcname_with_default_settings = {0} por defecto
+label.action_with_default_settings = {0} con la configuración por defecto
+label.edit_settings_and_run = Editar la configuración y ejecutar...
+label.view_and_change_parameters_before_alignment = Ver y cambiar los parámetros antes del alineamiento
+label.run_with_preset_params = Ejecutar {0} con preconfiguración
+label.view_and_change_parameters_before_running_calculation = Ver y cambiar los parámetros antes de lanzar el cálculo
+label.view_documentation = Ver documentación
+label.select_return_type = Seleccionar el tipo de retorno
+label.translation_of_params = Traducción de {0}
+label.features_for_params = Características de - {0}
+label.annotations_for_params = Anotaciones de - {0}
+label.generating_features_for_params = Generando características de - {0}
+label.generating_annotations_for_params = Generando anotaciones de - {0}
+label.varna_params = VARNA - {0}
+label.sequence_feature_settings = Configuración de las características de la secuencia
+label.pairwise_aligned_sequences = Secuencias alineadas a pares
+label.original_data_for_params = Datos originales de {0}
+label.points_for_params = Puntos de {0}
+label.transformed_points_for_params = Puntos transformados de {0}
+label.graduated_color_for_params = Color graduado para la característica de {0}
+label.select_backgroud_colour = Seleccionar color de fondo
+label.invalid_font = Fuente no válida
+label.separate_multiple_accession_ids = Separar los accession id con un punto y coma ";"
+label.replace_commas_semicolons = Cambiar comas por puntos y comas
+label.parsing_failed_syntax_errors_shown_below_param = Parseo erróneo. A continuación, se muestras los errores de sintaxis {0}
+label.parsing_failed_unrecoverable_exception_thrown_param = \nParseo err\u00F3neo. Se ha lanzado una excepci\u00F3n fatal\:\n {0}
+label.example_query_param = Consulta de ejemplo: {0}
+label.enter_value_increase_conservation_visibility = Introduzca un valor para incrementar la visibilidad de la conservación
+label.enter_percentage_identity_above_which_colour_residues = Introduza un % de identidad por encima del cual se colorearán los residuos
+label.wswublast_client_credits = Para mostrar las caracter\u00EDsticas de una secuencia, debe indicarse un id de Uniprot cuya secuencia se corresponda al 100 % con la introducida.\nPara mostrar estas caracter\u00EDsticas, prueba a cambar los nombre de sus secuencia con los ID que se sugieren a continuaci\u00F3n.\n\nRunning WSWUBlast at EBI.\nPlease quote Pillai S., Silventoinen V., Kallio K., Senger M., Sobhany S., Tate J., Velankar S., Golovin A., Henrick K., Rice P., Stoehr P., Lopez R.\nSOAP-based services provided by the European Bioinformatics Institute.\nNucleic Acids Res. 33(1)\:W25-W28 (2005));
+label.blasting_for_unidentified_sequence = Ejecutar BLAST para la secuencias sin identificar
+label.select_columns_containing = Seleccione las columnas que contengan
+label.select_columns_not_containing = Seleccione las columnas que no contengan
+option.trim_retrieved_seqs = Ajustar las secuencias recuperadas
+label.trim_retrieved_sequences = Cuando la secuencia de referencia es más larga que la secuencia con la que está trabajando, sólo se mantienen las subsecuencias relevantes.
+label.use_sequence_id_1 = Utilice $SEQUENCE_ID$ o $SEQUENCE_ID=/<regex>/=$
+label.use_sequence_id_2 = \nto para embeber el id de la secuencia en una URL
+label.ws_parameters_for = Parámetros para {0}
+label.switch_server = Cambiar servidor
+label.open_jabaws_web_page = Abre el página principal del servidor JABAWS en un navegador web
+label.choose_jabaws_server = Escoja un servidor para ejecutar este servicio
+label.services_at = Servicios en {0}
+label.rest_client_submit = {0} utilizando {1}
+label.fetch_retrieve_from =Recuperar de {0}
+label.fetch_retrieve_from_all_sources = Recuperar de todas las fuentes {0} en {1}<br>La primera es :{2}
+label.feature_settings_click_drag = Haga clic o arrastre los tipos de las características hacia arriba o hacia abajo para cambiar el orden de visualización.<br/>Haga doble clic para seleccionar las columnas que contienen las características del alineamiento/selección actual.<br/>Presionando Alt seleccionará las columnas exteriores a las características en lugar de las interiores<br/>Presione Shift para modificar la selección actual (en lugar de borrarla)<br/>Presione CTRL o Command/Meta para cambiar las columans externas o internas a las características<br/>
+label.opt_and_params_further_details = ver los detalles adicionales haciendo clic en el botón derecho
+label.opt_and_params_show_brief_desc_image_link = Haga clic para ver una descripción breve<br><img src="{0}"/>Haga clic en el botón derecho para obtener información adicional.
+label.opt_and_params_show_brief_desc = Haga clic para ver una descripción breve<br>
+label.adjusts_width_generated_eps_png = Ajusta la anchura del fichero EPS o PNG generado para asegurar incluso que el ID de la secuencia más larga o las etiquetas de anotación se muestran
+label.manually_specify_width_left_column = Especificar manualmente la anchura de la columna izquierda en las etiquetas de los ID de la secuencia y las anotaciones se mostrar en las figuras del alineamiento exportado.Esta configuraicón se ignorará si está marcada la opción 'Establecer automáticamente al anchura del ID'
+label.job_created_when_checked = Cuando está habilitado, se crea un trabajo para cada secuencia de la selección actual
+label.when_checked_job_visible_region_and_results = Cuando está habilitado, se crea un único trabajo para la región visible y los resultados de mapean en su ubicación dentro del alineamiento. En caso contrario, se creará un trabajo para cada región visible y contigua en el alineamiento o selección actual (p.e. un alineamiento múlitple).
+label.flat_file_representation = La representación del fichero plano de este servicio utilizando el formalismo Really Simple Bioinformatics Service
+label.result_of_parsing_rsbs = Resultados de parsear la representación RSBS
+label.user_preset = Preselección de usuario
+label.service_preset = Preselección del servicio
+label.run_with_preset = Ejecutar {0} con preselección
+label.view_service_doc_url = Visualizar <a href="{0}">{1}</a>
+label.submit_sequence = Enviar {0} {1} {2} {3} a<br/>{4}
+action.by_title_param = por {0}
+label.alignment = Alineamiento
+label.secondary_structure_prediction = Predicción de la estructura secundaria
+label.sequence_database_search = Búsqueda en base de datos de secuencias
+label.analysis = Análisis
+label.protein_disorder = Desorden en la proteína
+label.source_from_db_source = Fuentes de {0}
+label.from_msname = de '{0}'
+label.superpose_with = Superponer con...
+action.do = Hacer
+label.scale_label_to_column = Ajustar la etiqueta a la columna
+label.add_new_row = Añadir nuevo fila
+label.edit_label_description = Editar etiqueta/descripción
+label.hide_row = Ocultar esta fila
+label.delete_row = Borrar esta fila
+label.show_all_hidden_rows = Mostrar todas las filas ocultas
+label.export_annotation = Exportar anotación
+label.copy_consensus_sequence = Copiar secuencia de consenso
+label.helix = Hélice
+label.sheet = Hoja
+label.rna_helix = Hélice de ARN
+label.remove_annotation = Borrar anotación
+label.colour_by = Colorear por...
+label.muscle_multiple_protein_sequence_alignment = Alineamiento múltiple de secuencias de proteínas con Muscle
+label.mafft_multiple_sequence_alignment = Alineamiento múltiple de secuencias con MAFFT
+label.clustalw_multiple_sequence_alignment = Alineamiento múltiple de secuencias con ClustalW
+label.jnet_secondary_structure_prediction = Predicción de la estructura secundaria con JNet
+label.multiharmony = Multi-Harmony
+label.unable_start_web_service_analysis = No es posible iniciar el servicio web de análisis
+label.job_couldnt_be_started_check_input = El trabajo no puede arrancarse. Por favor, compruebe los parámetros de entrada y los mensajes de advertencia de la consola de Jalview.
+label.prompt_each_time = Preguntar siempre
+label.use_source = Fuente
+label.couldnt_save_project = No es posible guardar el proyecto
+label.error_whilst_saving_current_state_to = Error mientras se guardaba el estado a {0}
+label.error_whilst_loading_project_from = Error cargado el proyecto desde {0}
+label.couldnt_load_project = No es posible cargar el proyecto
# You should have received a copy of the GNU General Public License along with Jalview. If not, see <http://www.gnu.org/licenses/>.
# The Jalview Authors are detailed in the 'AUTHORS' file.
###############################################################################
-# THE CASTOR PROPERTIES FILE\r
-# This file specifies values for Castor run-time which may be configured\r
-# by the user.\r
-# $Id$\r
-\r
-# This section defines Backwards compatibility switches.\r
-#\r
-# Hashtable/Map default mapping.\r
-# For backward compatibility with 0.9.5.2 and earlier.\r
-#\r
-#org.exolab.castor.xml.saveMapKeys=false\r
-\r
-# Defines the default XML parser to be used by Castor.\r
-# The parser must implement org.xml.sax.Parser.\r
-#\r
-org.exolab.castor.parser=org.apache.xerces.parsers.SAXParser\r
-\r
-# Defines the (default) XML serializer factory to use by Castor, which must\r
-# implement org.exolab.castor.xml.SerializerFactory; default is \r
-# org.exolab.castor.xml.XercesXMLSerializerFactory\r
-# \r
-# When using Castor XML with JDK 5.0, you may switch to the XercesJDK5XMLSerializerFactory\r
-# which will use the Xerces instance as shipped with the JDK itself; this avoids\r
-# having to download another Xerces instance and installing it. \r
-org.exolab.castor.xml.serializer.factory=org.exolab.castor.xml.XercesXMLSerializerFactory\r
-#org.exolab.castor.xml.serializer.factory=org.exolab.castor.xml.XercesJDK5XMLSerializerFactory\r
-\r
-# Defines the NodeType for use with Java primitive types (int, long, boolean,\r
-# etc). This value is only used by the Introspector. Valid values are either\r
-# "attribute" or "element". By default, all primitives are marshaled as\r
-# attributes. Uncomment the following line to change the NodeType to element.\r
-#\r
-#org.exolab.castor.xml.introspector.primitive.nodetype=element\r
-\r
-# Defines the Naming "style" or conventions to use when creating XML names\r
-# from Java class or field names.\r
-# Valid values are as follows:\r
-# -----------------------------------------------------------------\r
-# lower (default) | All names are lowercase with hyphens\r
-# | separating words.\r
-# |\r
-# | Example: personInfo = person-info\r
-# -----------------------------------------------------------------\r
-# mixed | All names are mixed case, with Uppercase\r
-# | character as the first letter of a new word.\r
-# |\r
-# | Example: personInfo = personInfo\r
-# | Example: FooBar = fooBar\r
-# -----------------------------------------------------------------\r
-# {Any ClassName} | Any Class which implements\r
-# | org.exolab.castor.xml.XMLNaming\r
-# -----------------------------------------------------------------\r
-#\r
-# By default, all names are treated as the "lower" option. To preserve the\r
-# Java mixed-case conventions, uncomment the following line.\r
-#\r
-#org.exolab.castor.xml.naming=mixed\r
-\r
-###############################\r
-# REGULAR EXPRESSION EVALUATORS\r
-#\r
-# Defines the Regular Expression Evaluator to be used by Castor.\r
-# The evaluator must implement org.exolab.castor.util.RegExpEvaluator.\r
-#\r
-# Uncomment the following to basically suppress Regular expressions evaluation:\r
-#org.exolab.castor.regexp=org.exolab.castor.xml.util.AlwaysTrueRegExpEvaluator\r
-#\r
-# An implementation which uses the Jakarta RegExp library:\r
-#org.exolab.castor.regexp=org.exolab.castor.util.JakartaRegExpEvaluator\r
-#\r
-# An implementation which uses the Jakarta ORO library:\r
-org.exolab.castor.regexp=org.exolab.castor.util.JakartaOroEvaluator\r
-\r
-# True if all documents should be indented on output by default.\r
-# Defaults to false.\r
-#\r
-#org.exolab.castor.indent=true\r
-\r
-# True if xml documents should be validated by the SAX Parser\r
-# Defaults to false.\r
-#\r
-org.exolab.castor.parser.validation=false\r
-\r
-# True for parser to support Namespaces.\r
-# Defaults to false.\r
-#\r
-org.exolab.castor.parser.namespaces=false\r
-\r
-# True if all documents should be validated by the marshaling framework\r
-# Defaults to true.\r
-#\r
-org.exolab.castor.marshalling.validation=true\r
-\r
-# Comma separated list of SAX 2 features that should be enabled for the\r
-# default parser.\r
-#\r
-#org.exolab.castor.sax.features=\r
-\r
-# Comma separated list of SAX 2 features that should be disabled for the\r
-# default parser.\r
-#\r
-#org.exolab.castor.sax.features-to-disable\r
-\r
-# True if debugging output should be generated.\r
-# Defaults to false.\r
-#\r
-org.exolab.castor.debug=false\r
-\r
-# List of collection handlers for Java 1.1 and Java 1.2 run-times:\r
-#\r
-org.exolab.castor.mapping.collections=\\r
- org.exolab.castor.mapping.loader.J1CollectionHandlers,\\r
- org.exolab.castor.mapping.loader.J2CollectionHandlers\r
-\r
-# List of persistence factories for the supported database servers:\r
-#\r
-org.exolab.castor.jdo.engines=\\r
- org.exolab.castor.jdo.drivers.OracleFactory,\\r
- org.exolab.castor.jdo.drivers.PostgreSQLFactory,\\r
- org.exolab.castor.jdo.drivers.SybaseFactory,\\r
- org.exolab.castor.jdo.drivers.SQLServerFactory,\\r
- org.exolab.castor.jdo.drivers.DB2Factory,\\r
- org.exolab.castor.jdo.drivers.InformixFactory,\\r
- org.exolab.castor.jdo.drivers.HsqlFactory,\\r
- org.exolab.castor.jdo.drivers.InstantDBFactory,\\r
- org.exolab.castor.jdo.drivers.InterbaseFactory,\\r
- org.exolab.castor.jdo.drivers.MySQLFactory,\\r
- org.exolab.castor.jdo.drivers.SapDbFactory,\\r
- org.exolab.castor.jdo.drivers.GenericFactory,\\r
- org.exolab.castor.jdo.drivers.DerbyFactory,\\r
- org.castor.jdo.drivers.PointbaseFactory,\\r
- org.castor.jdo.drivers.ProgressFactory\r
-\r
-# List of key generator factories:\r
-#\r
-org.exolab.castor.jdo.keyGeneratorFactories=\\r
- org.exolab.castor.jdo.keygen.MaxKeyGeneratorFactory,\\r
- org.exolab.castor.jdo.keygen.HighLowKeyGeneratorFactory,\\r
- org.exolab.castor.jdo.keygen.IdentityKeyGeneratorFactory,\\r
- org.exolab.castor.jdo.keygen.SequenceKeyGeneratorFactory,\\r
- org.exolab.castor.jdo.keygen.UUIDKeyGeneratorFactory\r
-\r
-# Collection handlers for the source code generator:\r
-#\r
-org.exolab.castor.builder.type.j2=\\r
- org.exolab.castor.builder.FieldInfoFactoryJ2\r
-org.exolab.castor.builder.type.j1=\\r
- org.exolab.castor.builder.FieldInfoFactory\r
-org.exolab.castor.builder.type.odmg=\\r
- org.exolab.castor.builder.FieldInfoFactoryODMG30\r
-\r
-# Configures the default time zone to apply to dates/times fetched from\r
-# database fields (if not already part of the data). Specify same format as\r
-# in java.util.TimeZone.getTimeZone, or the empty string to use the computer's\r
-# local time zone. Please see http://de.wikipedia.org/wiki/Zeitzone for\r
-# detailed information about time zones.\r
-#\r
-org.exolab.castor.jdo.defaultTimeZone=\r
-#org.exolab.castor.jdo.defaultTimeZone=GMT-8:00\r
-\r
-# List of TxSynchronizeable implementations:\r
-#\r
-#org.exolab.castor.persist.TxSynchronizable=\r
-\r
-# Sets the buffer size in bytes for fetching LOBs (this is dependent upon\r
-# the JDBC driver implementation). The value below == 5k.\r
-#\r
-org.exolab.castor.jdo.lobBufferSize=5120\r
-\r
-# True if database configuration should be initalization\r
-# when loading it (default: true).\r
-#\r
-#org.exolab.castor.jdo.DatabaseInitializeAtLoad=true\r
-\r
-# True if proxy classes should be used for JDBC connections and\r
-# prepared statements.\r
-# Defaults to true.\r
-#\r
-org.exolab.castor.persist.useProxies=false\r
-\r
-# MappingLoader implementations:\r
-#\r
-org.castor.mapping.loaderFactories=\\r
- org.castor.mapping.JDOMappingLoaderFactory,\\r
- org.castor.mapping.XMLMappingLoaderFactory\r
-\r
-# Cache implementations:\r
-#\r
-org.castor.cache.Factories=\\r
- org.castor.cache.simple.NoCacheFactory,\\r
- org.castor.cache.simple.TimeLimitedFactory,\\r
- org.castor.cache.simple.CountLimitedFactory,\\r
- org.castor.cache.simple.UnlimitedFactory,\\r
- org.castor.cache.distributed.FKCacheFactory,\\r
- org.castor.cache.distributed.JcsCacheFactory,\\r
- org.castor.cache.distributed.JCacheFactory,\\r
- org.castor.cache.distributed.CoherenceCacheFactory,\\r
- org.castor.cache.distributed.OsCacheFactory,\\r
- org.castor.cache.hashbelt.FIFOHashbeltFactory,\\r
- org.castor.cache.hashbelt.LRUHashbeltFactory,\\r
- org.castor.cache.distributed.EHCacheFactory,\\r
- org.castor.cache.distributed.GigaspacesCacheFactory\r
-\r
-# TransactionManagerFactory implementations:\r
-#\r
-org.castor.transactionmanager.Factories=\\r
- org.castor.transactionmanager.WebSphereTransactionManagerFactory,\\r
- org.castor.transactionmanager.WebSphere5TransactionManagerFactory,\\r
- org.castor.transactionmanager.WebSphere51TransactionManagerFactory,\\r
- org.castor.transactionmanager.LocalTransactionManagerFactory,\\r
- org.castor.transactionmanager.JNDIENCTransactionManagerFactory,\\r
- org.castor.transactionmanager.JOTMTransactionManagerFactory\r
-\r
-# Selects whether the TransactionManager should be initialized at registration,\r
-# or lazily when requested for the first time.\r
-# Defaults to false.\r
-#\r
-org.castor.transactionmanager.InitializeAtRegistration=false\r
-\r
-# Instructs Castor JDO to use the JDBC 3.0-specific features to obtain\r
-# the generated value of an identity column.\r
-# Defaults to false.\r
-#\r
-org.castor.jdo.use.jdbc30=false\r
-\r
-# Specifies whether to use ANSI-compliant SQL for MS SQL Server.\r
-# Defaults to false.\r
-#\r
-org.exolab.castor.jdo.sqlserver.ansi-compliant=false\r
-\r
-# Specifyies whether the ClassDescriptorResolver should (automatically) search\r
-# for and consult with package mapping files (.castor.xml) to retrieve class\r
-# descriptor information; on by default.\r
-# Defaults to true.\r
-#\r
-#org.exolab.castor.xml.loadPackageMappings=false\r
+# THE CASTOR PROPERTIES FILE
+# This file specifies values for Castor run-time which may be configured
+# by the user.
+# $Id$
+
+# This section defines Backwards compatibility switches.
+#
+# Hashtable/Map default mapping.
+# For backward compatibility with 0.9.5.2 and earlier.
+#
+#org.exolab.castor.xml.saveMapKeys=false
+
+# Defines the default XML parser to be used by Castor.
+# The parser must implement org.xml.sax.Parser.
+#
+org.exolab.castor.parser=org.apache.xerces.parsers.SAXParser
+
+# Defines the (default) XML serializer factory to use by Castor, which must
+# implement org.exolab.castor.xml.SerializerFactory; default is
+# org.exolab.castor.xml.XercesXMLSerializerFactory
+#
+# When using Castor XML with JDK 5.0, you may switch to the XercesJDK5XMLSerializerFactory
+# which will use the Xerces instance as shipped with the JDK itself; this avoids
+# having to download another Xerces instance and installing it.
+org.exolab.castor.xml.serializer.factory=org.exolab.castor.xml.XercesXMLSerializerFactory
+#org.exolab.castor.xml.serializer.factory=org.exolab.castor.xml.XercesJDK5XMLSerializerFactory
+
+# Defines the NodeType for use with Java primitive types (int, long, boolean,
+# etc). This value is only used by the Introspector. Valid values are either
+# "attribute" or "element". By default, all primitives are marshaled as
+# attributes. Uncomment the following line to change the NodeType to element.
+#
+#org.exolab.castor.xml.introspector.primitive.nodetype=element
+
+# Defines the Naming "style" or conventions to use when creating XML names
+# from Java class or field names.
+# Valid values are as follows:
+# -----------------------------------------------------------------
+# lower (default) | All names are lowercase with hyphens
+# | separating words.
+# |
+# | Example: personInfo = person-info
+# -----------------------------------------------------------------
+# mixed | All names are mixed case, with Uppercase
+# | character as the first letter of a new word.
+# |
+# | Example: personInfo = personInfo
+# | Example: FooBar = fooBar
+# -----------------------------------------------------------------
+# {Any ClassName} | Any Class which implements
+# | org.exolab.castor.xml.XMLNaming
+# -----------------------------------------------------------------
+#
+# By default, all names are treated as the "lower" option. To preserve the
+# Java mixed-case conventions, uncomment the following line.
+#
+#org.exolab.castor.xml.naming=mixed
+
+###############################
+# REGULAR EXPRESSION EVALUATORS
+#
+# Defines the Regular Expression Evaluator to be used by Castor.
+# The evaluator must implement org.exolab.castor.util.RegExpEvaluator.
+#
+# Uncomment the following to basically suppress Regular expressions evaluation:
+#org.exolab.castor.regexp=org.exolab.castor.xml.util.AlwaysTrueRegExpEvaluator
+#
+# An implementation which uses the Jakarta RegExp library:
+#org.exolab.castor.regexp=org.exolab.castor.util.JakartaRegExpEvaluator
+#
+# An implementation which uses the Jakarta ORO library:
+org.exolab.castor.regexp=org.exolab.castor.util.JakartaOroEvaluator
+
+# True if all documents should be indented on output by default.
+# Defaults to false.
+#
+#org.exolab.castor.indent=true
+
+# True if xml documents should be validated by the SAX Parser
+# Defaults to false.
+#
+org.exolab.castor.parser.validation=false
+
+# True for parser to support Namespaces.
+# Defaults to false.
+#
+org.exolab.castor.parser.namespaces=false
+
+# True if all documents should be validated by the marshaling framework
+# Defaults to true.
+#
+org.exolab.castor.marshalling.validation=true
+
+# Comma separated list of SAX 2 features that should be enabled for the
+# default parser.
+#
+#org.exolab.castor.sax.features=
+
+# Comma separated list of SAX 2 features that should be disabled for the
+# default parser.
+#
+#org.exolab.castor.sax.features-to-disable
+
+# True if debugging output should be generated.
+# Defaults to false.
+#
+org.exolab.castor.debug=false
+
+# List of collection handlers for Java 1.1 and Java 1.2 run-times:
+#
+org.exolab.castor.mapping.collections=\
+ org.exolab.castor.mapping.loader.J1CollectionHandlers,\
+ org.exolab.castor.mapping.loader.J2CollectionHandlers
+
+# List of persistence factories for the supported database servers:
+#
+org.exolab.castor.jdo.engines=\
+ org.exolab.castor.jdo.drivers.OracleFactory,\
+ org.exolab.castor.jdo.drivers.PostgreSQLFactory,\
+ org.exolab.castor.jdo.drivers.SybaseFactory,\
+ org.exolab.castor.jdo.drivers.SQLServerFactory,\
+ org.exolab.castor.jdo.drivers.DB2Factory,\
+ org.exolab.castor.jdo.drivers.InformixFactory,\
+ org.exolab.castor.jdo.drivers.HsqlFactory,\
+ org.exolab.castor.jdo.drivers.InstantDBFactory,\
+ org.exolab.castor.jdo.drivers.InterbaseFactory,\
+ org.exolab.castor.jdo.drivers.MySQLFactory,\
+ org.exolab.castor.jdo.drivers.SapDbFactory,\
+ org.exolab.castor.jdo.drivers.GenericFactory,\
+ org.exolab.castor.jdo.drivers.DerbyFactory,\
+ org.castor.jdo.drivers.PointbaseFactory,\
+ org.castor.jdo.drivers.ProgressFactory
+
+# List of key generator factories:
+#
+org.exolab.castor.jdo.keyGeneratorFactories=\
+ org.exolab.castor.jdo.keygen.MaxKeyGeneratorFactory,\
+ org.exolab.castor.jdo.keygen.HighLowKeyGeneratorFactory,\
+ org.exolab.castor.jdo.keygen.IdentityKeyGeneratorFactory,\
+ org.exolab.castor.jdo.keygen.SequenceKeyGeneratorFactory,\
+ org.exolab.castor.jdo.keygen.UUIDKeyGeneratorFactory
+
+# Collection handlers for the source code generator:
+#
+org.exolab.castor.builder.type.j2=\
+ org.exolab.castor.builder.FieldInfoFactoryJ2
+org.exolab.castor.builder.type.j1=\
+ org.exolab.castor.builder.FieldInfoFactory
+org.exolab.castor.builder.type.odmg=\
+ org.exolab.castor.builder.FieldInfoFactoryODMG30
+
+# Configures the default time zone to apply to dates/times fetched from
+# database fields (if not already part of the data). Specify same format as
+# in java.util.TimeZone.getTimeZone, or the empty string to use the computer's
+# local time zone. Please see http://de.wikipedia.org/wiki/Zeitzone for
+# detailed information about time zones.
+#
+org.exolab.castor.jdo.defaultTimeZone=
+#org.exolab.castor.jdo.defaultTimeZone=GMT-8:00
+
+# List of TxSynchronizeable implementations:
+#
+#org.exolab.castor.persist.TxSynchronizable=
+
+# Sets the buffer size in bytes for fetching LOBs (this is dependent upon
+# the JDBC driver implementation). The value below == 5k.
+#
+org.exolab.castor.jdo.lobBufferSize=5120
+
+# True if database configuration should be initalization
+# when loading it (default: true).
+#
+#org.exolab.castor.jdo.DatabaseInitializeAtLoad=true
+
+# True if proxy classes should be used for JDBC connections and
+# prepared statements.
+# Defaults to true.
+#
+org.exolab.castor.persist.useProxies=false
+
+# MappingLoader implementations:
+#
+org.castor.mapping.loaderFactories=\
+ org.castor.mapping.JDOMappingLoaderFactory,\
+ org.castor.mapping.XMLMappingLoaderFactory
+
+# Cache implementations:
+#
+org.castor.cache.Factories=\
+ org.castor.cache.simple.NoCacheFactory,\
+ org.castor.cache.simple.TimeLimitedFactory,\
+ org.castor.cache.simple.CountLimitedFactory,\
+ org.castor.cache.simple.UnlimitedFactory,\
+ org.castor.cache.distributed.FKCacheFactory,\
+ org.castor.cache.distributed.JcsCacheFactory,\
+ org.castor.cache.distributed.JCacheFactory,\
+ org.castor.cache.distributed.CoherenceCacheFactory,\
+ org.castor.cache.distributed.OsCacheFactory,\
+ org.castor.cache.hashbelt.FIFOHashbeltFactory,\
+ org.castor.cache.hashbelt.LRUHashbeltFactory,\
+ org.castor.cache.distributed.EHCacheFactory,\
+ org.castor.cache.distributed.GigaspacesCacheFactory
+
+# TransactionManagerFactory implementations:
+#
+org.castor.transactionmanager.Factories=\
+ org.castor.transactionmanager.WebSphereTransactionManagerFactory,\
+ org.castor.transactionmanager.WebSphere5TransactionManagerFactory,\
+ org.castor.transactionmanager.WebSphere51TransactionManagerFactory,\
+ org.castor.transactionmanager.LocalTransactionManagerFactory,\
+ org.castor.transactionmanager.JNDIENCTransactionManagerFactory,\
+ org.castor.transactionmanager.JOTMTransactionManagerFactory
+
+# Selects whether the TransactionManager should be initialized at registration,
+# or lazily when requested for the first time.
+# Defaults to false.
+#
+org.castor.transactionmanager.InitializeAtRegistration=false
+
+# Instructs Castor JDO to use the JDBC 3.0-specific features to obtain
+# the generated value of an identity column.
+# Defaults to false.
+#
+org.castor.jdo.use.jdbc30=false
+
+# Specifies whether to use ANSI-compliant SQL for MS SQL Server.
+# Defaults to false.
+#
+org.exolab.castor.jdo.sqlserver.ansi-compliant=false
+
+# Specifyies whether the ClassDescriptorResolver should (automatically) search
+# for and consult with package mapping files (.castor.xml) to retrieve class
+# descriptor information; on by default.
+# Defaults to true.
+#
+#org.exolab.castor.xml.loadPackageMappings=false
-/*\r
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2)\r
- * Copyright (C) 2014 The Jalview Authors\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\r
- * 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\r
- * along with Jalview. If not, see <http://www.gnu.org/licenses/>.\r
- * The Jalview Authors are detailed in the 'AUTHORS' file.\r
- */\r
-package jalview.datamodel;\r
-\r
-import java.util.List;\r
-import java.util.Vector;\r
-\r
-import fr.orsay.lri.varna.models.rna.RNA;\r
-\r
-/**\r
- * DOCUMENT ME!\r
- * \r
- * @author $author$\r
- * @version $Revision$\r
- */\r
-public interface SequenceI\r
-{\r
- /**\r
- * Set the display name for the sequence\r
- * \r
- * @param name\r
- */\r
- public void setName(String name);\r
-\r
- /**\r
- * Get the display name\r
- */\r
- public String getName();\r
-\r
- /**\r
- * Set start position of first non-gapped symbol in sequence\r
- * \r
- * @param start\r
- * new start position\r
- */\r
- public void setStart(int start);\r
-\r
- /**\r
- * get start position of first non-gapped residue in sequence\r
- * \r
- * @return\r
- */\r
- public int getStart();\r
-\r
- /**\r
- * get the displayed id of the sequence\r
- * \r
- * @return true means the id will be returned in the form\r
- * DisplayName/Start-End\r
- */\r
- public String getDisplayId(boolean jvsuffix);\r
-\r
- /**\r
- * set end position for last residue in sequence\r
- * \r
- * @param end\r
- */\r
- public void setEnd(int end);\r
-\r
- /**\r
- * get end position for last residue in sequence getEnd()>getStart() unless\r
- * sequence only consists of gap characters\r
- * \r
- * @return\r
- */\r
- public int getEnd();\r
-\r
- /**\r
- * @return length of sequence including gaps\r
- * \r
- */\r
- public int getLength();\r
-\r
- /**\r
- * Replace the sequence with the given string\r
- * \r
- * @param sequence\r
- * new sequence string\r
- */\r
- public void setSequence(String sequence);\r
-\r
- /**\r
- * @return sequence as string\r
- */\r
- public String getSequenceAsString();\r
-\r
- /**\r
- * get a range on the sequence as a string\r
- * \r
- * @param start\r
- * position relative to start of sequence including gaps (from 0)\r
- * @param end\r
- * position relative to start of sequence including gaps (from 0)\r
- * \r
- * @return String containing all gap and symbols in specified range\r
- */\r
- public String getSequenceAsString(int start, int end);\r
-\r
- /**\r
- * Get the sequence as a character array\r
- * \r
- * @return seqeunce and any gaps\r
- */\r
- public char[] getSequence();\r
-\r
- /**\r
- * get stretch of sequence characters in an array\r
- * \r
- * @param start\r
- * absolute index into getSequence()\r
- * @param end\r
- * exclusive index of last position in segment to be returned.\r
- * \r
- * @return char[max(0,end-start)];\r
- */\r
- public char[] getSequence(int start, int end);\r
-\r
- /**\r
- * create a new sequence object from start to end of this sequence\r
- * \r
- * @param start\r
- * int\r
- * @param end\r
- * int\r
- * @return SequenceI\r
- */\r
- public SequenceI getSubSequence(int start, int end);\r
-\r
- /**\r
- * DOCUMENT ME!\r
- * \r
- * @param i\r
- * DOCUMENT ME!\r
- * \r
- * @return DOCUMENT ME!\r
- */\r
- public char getCharAt(int i);\r
-\r
- /**\r
- * DOCUMENT ME!\r
- * \r
- * @param desc\r
- * DOCUMENT ME!\r
- */\r
- public void setDescription(String desc);\r
-\r
- /**\r
- * DOCUMENT ME!\r
- * \r
- * @return DOCUMENT ME!\r
- */\r
- public String getDescription();\r
-\r
- /**\r
- * Return the alignment column for a sequence position * Return the alignment\r
- * position for a sequence position\r
- * \r
- * @param pos\r
- * lying from start to end\r
- * \r
- * @return aligned column for residue (0 if residue is upstream from\r
- * alignment, -1 if residue is downstream from alignment) note.\r
- * Sequence object returns sequence.getEnd() for positions upstream\r
- * currently. TODO: change sequence for\r
- * assert(findIndex(seq.getEnd()+1)==-1) and fix incremental bugs\r
- * \r
- */\r
- public int findIndex(int pos);\r
-\r
- /**\r
- * Returns the sequence position for an alignment position\r
- * \r
- * @param i\r
- * column index in alignment (from 1)\r
- * \r
- * @return residue number for residue (left of and) nearest ith column\r
- */\r
- public int findPosition(int i);\r
-\r
- /**\r
- * Returns an int array where indices correspond to each residue in the\r
- * sequence and the element value gives its position in the alignment\r
- * \r
- * @return int[SequenceI.getEnd()-SequenceI.getStart()+1] or null if no\r
- * residues in SequenceI object\r
- */\r
- public int[] gapMap();\r
-\r
- /**\r
- * Returns an int array where indices correspond to each position in sequence\r
- * char array and the element value gives the result of findPosition for that\r
- * index in the sequence.\r
- * \r
- * @return int[SequenceI.getLength()]\r
- */\r
- public int[] findPositionMap();\r
-\r
- /**\r
- * Delete a range of aligned sequence columns, creating a new dataset sequence\r
- * if necessary and adjusting start and end positions accordingly.\r
- * \r
- * @param i\r
- * first column in range to delete\r
- * @param j\r
- * last column in range to delete\r
- */\r
- public void deleteChars(int i, int j);\r
-\r
- /**\r
- * DOCUMENT ME!\r
- * \r
- * @param i\r
- * DOCUMENT ME!\r
- * @param c\r
- * DOCUMENT ME!\r
- */\r
- public void insertCharAt(int i, char c);\r
-\r
- /**\r
- * DOCUMENT ME!\r
- * \r
- * @param i\r
- * DOCUMENT ME!\r
- * @param c\r
- * DOCUMENT ME!\r
- */\r
- public void insertCharAt(int i, int length, char c);\r
-\r
- /**\r
- * DOCUMENT ME!\r
- * \r
- * @return DOCUMENT ME!\r
- */\r
- public SequenceFeature[] getSequenceFeatures();\r
-\r
- /**\r
- * DOCUMENT ME!\r
- * \r
- * @param v\r
- * DOCUMENT ME!\r
- */\r
- public void setSequenceFeatures(SequenceFeature[] features);\r
-\r
- /**\r
- * DOCUMENT ME!\r
- * \r
- * @param id\r
- * DOCUMENT ME!\r
- */\r
- public void setPDBId(Vector ids);\r
-\r
- /**\r
- * DOCUMENT ME!\r
- * \r
- * @return DOCUMENT ME!\r
- */\r
- public Vector getPDBId();\r
-\r
- /**\r
- * add entry to the vector of PDBIds, if it isn't in the list already\r
- * \r
- * @param entry\r
- */\r
- public void addPDBId(PDBEntry entry);\r
-\r
- /**\r
- * update the list of PDBEntrys to include any DBRefEntrys citing structural\r
- * databases\r
- * \r
- * @return true if PDBEntry list was modified\r
- */\r
- public boolean updatePDBIds();\r
-\r
- public String getVamsasId();\r
-\r
- public void setVamsasId(String id);\r
-\r
- public void setDBRef(DBRefEntry[] dbs);\r
-\r
- public DBRefEntry[] getDBRef();\r
-\r
- /**\r
- * add the given entry to the list of DBRefs for this sequence, or replace a\r
- * similar one if entry contains a map object and the existing one doesnt.\r
- * \r
- * @param entry\r
- */\r
- public void addDBRef(DBRefEntry entry);\r
-\r
- public void addSequenceFeature(SequenceFeature sf);\r
-\r
- public void deleteFeature(SequenceFeature sf);\r
-\r
- public void setDatasetSequence(SequenceI seq);\r
-\r
- public SequenceI getDatasetSequence();\r
-\r
- public AlignmentAnnotation[] getAnnotation();\r
-\r
- public void addAlignmentAnnotation(AlignmentAnnotation annotation);\r
-\r
- public void removeAlignmentAnnotation(AlignmentAnnotation annotation);\r
-\r
- /**\r
- * Derive a sequence (using this one's dataset or as the dataset)\r
- * \r
- * @return duplicate sequence with valid dataset sequence\r
- */\r
- public SequenceI deriveSequence();\r
-\r
- /**\r
- * set the array of associated AlignmentAnnotation for this sequenceI\r
- * \r
- * @param revealed\r
- */\r
- public void setAlignmentAnnotation(AlignmentAnnotation[] annotation);\r
-\r
- /**\r
- * Get one or more alignment annotations with a particular label.\r
- * \r
- * @param label\r
- * string which each returned annotation must have as a label.\r
- * @return null or array of annotations.\r
- */\r
- public AlignmentAnnotation[] getAnnotation(String label);\r
-\r
- /**\r
- * Return a list of any annotations which match the given calcId (source) and\r
- * label (type). Null values do not match.\r
- * \r
- * @param calcId\r
- * @param label\r
- * @return\r
- */\r
- public List<AlignmentAnnotation> getAlignmentAnnotations(String calcId,\r
- String label);\r
-\r
- /**\r
- * create a new dataset sequence (if necessary) for this sequence and sets\r
- * this sequence to refer to it. This call will move any features or\r
- * references on the sequence onto the dataset. It will also make a duplicate\r
- * of existing annotation rows for the dataset sequence, rather than relocate\r
- * them in order to preserve external references (since 2.8.2).\r
- * \r
- * @return dataset sequence for this sequence\r
- */\r
- public SequenceI createDatasetSequence();\r
-\r
- /**\r
- * Transfer any database references or annotation from entry under a sequence\r
- * mapping. <br/>\r
- * <strong>Note: DOES NOT transfer sequence associated alignment\r
- * annotation </strong><br/>\r
- * \r
- * @param entry\r
- * @param mp\r
- * null or mapping from entry's numbering to local start/end\r
- */\r
- public void transferAnnotation(SequenceI entry, Mapping mp);\r
-\r
- /**\r
- * @param index\r
- * The sequence index in the MSA\r
- */\r
- public void setIndex(int index);\r
-\r
- /**\r
- * @return The index of the sequence in the alignment\r
- */\r
- public int getIndex();\r
-\r
- /**\r
- * @return The RNA of the sequence in the alignment\r
- */\r
-\r
- public RNA getRNA();\r
-\r
- /**\r
- * @param rna\r
- * The RNA.\r
- */\r
- public void setRNA(RNA rna);\r
-\r
-}\r
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2)
+ * Copyright (C) 2014 The Jalview Authors
+ *
+ * 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/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
+package jalview.datamodel;
+
+import java.util.List;
+import java.util.Vector;
+
+import fr.orsay.lri.varna.models.rna.RNA;
+
+/**
+ * DOCUMENT ME!
+ *
+ * @author $author$
+ * @version $Revision$
+ */
+public interface SequenceI
+{
+ /**
+ * Set the display name for the sequence
+ *
+ * @param name
+ */
+ public void setName(String name);
+
+ /**
+ * Get the display name
+ */
+ public String getName();
+
+ /**
+ * Set start position of first non-gapped symbol in sequence
+ *
+ * @param start
+ * new start position
+ */
+ public void setStart(int start);
+
+ /**
+ * get start position of first non-gapped residue in sequence
+ *
+ * @return
+ */
+ public int getStart();
+
+ /**
+ * get the displayed id of the sequence
+ *
+ * @return true means the id will be returned in the form
+ * DisplayName/Start-End
+ */
+ public String getDisplayId(boolean jvsuffix);
+
+ /**
+ * set end position for last residue in sequence
+ *
+ * @param end
+ */
+ public void setEnd(int end);
+
+ /**
+ * get end position for last residue in sequence getEnd()>getStart() unless
+ * sequence only consists of gap characters
+ *
+ * @return
+ */
+ public int getEnd();
+
+ /**
+ * @return length of sequence including gaps
+ *
+ */
+ public int getLength();
+
+ /**
+ * Replace the sequence with the given string
+ *
+ * @param sequence
+ * new sequence string
+ */
+ public void setSequence(String sequence);
+
+ /**
+ * @return sequence as string
+ */
+ public String getSequenceAsString();
+
+ /**
+ * get a range on the sequence as a string
+ *
+ * @param start
+ * position relative to start of sequence including gaps (from 0)
+ * @param end
+ * position relative to start of sequence including gaps (from 0)
+ *
+ * @return String containing all gap and symbols in specified range
+ */
+ public String getSequenceAsString(int start, int end);
+
+ /**
+ * Get the sequence as a character array
+ *
+ * @return seqeunce and any gaps
+ */
+ public char[] getSequence();
+
+ /**
+ * get stretch of sequence characters in an array
+ *
+ * @param start
+ * absolute index into getSequence()
+ * @param end
+ * exclusive index of last position in segment to be returned.
+ *
+ * @return char[max(0,end-start)];
+ */
+ public char[] getSequence(int start, int end);
+
+ /**
+ * create a new sequence object from start to end of this sequence
+ *
+ * @param start
+ * int
+ * @param end
+ * int
+ * @return SequenceI
+ */
+ public SequenceI getSubSequence(int start, int end);
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param i
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public char getCharAt(int i);
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param desc
+ * DOCUMENT ME!
+ */
+ public void setDescription(String desc);
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public String getDescription();
+
+ /**
+ * Return the alignment column for a sequence position * Return the alignment
+ * position for a sequence position
+ *
+ * @param pos
+ * lying from start to end
+ *
+ * @return aligned column for residue (0 if residue is upstream from
+ * alignment, -1 if residue is downstream from alignment) note.
+ * Sequence object returns sequence.getEnd() for positions upstream
+ * currently. TODO: change sequence for
+ * assert(findIndex(seq.getEnd()+1)==-1) and fix incremental bugs
+ *
+ */
+ public int findIndex(int pos);
+
+ /**
+ * Returns the sequence position for an alignment position
+ *
+ * @param i
+ * column index in alignment (from 1)
+ *
+ * @return residue number for residue (left of and) nearest ith column
+ */
+ public int findPosition(int i);
+
+ /**
+ * Returns an int array where indices correspond to each residue in the
+ * sequence and the element value gives its position in the alignment
+ *
+ * @return int[SequenceI.getEnd()-SequenceI.getStart()+1] or null if no
+ * residues in SequenceI object
+ */
+ public int[] gapMap();
+
+ /**
+ * Returns an int array where indices correspond to each position in sequence
+ * char array and the element value gives the result of findPosition for that
+ * index in the sequence.
+ *
+ * @return int[SequenceI.getLength()]
+ */
+ public int[] findPositionMap();
+
+ /**
+ * Delete a range of aligned sequence columns, creating a new dataset sequence
+ * if necessary and adjusting start and end positions accordingly.
+ *
+ * @param i
+ * first column in range to delete
+ * @param j
+ * last column in range to delete
+ */
+ public void deleteChars(int i, int j);
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param i
+ * DOCUMENT ME!
+ * @param c
+ * DOCUMENT ME!
+ */
+ public void insertCharAt(int i, char c);
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param i
+ * DOCUMENT ME!
+ * @param c
+ * DOCUMENT ME!
+ */
+ public void insertCharAt(int i, int length, char c);
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public SequenceFeature[] getSequenceFeatures();
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param v
+ * DOCUMENT ME!
+ */
+ public void setSequenceFeatures(SequenceFeature[] features);
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param id
+ * DOCUMENT ME!
+ */
+ public void setPDBId(Vector ids);
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public Vector getPDBId();
+
+ /**
+ * add entry to the vector of PDBIds, if it isn't in the list already
+ *
+ * @param entry
+ */
+ public void addPDBId(PDBEntry entry);
+
+ /**
+ * update the list of PDBEntrys to include any DBRefEntrys citing structural
+ * databases
+ *
+ * @return true if PDBEntry list was modified
+ */
+ public boolean updatePDBIds();
+
+ public String getVamsasId();
+
+ public void setVamsasId(String id);
+
+ public void setDBRef(DBRefEntry[] dbs);
+
+ public DBRefEntry[] getDBRef();
+
+ /**
+ * add the given entry to the list of DBRefs for this sequence, or replace a
+ * similar one if entry contains a map object and the existing one doesnt.
+ *
+ * @param entry
+ */
+ public void addDBRef(DBRefEntry entry);
+
+ public void addSequenceFeature(SequenceFeature sf);
+
+ public void deleteFeature(SequenceFeature sf);
+
+ public void setDatasetSequence(SequenceI seq);
+
+ public SequenceI getDatasetSequence();
+
+ public AlignmentAnnotation[] getAnnotation();
+
+ public void addAlignmentAnnotation(AlignmentAnnotation annotation);
+
+ public void removeAlignmentAnnotation(AlignmentAnnotation annotation);
+
+ /**
+ * Derive a sequence (using this one's dataset or as the dataset)
+ *
+ * @return duplicate sequence with valid dataset sequence
+ */
+ public SequenceI deriveSequence();
+
+ /**
+ * set the array of associated AlignmentAnnotation for this sequenceI
+ *
+ * @param revealed
+ */
+ public void setAlignmentAnnotation(AlignmentAnnotation[] annotation);
+
+ /**
+ * Get one or more alignment annotations with a particular label.
+ *
+ * @param label
+ * string which each returned annotation must have as a label.
+ * @return null or array of annotations.
+ */
+ public AlignmentAnnotation[] getAnnotation(String label);
+
+ /**
+ * Return a list of any annotations which match the given calcId (source) and
+ * label (type). Null values do not match.
+ *
+ * @param calcId
+ * @param label
+ * @return
+ */
+ public List<AlignmentAnnotation> getAlignmentAnnotations(String calcId,
+ String label);
+
+ /**
+ * create a new dataset sequence (if necessary) for this sequence and sets
+ * this sequence to refer to it. This call will move any features or
+ * references on the sequence onto the dataset. It will also make a duplicate
+ * of existing annotation rows for the dataset sequence, rather than relocate
+ * them in order to preserve external references (since 2.8.2).
+ *
+ * @return dataset sequence for this sequence
+ */
+ public SequenceI createDatasetSequence();
+
+ /**
+ * Transfer any database references or annotation from entry under a sequence
+ * mapping. <br/>
+ * <strong>Note: DOES NOT transfer sequence associated alignment
+ * annotation </strong><br/>
+ *
+ * @param entry
+ * @param mp
+ * null or mapping from entry's numbering to local start/end
+ */
+ public void transferAnnotation(SequenceI entry, Mapping mp);
+
+ /**
+ * @param index
+ * The sequence index in the MSA
+ */
+ public void setIndex(int index);
+
+ /**
+ * @return The index of the sequence in the alignment
+ */
+ public int getIndex();
+
+ /**
+ * @return The RNA of the sequence in the alignment
+ */
+
+ public RNA getRNA();
+
+ /**
+ * @param rna
+ * The RNA.
+ */
+ public void setRNA(RNA rna);
+
+}
-/*\r
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2)\r
- * Copyright (C) 2014 The Jalview Authors\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\r
- * 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\r
- * along with Jalview. If not, see <http://www.gnu.org/licenses/>.\r
- * The Jalview Authors are detailed in the 'AUTHORS' file.\r
- */\r
-package jalview.ws;\r
-\r
-import static org.junit.Assert.*;\r
-import jalview.datamodel.AlignmentI;\r
-import jalview.datamodel.SequenceI;\r
-import jalview.ws.seqfetcher.DbSourceProxy;\r
-\r
-import java.util.List;\r
-\r
-import org.junit.Before;\r
-import org.junit.Test;\r
-\r
-public class PDBSequenceFetcherTest\r
-{\r
-\r
- SequenceFetcher sf;\r
-\r
- @Before\r
- public void setUp() throws Exception\r
- {\r
- sf = new SequenceFetcher(false);\r
- }\r
-\r
- @Test\r
- public void testRnaSeqRetrieve() throws Exception\r
- {\r
- List<DbSourceProxy> sps = sf.getSourceProxy("PDB");\r
- AlignmentI response = sps.get(0).getSequenceRecords("2GIS");\r
- assertTrue(response != null);\r
- assertTrue(response.getHeight() == 1);\r
- for (SequenceI sq : response.getSequences())\r
- {\r
- assertTrue("No annotation transfered to sequence.",\r
- sq.getAnnotation().length > 0);\r
- assertTrue("No PDBEntry on sequence.", sq.getPDBId().size() > 0);\r
- assertTrue("No RNA annotation on sequence.", sq.getRNA() != null);\r
- }\r
- }\r
-\r
-}\r
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2)
+ * Copyright (C) 2014 The Jalview Authors
+ *
+ * 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/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
+package jalview.ws;
+
+import static org.junit.Assert.*;
+import jalview.datamodel.AlignmentI;
+import jalview.datamodel.SequenceI;
+import jalview.ws.seqfetcher.DbSourceProxy;
+
+import java.util.List;
+
+import org.junit.Before;
+import org.junit.Test;
+
+public class PDBSequenceFetcherTest
+{
+
+ SequenceFetcher sf;
+
+ @Before
+ public void setUp() throws Exception
+ {
+ sf = new SequenceFetcher(false);
+ }
+
+ @Test
+ public void testRnaSeqRetrieve() throws Exception
+ {
+ List<DbSourceProxy> sps = sf.getSourceProxy("PDB");
+ AlignmentI response = sps.get(0).getSequenceRecords("2GIS");
+ assertTrue(response != null);
+ assertTrue(response.getHeight() == 1);
+ for (SequenceI sq : response.getSequences())
+ {
+ assertTrue("No annotation transfered to sequence.",
+ sq.getAnnotation().length > 0);
+ assertTrue("No PDBEntry on sequence.", sq.getPDBId().size() > 0);
+ assertTrue("No RNA annotation on sequence.", sq.getRNA() != null);
+ }
+ }
+
+}
-help2Website.class\r
-getJavaVersion.class\r
+help2Website.class
+getJavaVersion.class
# You should have received a copy of the GNU General Public License along with Jalview. If not, see <http://www.gnu.org/licenses/>.
# The Jalview Authors are detailed in the 'AUTHORS' file.
##
- \r
-# Splits a concatenated set of Stockholm Files into several individual files.\r
-\r
-use strict;\r
-use FileHandle;\r
-my $ac;\r
-my $lns="";\r
-my $fh;\r
-while (<>) {\r
- if ($_=~m!^//!) {\r
- $fh->print("//\n");\r
- $fh->close();\r
- $ac = undef;\r
- $lns = "";\r
- } else {\r
- if ($_=~/GF\s+AC\s+([0-9.RPF]+)/) { \r
- $ac=$1; \r
- ($fh=new FileHandle)->open(">$ac.stk") or die("Couldn't open file '$ac.stk'"); \r
- $lns=~/^. STOCKHOLM 1.0/ or $fh->print("# STOCKHOLM 1.0\n");\r
- };\r
- if (defined($fh)) {\r
- if (defined $lns) { \r
- $fh->print($lns); $lns=undef; }\r
- \r
- $fh->print($_);\r
- } else {\r
- $lns .= $_;\r
- }\r
- }\r
-}\r
+
+# Splits a concatenated set of Stockholm Files into several individual files.
+
+use strict;
+use FileHandle;
+my $ac;
+my $lns="";
+my $fh;
+while (<>) {
+ if ($_=~m!^//!) {
+ $fh->print("//\n");
+ $fh->close();
+ $ac = undef;
+ $lns = "";
+ } else {
+ if ($_=~/GF\s+AC\s+([0-9.RPF]+)/) {
+ $ac=$1;
+ ($fh=new FileHandle)->open(">$ac.stk") or die("Couldn't open file '$ac.stk'");
+ $lns=~/^. STOCKHOLM 1.0/ or $fh->print("# STOCKHOLM 1.0\n");
+ };
+ if (defined($fh)) {
+ if (defined $lns) {
+ $fh->print($lns); $lns=undef; }
+
+ $fh->print($_);
+ } else {
+ $lns .= $_;
+ }
+ }
+}