Cath Code;cath_code;String;g2;50;400;95;false;false
Tax Id;tax_id;String;g2;50;400;95;false;false
Tax Query;tax_query;String;g2;50;400;95;false;false
-Interacting Entity Id;interacting_entity_id;String;g2;50;400;95;false;false
Interacting Molecules;interacting_molecules;String;g6;50;400;95;false;false
Pubmed Id;pubmed_id;int;g2;50;400;95;false;false
Status;status;String;g6;50;400;95;false;false
--- /dev/null
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ 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.
+ */
+
+tdbeacons_data_columns
+#
+_group.id
+_group.name
+_group.sort_order
+g1;ModelInfo;1
+g2;Quality;2
+g3;Miscellaneous;3
+
+#
+_data_column.primary_key;model_url
+_data_column.default_response_page_size;100
+#
+_data_column.name
+_data_column.code
+_data_column.group_id
+_data_column.data_type
+_data_column.min_col_width
+_data_column.max_col_width
+_data_column.preferred_col_width
+_data_column.is_shown_by_default
+_data_column.is_searchable
+Model id;model_identifier;String;g3;80;150;85;true;false
+Sequence;aligned_sequence;String;g3;80;150;85;false;false
+Provider;provider;String;g1;80;150;85;true;false
+Model Category;model_category;String;g1;80;150;85;true;false
+Uniprot Id;id;String;g1;80;150;85;false;false
+Uniprot Start;uniprot_start;Integer;g1;80;150;85;true;false
+Uniprot End;uniprot_end;Integer;g1;80;150;85;true;false
+Resolution;resolution;double;g2;80;150;85;true;false
+Qmean;qmean_avg_local_score;double;g2;100;150;105;true;false
+Coverage;coverage;double;g2;80;150;85;true;false
+Sequence Identity;sequence_identity;Float;g2;80;150;85;false;false
+Created Date;created;string;g3;80;150;85;true;false
+UniProt Accession;uniprot_accession;String;g1;50;400;95;false;true
+Entry Name;entry_name;String;g3;100;150;105;true;false
+Url;model_url;String;g3;100;150;105;true;false
</xs:documentation>
</xs:annotation>
</xs:attribute>
+ <xs:attribute name="canonical" type="xs:boolean" default="false">
+ <xs:annotation>
+ <xs:documentation>
+ true for the representative accession for databases where multiple accessions map to the same entry (eg. Uniprot)
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
int sourceKey = Integer.MIN_VALUE;
String canonicalSourceName;
+
+ boolean isCanonicalAccession;
/*
* maps from associated sequence to the database sequence's coordinate system
*/
public DBRefEntry(String source, String version, String accessionId)
{
- this(source, version, accessionId, null);
+ this(source, version, accessionId, null,false);
}
/**
*
* @param source
+ * may not be null
+ * @param version
+ * may be null
+ * @param accessionId
+ * may be null
+ */
+ public DBRefEntry(String source, String version, String accessionId, Mapping map)
+ {
+ this(source, version, accessionId, map,false);
+ }
+ /**
+ *
+ * @param source
* canonical source (turned to uppercase; cannot be null)
* @param version
* (source dependent version string or null)
* numbering or null)
*/
public DBRefEntry(String source, String version, String accessionId,
- Mapping map)
+ Mapping map,boolean isCanonical)
{
this.source = source.toUpperCase();
setVersion(version);
this.accessionId = accessionId;
this.map = map;
+ this.isCanonicalAccession=isCanonical;
}
/**
public String getCanonicalSourceName() {
return (canonicalSourceName == null ? (canonicalSourceName = DBRefUtils.getCanonicalName(this.source)) : canonicalSourceName);
}
+
+ /**
+ *
+ * @param canonical
+ */
+ public void setCanonical(boolean canonical)
+ {
+ isCanonicalAccession = canonical;
+ }
+ /**
+ *
+ * @return true if this is the primary canonical accession for the database source
+ */
+ public boolean isCanonical()
+ {
+ // TODO Auto-generated method stub
+ return isCanonicalAccession;
+ }
}
}
return true;
}
+
+
+ private static final String RETRIEVE_FROM="RETRIEVE_FROM";
+ /**
+ * Permanent URI for retrieving the original structure data
+ * @param urlStr
+ */
+ public void setRetrievalUrl(String urlStr)
+ {
+ setProperty(RETRIEVE_FROM, urlStr);
+ }
+ /**
+ * get the Permanent URI for retrieving the original structure data
+ */
+ public String getRetrievalUrl()
+ {
+ return (String) getProperty(RETRIEVE_FROM);
+ }
+
+ public boolean hasRetrievalUrl()
+ {
+ return (properties!=null && properties.containsKey(RETRIEVE_FROM));
+ }
}
package jalview.fts.api;
import jalview.fts.api.FTSDataColumnI.FTSDataColumnGroupI;
+import jalview.fts.core.FTSDataColumnPreferences.PreferenceSource;
import jalview.fts.core.FTSRestRequest;
import jalview.fts.core.FTSRestResponse;
/**
* Fetch index of the primary key column for the dynamic table
- *
+ * TODO: consider removing 'hasRefSeq' - never used in code
* @param wantedFields
* the available table columns
* @param hasRefSeq
* @return the default response page size
*/
public int getDefaultResponsePageSize();
+
+ public String[] getPreferencesColumnsFor(PreferenceSource source);
}
--- /dev/null
+package jalview.fts.api;
+
+import java.util.Collection;
+
+public interface StructureFTSRestClientI
+{
+
+ Collection<FTSDataColumnI> getAllDefaultDisplayedStructureDataColumns();
+
+}
import jalview.fts.api.FTSDataColumnI;
import jalview.fts.api.FTSDataColumnI.FTSDataColumnGroupI;
import jalview.fts.api.FTSRestClientI;
+import jalview.fts.api.StructureFTSRestClientI;
import jalview.fts.service.pdb.PDBFTSRestClient;
import java.util.ArrayList;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.TableModel;
import javax.swing.table.TableRowSorter;
-
+/**
+ * Helps render GUI allowing control of which columns to show for entries returned from an FTS query.
+ * TODO: push down FTSClient specific code
+ *
+ * @author tcofoegbu
+ *
+ */
@SuppressWarnings("serial")
public class FTSDataColumnPreferences extends JScrollPane
{
if (source.equals(PreferenceSource.STRUCTURE_CHOOSER)
|| source.equals(PreferenceSource.PREFERENCES))
{
- structSummaryColumns = ((PDBFTSRestClient) ftsRestClient)
+ structSummaryColumns = ((StructureFTSRestClientI) ftsRestClient)
.getAllDefaultDisplayedStructureDataColumns();
}
allFTSDataColumns.addAll(ftsRestClient.getAllFTSDataColumns());
this.getViewport().add(tbl_FTSDataColumnPrefs);
this.currentSource = source;
- String[] columnNames = null;
- switch (source)
- {
- case SEARCH_SUMMARY:
- columnNames = new String[] { "", "Display", "Group" };
- break;
- case STRUCTURE_CHOOSER:
- columnNames = new String[] { "", "Display", "Group" };
- break;
- case PREFERENCES:
- columnNames = new String[] { "PDB Field", "Show in search summary",
- "Show in structure summary" };
- break;
- default:
- break;
- }
+ String[] columnNames = ftsRestClient.getPreferencesColumnsFor(source);
- Object[][] data = new Object[allFTSDataColumns.size() - 1][3];
+ Object[][] data = new Object[allFTSDataColumns.size()][3];
int x = 0;
for (FTSDataColumnI field : allFTSDataColumns)
- {
+ {
+ //System.out.println("allFTSDataColumns==" + allFTSDataColumns);
if (field.getName().equalsIgnoreCase("all"))
{
continue;
data[x++] = new Object[] { ftsRestClient
.getAllDefaultDisplayedFTSDataColumns().contains(field),
field.getName(), field.getGroup() };
+ //System.out.println(" PUIS " + field.getName() + " ET AUSSI " + field.getGroup() + "X = " + x);
break;
case STRUCTURE_CHOOSER:
data[x++] = new Object[] { structSummaryColumns.contains(field),
import jalview.fts.api.FTSDataColumnI;
import jalview.fts.api.FTSDataColumnI.FTSDataColumnGroupI;
+import jalview.fts.core.FTSDataColumnPreferences.PreferenceSource;
import jalview.fts.api.FTSRestClientI;
/**
return defaultResponsePageSize;
}
+ @Override
+ public String[] getPreferencesColumnsFor(PreferenceSource source)
+ {
+ String[] columnNames = null;
+ switch (source)
+ {
+ case SEARCH_SUMMARY:
+ columnNames = new String[] { "", "Display", "Group" };
+ break;
+ default:
+ // non structure sources don't return any other kind of preferences columns
+ break;
+ }
+ return columnNames;
+ }
}
public class FTSRestResponse
{
private int numberOfItemsFound;
-
+
private String responseTime;
private Collection<FTSData> searchSummary;
--- /dev/null
+package jalview.fts.service.alphafold;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+import jalview.datamodel.DBRefEntry;
+import jalview.datamodel.DBRefSource;
+import jalview.datamodel.SequenceI;
+import jalview.fts.api.FTSData;
+import jalview.fts.api.FTSDataColumnI;
+import jalview.fts.core.FTSRestRequest;
+import jalview.util.DBRefUtils;
+import jalview.util.HttpUtils;
+import jalview.ws.dbsources.EBIAlfaFold;
+
+public class AlphafoldRestClient
+{
+
+ /**
+ * turns a uniprot ID into a fake alphafold entry for the structure chooser -
+ * fakes PDB fields in response
+ *
+ * @param UniprotID
+ * @return null or an FTS Record (if alphafold thinks it has a structure)
+ */
+ public static List<FTSData> getFTSData(// Map<String, Object> pdbJsonDoc,
+ FTSRestRequest request)
+ {
+ List<FTSData> records = new ArrayList<FTSData>();
+ String primaryKey = null;
+
+ Object[] summaryRowData;
+
+ SequenceI associatedSequence;
+
+ Collection<FTSDataColumnI> diplayFields = request.getWantedFields();
+ SequenceI associatedSeq = request.getAssociatedSequence();
+
+ for (DBRefEntry upref : DBRefUtils
+ .selectRefs(associatedSeq.getPrimaryDBRefs(), new String[]
+ { DBRefSource.UNIPROT }))
+ {
+ String alphaFoldId = "AF-" + upref.getAccessionId() + "-F1";
+ try
+ {
+ String urls = EBIAlfaFold.getAlphaFoldCifDownloadUrl(alphaFoldId);
+ URL url = new URL(urls);
+ if (!HttpUtils.checkUrlAvailable(url, 50))
+ {
+ continue;
+ }
+ } catch (Exception mfe)
+ {
+ jalview.bin.Cache.log.debug("Exception accessing urls", mfe);
+ continue;
+ }
+ int colCounter = 0;
+ summaryRowData = new Object[(associatedSeq != null)
+ ? diplayFields.size() + 1
+ : diplayFields.size()];
+ if (associatedSeq != null)
+ {
+ associatedSequence = associatedSeq;
+ summaryRowData[0] = associatedSequence;
+ colCounter = 1;
+ }
+
+ for (FTSDataColumnI field : diplayFields)
+ {
+ String fieldData = "alphafold";// (pdbJsonDoc.get(field.getCode()) ==
+ // null) ? ""
+ // : pdbJsonDoc.get(field.getCode()).toString();
+ if (field.isPrimaryKeyColumn())
+ {
+ primaryKey = alphaFoldId;
+ summaryRowData[colCounter++] = alphaFoldId;
+ }
+ else if (fieldData == null || fieldData.isEmpty())
+ {
+ summaryRowData[colCounter++] = null;
+ }
+ else
+ {
+ try
+ {
+ summaryRowData[colCounter++] = (field.getDataType()
+ .getDataTypeClass() == Integer.class)
+ ? 1
+ : (field.getDataType()
+ .getDataTypeClass() == Double.class)
+ ? 1.3131313
+ : "AlphaFold clarity";
+ } catch (Exception e)
+ {
+ e.printStackTrace();
+ System.out.println("offending value:" + fieldData);
+ }
+ }
+ }
+
+ final String primaryKey1 = primaryKey;
+
+ final Object[] summaryRowData1 = summaryRowData;
+ records.add(new FTSData()
+ {
+ @Override
+ public Object[] getSummaryData()
+ {
+ return summaryRowData1;
+ }
+
+ @Override
+ public Object getPrimaryKey()
+ {
+ return primaryKey1;
+ }
+
+ /**
+ * Returns a string representation of this object;
+ */
+ @Override
+ public String toString()
+ {
+ StringBuilder summaryFieldValues = new StringBuilder();
+ for (Object summaryField : summaryRowData1)
+ {
+ summaryFieldValues.append(
+ summaryField == null ? " " : summaryField.toString())
+ .append("\t");
+ }
+ return summaryFieldValues.toString();
+ }
+
+ /**
+ * Returns hash code value for this object
+ */
+ @Override
+ public int hashCode()
+ {
+ return Objects.hash(primaryKey1, this.toString());
+ }
+
+ @Override
+ public boolean equals(Object that)
+ {
+ return this.toString().equals(that.toString());
+ }
+ });
+ }
+ return records;
+ }
+}
import jalview.fts.api.FTSData;
import jalview.fts.api.FTSDataColumnI;
import jalview.fts.api.FTSRestClientI;
+import jalview.fts.api.StructureFTSRestClientI;
+import jalview.fts.core.FTSDataColumnPreferences;
+import jalview.fts.core.FTSDataColumnPreferences.PreferenceSource;
import jalview.fts.core.FTSRestClient;
import jalview.fts.core.FTSRestRequest;
import jalview.fts.core.FTSRestResponse;
+import jalview.fts.service.alphafold.AlphafoldRestClient;
import jalview.util.JSONUtils;
import jalview.util.MessageManager;
import jalview.util.Platform;
*
* @author tcnofoegbu
*/
-public class PDBFTSRestClient extends FTSRestClient
+public class PDBFTSRestClient extends FTSRestClient implements StructureFTSRestClientI
{
private static FTSRestClientI instance = null;
URI uri = webResource.getURI();
- // System.out.println(uri);
+ System.out.println(uri);
// Execute the REST request
ClientResponse clientResponse = webResource
Map<String, Object> jsonObj = null;
String responseString = null;
- // System.out.println("query >>>>>>> " + pdbRestRequest.toString());
+ System.out.println("query >>>>>>> " + pdbRestRequest.toString());
// Check the response status and report exception if one occurs
int responseStatus = clientResponse.getStatus();
.get("QTime").toString();
int numFound = Integer
.valueOf(pdbResponse.get("numFound").toString());
+ List<Object> docs = (List<Object>) pdbResponse.get("docs");
+ // add in any alphafold bits at the top
+ result = AlphafoldRestClient.getFTSData(pdbRestRequest);
if (numFound > 0)
{
- result = new ArrayList<>();
- List<Object> docs = (List<Object>) pdbResponse.get("docs");
+
for (Iterator<Object> docIter = docs.iterator(); docIter
.hasNext();)
{
Map<String, Object> doc = (Map<String, Object>) docIter.next();
result.add(getFTSData(doc, pdbRestRequest));
}
- searchResult.setNumberOfItemsFound(numFound);
- searchResult.setResponseTime(queryTime);
- searchResult.setSearchSummary(result);
}
+ searchResult.setNumberOfItemsFound(result.size());
+ searchResult.setResponseTime(queryTime);
+ searchResult.setSearchSummary(result);
+
} catch (ParseException e)
{
e.printStackTrace();
for (FTSDataColumnI field : diplayFields)
{
+ //System.out.println("Field " + field);
String fieldData = (pdbJsonDoc.get(field.getCode()) == null) ? ""
: pdbJsonDoc.get(field.getCode()).toString();
+ //System.out.println("Field Data : " + fieldData);
if (field.isPrimaryKeyColumn())
{
primaryKey = fieldData;
}
private Collection<FTSDataColumnI> allDefaultDisplayedStructureDataColumns;
-
+ @Override
public Collection<FTSDataColumnI> getAllDefaultDisplayedStructureDataColumns()
{
if (allDefaultDisplayedStructureDataColumns == null
}
return allDefaultDisplayedStructureDataColumns;
}
-
-
+ @Override
+ public String[] getPreferencesColumnsFor(PreferenceSource source) {
+ String[] columnNames = null;
+ switch (source)
+ {
+ case SEARCH_SUMMARY:
+ columnNames = new String[] { "", "Display", "Group" };
+ break;
+ case STRUCTURE_CHOOSER:
+ columnNames = new String[] { "", "Display", "Group" };
+ break;
+ case PREFERENCES:
+ columnNames = new String[] { "PDB Field", "Show in search summary",
+ "Show in structure summary" };
+ break;
+ default:
+ break;
+ }
+ return columnNames;
+ }
}
--- /dev/null
+/tdbresttest2.java
--- /dev/null
+package jalview.fts.service.threedbeacons;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.net.HttpURLConnection;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+
+import javax.swing.SwingUtilities;
+
+import org.json.JSONArray;
+import org.json.JSONObject;
+
+import jalview.bin.Cache;
+import jalview.datamodel.AlignmentI;
+import jalview.fts.api.FTSDataColumnI;
+import jalview.fts.api.FTSRestClientI;
+import jalview.fts.core.FTSRestRequest;
+import jalview.fts.core.FTSRestResponse;
+import jalview.fts.core.GFTSPanel;
+import jalview.fts.service.pdb.PDBFTSRestClient;
+import jalview.gui.SequenceFetcher;
+import jalview.io.DataSourceType;
+import jalview.io.FileFormat;
+import jalview.io.FileFormatI;
+import jalview.io.FileLoader;
+import jalview.io.FormatAdapter;
+import jalview.util.MessageManager;
+
+@SuppressWarnings("serial")
+public class TDBeaconsFTSPanel extends GFTSPanel
+{
+ private static String defaultFTSFrameTitle = MessageManager
+ .getString("label.pdb_sequence_fetcher");
+
+ private static Map<String, Integer> tempUserPrefs = new HashMap<>();
+
+ private static final String THREEDB_FTS_CACHE_KEY = "CACHE.THREEDB_FTS";
+
+ private static final String THREEDB_AUTOSEARCH = "FTS.THREEDB.AUTOSEARCH";
+
+ private static HttpURLConnection connection;
+
+ public TDBeaconsFTSPanel(SequenceFetcher fetcher)
+ {
+ // no ID retrieval option for TD Beacons just now
+ super(null);
+ pageLimit = TDBeaconsFTSRestClient.getInstance()
+ .getDefaultResponsePageSize();
+ this.seqFetcher = fetcher;
+ this.progressIndicator = (fetcher == null) ? null
+ : fetcher.getProgressIndicator();
+ }
+
+ @Override
+ public void searchAction(boolean isFreshSearch)
+ {
+ mainFrame.requestFocusInWindow();
+ if (isFreshSearch)
+ {
+ offSet = 0;
+ }
+ new Thread()
+ {
+ @Override
+ public void run()
+ {
+ reset();
+ boolean allowEmptySequence = false;
+ if (getTypedText().length() > 0)
+ {
+ setSearchInProgress(true);
+ long startTime = System.currentTimeMillis();
+
+ String searchTarget = ((FTSDataColumnI) cmb_searchTarget
+ .getSelectedItem()).getCode();
+ wantedFields = TDBeaconsFTSRestClient.getInstance()
+ .getAllDefaultDisplayedFTSDataColumns();
+ String searchTerm = getTypedText(); // to add : decodeSearchTerm
+
+ FTSRestRequest request = new FTSRestRequest();
+ request.setAllowEmptySeq(allowEmptySequence);
+ request.setResponseSize(100);
+ // expect it to be uniprot accesssion
+ request.setSearchTerm(searchTerm + ".json");
+ request.setOffSet(offSet);
+ request.setWantedFields(wantedFields);
+ FTSRestClientI tdbRestClient = TDBeaconsFTSRestClient
+ .getInstance();
+ FTSRestResponse resultList;
+ try
+ {
+ resultList = tdbRestClient.executeRequest(request);
+ } catch (Exception e)
+ {
+ setErrorMessage(e.getMessage());
+ checkForErrors();
+ setSearchInProgress(false);
+ return;
+ }
+
+ if (resultList.getSearchSummary() != null
+ && resultList.getSearchSummary().size() > 0)
+ {
+ getResultTable().setModel(FTSRestResponse.getTableModel(request,
+ resultList.getSearchSummary()));
+ FTSRestResponse.configureTableColumn(getResultTable(),
+ wantedFields, tempUserPrefs);
+ getResultTable().setVisible(true);
+ }
+
+ long endTime = System.currentTimeMillis();
+ totalResultSetCount = resultList.getNumberOfItemsFound();
+ resultSetCount = resultList.getSearchSummary() == null ? 0
+ : resultList.getSearchSummary().size();
+ String result = (resultSetCount > 0)
+ ? MessageManager.getString("label.results")
+ : MessageManager.getString("label.result");
+
+ if (isPaginationEnabled() && resultSetCount > 0)
+ {
+ String f1 = totalNumberformatter
+ .format(Integer.valueOf(offSet + 1));
+ String f2 = totalNumberformatter
+ .format(Integer.valueOf(offSet + resultSetCount));
+ String f3 = totalNumberformatter
+ .format(Integer.valueOf(totalResultSetCount));
+ updateSearchFrameTitle(defaultFTSFrameTitle + " - " + result
+ + " " + f1 + " to " + f2 + " of " + f3 + " " + " ("
+ + (endTime - startTime) + " milli secs)");
+ }
+ else
+ {
+ updateSearchFrameTitle(defaultFTSFrameTitle + " - "
+ + resultSetCount + " " + result + " ("
+ + (endTime - startTime) + " milli secs)");
+ }
+
+ setSearchInProgress(false);
+ refreshPaginatorState();
+ updateSummaryTableSelections();
+ }
+ txt_search.updateCache();
+ }
+ }.start();
+ }
+
+ @Override
+ public void okAction()
+ {
+ // mainFrame.dispose();
+ disableActionButtons();
+ StringBuilder selectedIds = new StringBuilder();
+ final HashSet<String> selectedIdsSet = new HashSet<>();
+ int primaryKeyColIndex = 0;
+ try
+ {
+ primaryKeyColIndex = getFTSRestClient()
+ .getPrimaryKeyColumIndex(wantedFields, false);
+ } catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ int[] selectedRows = getResultTable().getSelectedRows();
+ String searchTerm = getTypedText();
+ for (int summaryRow : selectedRows)
+ {
+ String idStr = getResultTable()
+ .getValueAt(summaryRow, primaryKeyColIndex).toString();
+ selectedIdsSet.add(idStr);
+ }
+
+ for (String idStr : paginatorCart)
+ {
+ selectedIdsSet.add(idStr);
+ }
+
+ for (String selectedId : selectedIdsSet)
+ {
+ selectedIds.append(selectedId).append(";");
+ }
+
+ SwingUtilities.invokeLater(new Runnable()
+ {
+ @Override
+ public void run()
+ {
+ AlignmentI allSeqs = null;
+ FormatAdapter fl = new jalview.io.FormatAdapter();
+ for (String tdbURL : selectedIdsSet)
+ {
+ try
+ {
+ // retrieve the structure via its URL
+ AlignmentI tdbAl = fl.readFile(tdbURL, DataSourceType.URL,
+ FileFormat.MMCif);
+
+ // TODO: pad structure according to its Uniprot Start so all line up w.r.t. the Uniprot reference sequence
+ // TODO: give the structure a sensible name (not the giant URL *:o) )
+ if (tdbAl != null)
+ {
+ if (allSeqs != null)
+ {
+ allSeqs.append(tdbAl);
+ }
+ else
+ {
+ allSeqs = tdbAl;
+ }
+ }
+ } catch (Exception x)
+ {
+ Cache.log.warn(
+ "Couldn't retrieve 3d-beacons model for uniprot id"
+ + searchTerm + " : " + tdbURL,
+ x);
+ }
+ }
+ seqFetcher.parseResult(allSeqs,
+ "3D-Beacons models for " + searchTerm, FileFormat.MMCif,
+ null);
+
+ }
+ });
+ delayAndEnableActionButtons();
+ }
+
+ @Override
+ public FTSRestClientI getFTSRestClient()
+ {
+ return TDBeaconsFTSRestClient.getInstance();
+ }
+
+ @Override
+ public String getFTSFrameTitle()
+ {
+ return defaultFTSFrameTitle;
+ }
+
+ @Override
+ public boolean isPaginationEnabled()
+ {
+ return true;
+ }
+
+ @Override
+ public Map<String, Integer> getTempUserPrefs()
+ {
+ return tempUserPrefs;
+ }
+
+ @Override
+ public String getCacheKey()
+ {
+ return THREEDB_FTS_CACHE_KEY;
+ }
+
+ @Override
+ public String getAutosearchPreference()
+ {
+ return THREEDB_AUTOSEARCH;
+ }
+
+ @Override
+ protected void showHelp()
+ {
+ System.out.println("No help implemented yet.");
+
+ }
+
+ public static String decodeSearchTerm(String enteredText)
+ {
+ // no multiple query support yet
+ return enteredText;
+ }
+}
--- /dev/null
+package jalview.fts.service.threedbeacons;
+
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+import javax.ws.rs.core.MediaType;
+
+import org.json.simple.parser.ParseException;
+
+import com.sun.jersey.api.client.Client;
+import com.sun.jersey.api.client.ClientResponse;
+import com.sun.jersey.api.client.WebResource;
+import com.sun.jersey.api.client.config.DefaultClientConfig;
+
+import jalview.datamodel.SequenceI;
+import jalview.fts.api.FTSData;
+import jalview.fts.api.FTSDataColumnI;
+import jalview.fts.api.FTSRestClientI;
+import jalview.fts.api.StructureFTSRestClientI;
+import jalview.fts.core.FTSRestClient;
+import jalview.fts.core.FTSRestRequest;
+import jalview.fts.core.FTSRestResponse;
+import jalview.fts.core.FTSDataColumnPreferences.PreferenceSource;
+import jalview.fts.service.pdb.PDBFTSRestClient;
+import jalview.util.JSONUtils;
+import jalview.util.MessageManager;
+import jalview.util.Platform;
+
+public class TDBeaconsFTSRestClient extends FTSRestClient
+ implements StructureFTSRestClientI
+{
+ private static final String DEFAULT_THREEDBEACONS_DOMAIN = "https://wwwdev.ebi.ac.uk/pdbe/pdbe-kb/3dbeacons/api/uniprot/summary/";
+
+ private static FTSRestClientI instance = null;
+
+ protected TDBeaconsFTSRestClient()
+ {
+ }
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public FTSRestResponse executeRequest(FTSRestRequest tdbRestRequest)
+ throws Exception
+ {
+ try
+ {
+ String query = tdbRestRequest.getSearchTerm();
+ Client client;
+ Class<ClientResponse> clientResponseClass;
+ if (Platform.isJS())
+ {
+ // JavaScript only
+ client = (Client) (Object) new jalview.javascript.web.Client();
+ clientResponseClass = (Class<ClientResponse>) (Object) jalview.javascript.web.ClientResponse.class;
+ }
+ else
+ /**
+ * Java only
+ *
+ * @j2sIgnore
+ */
+ {
+ client = Client.create(new DefaultClientConfig());
+ clientResponseClass = ClientResponse.class;
+ }
+ WebResource webResource;
+ webResource = client.resource(DEFAULT_THREEDBEACONS_DOMAIN)
+ .path(query);
+ URI uri = webResource.getURI();
+ System.out.println(uri.toString());
+
+ // Execute the REST request
+ ClientResponse clientResponse = webResource
+ .accept(MediaType.APPLICATION_JSON).get(clientResponseClass);
+
+ // Get the JSON string from the response object or directly from the
+ // client (JavaScript)
+ Map<String, Object> jsonObj = null;
+ String responseString = null;
+
+ // Check the response status and report exception if one occurs
+ int responseStatus = clientResponse.getStatus();
+ switch (responseStatus)
+ {
+ // if success
+ case 200:
+ if (Platform.isJS())
+ {
+ jsonObj = clientResponse.getEntity(Map.class);
+ }
+ else
+ {
+ responseString = clientResponse.getEntity(String.class);
+ }
+ break;
+ case 400:
+ throw new Exception(parseJsonExceptionString(responseString));
+ default:
+ throw new Exception(
+ getMessageByHTTPStatusCode(responseStatus, "3DBeacons"));
+ }
+ // Process the response and return the result to the caller.
+ return parseTDBeaconsJsonResponse(responseString, jsonObj,
+ tdbRestRequest);
+ } catch (Exception e)
+ {
+ String exceptionMsg = e.getMessage();
+ if (exceptionMsg.contains("SocketException"))
+ {
+ // No internet connection
+ throw new Exception(MessageManager.getString(
+ "exception.unable_to_detect_internet_connection"));
+ }
+ else if (exceptionMsg.contains("UnknownHostException"))
+ {
+ // The server is unreachable
+ throw new Exception(MessageManager.formatMessage(
+ "exception.fts_server_unreachable", "3DB Hub"));
+ }
+ else
+ {
+ throw e;
+ }
+ }
+
+ }
+
+ public String setSearchTerm(String term)
+ {
+ return term;
+ }
+
+ public static FTSRestResponse parseTDBeaconsJsonResponse(
+ String tdbJsonResponseString, FTSRestRequest tdbRestRequest)
+ {
+ return parseTDBeaconsJsonResponse(tdbJsonResponseString,
+ (Map<String, Object>) null, tdbRestRequest);
+ }
+
+ @SuppressWarnings("unchecked")
+ public static FTSRestResponse parseTDBeaconsJsonResponse(
+ String tdbJsonResponseString, Map<String, Object> jsonObj,
+ FTSRestRequest tdbRestRequest)
+ {
+ FTSRestResponse searchResult = new FTSRestResponse();
+ List<FTSData> result = null;
+
+ try
+ {
+ if (jsonObj == null)
+ {
+ jsonObj = (Map<String, Object>) JSONUtils
+ .parse(tdbJsonResponseString);
+ }
+
+ Object uniprot_entry = jsonObj.get("uniprot_entry");
+ // TODO: decide if anything from uniprot_entry needs to be reported via
+ // the FTSRestResponse object
+ // Arnaud added seqLength = (Long) ((Map<String, Object>)
+ // jsonObj.get("uniprot_entry")).get("sequence_length");
+
+ List<Object> structures = (List<Object>) jsonObj.get("structures");
+ result = new ArrayList<>();
+
+ int numFound = 0;
+ for (Iterator<Object> strucIter = structures.iterator(); strucIter
+ .hasNext();)
+ {
+ Map<String, Object> structure = (Map<String, Object>) strucIter
+ .next();
+ result.add(getFTSData(structure, tdbRestRequest));
+ numFound++;
+ }
+
+ searchResult.setNumberOfItemsFound(numFound);
+ searchResult.setSearchSummary(result);
+
+ } catch (ParseException e)
+ {
+ e.printStackTrace();
+ }
+ return searchResult;
+ }
+
+ private static FTSData getFTSData(Map<String, Object> tdbJsonStructure,
+ FTSRestRequest tdbRequest)
+ {
+ // TODO: consider reusing PDBFTSRestClient.getFTSData ?
+
+ String primaryKey = null;
+ Object[] summaryRowData;
+
+ SequenceI associatedSequence;
+
+ Collection<FTSDataColumnI> displayFields = tdbRequest.getWantedFields();
+ SequenceI associatedSeq = tdbRequest.getAssociatedSequence();
+ int colCounter = 0;
+ summaryRowData = new Object[(associatedSeq != null)
+ ? displayFields.size() + 1
+ : displayFields.size()];
+ if (associatedSeq != null)
+ {
+ associatedSequence = associatedSeq;
+ summaryRowData[0] = associatedSequence;
+ colCounter = 1;
+ }
+
+ for (FTSDataColumnI field : displayFields)
+ {
+ String fieldData = (tdbJsonStructure.get(field.getCode()) == null)
+ ? " "
+ : tdbJsonStructure.get(field.getCode()).toString();
+ // System.out.println("Field : " + field + " Data : " + fieldData);
+ if (field.isPrimaryKeyColumn())
+ {
+ primaryKey = fieldData;
+ summaryRowData[colCounter++] = primaryKey;
+ }
+ else if (fieldData == null || fieldData.trim().isEmpty())
+ {
+ summaryRowData[colCounter++] = null;
+ }
+ else
+ {
+ try
+ {
+ summaryRowData[colCounter++] = (field.getDataType()
+ .getDataTypeClass() == Integer.class)
+ ? Integer.valueOf(fieldData)
+ : (field.getDataType()
+ .getDataTypeClass() == Double.class)
+ ? Double.valueOf(fieldData)
+ : fieldData;
+ } catch (Exception e)
+ {
+ // e.printStackTrace();
+ System.out.println("offending value:" + fieldData + fieldData);
+ }
+ }
+ }
+ final String primaryKey1 = primaryKey;
+ final Object[] summaryRowData1 = summaryRowData;
+
+ return new FTSData()
+ {
+
+ @Override
+ public Object[] getSummaryData()
+ {
+ return summaryRowData1;
+ }
+
+ @Override
+ public Object getPrimaryKey()
+ {
+ return primaryKey1;
+ }
+
+ /**
+ * Returns a string representation of this object;
+ */
+ @Override
+ public String toString()
+ {
+ StringBuilder summaryFieldValues = new StringBuilder();
+ for (Object summaryField : summaryRowData1)
+ {
+ summaryFieldValues.append(
+ summaryField == null ? " " : summaryField.toString())
+ .append("\t");
+ }
+ return summaryFieldValues.toString();
+ }
+
+ /**
+ * Returns hash code value for this object
+ */
+ @Override
+ public int hashCode()
+ {
+ return Objects.hash(primaryKey1, this.toString());
+ }
+
+ @Override
+ public boolean equals(Object that)
+ {
+ return this.toString().equals(that.toString());
+ }
+ };
+ }
+
+ // private static FTSData getFTSData(Map<String, Object> doc,
+ // FTSRestRequest tdbRestRequest)
+ // {
+ // String primaryKey = null;
+ //
+ // Object[] summaryRowData;
+ //
+ // Collection<FTSDataColumnI> displayFields =
+ // tdbRestRequest.getWantedFields();
+ // int colCounter = 0;
+ // summaryRowData = new Object[displayFields.size() + 1];
+ //
+ // return null;
+ // }
+
+ private String parseJsonExceptionString(String jsonErrorString)
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public String getColumnDataConfigFileName()
+ {
+ return "/fts/tdbeacons_data_columns.txt";
+ }
+
+ public static FTSRestClientI getInstance()
+ {
+ if (instance == null)
+ {
+ instance = new TDBeaconsFTSRestClient();
+ }
+ return instance;
+ }
+
+ private Collection<FTSDataColumnI> allDefaultDisplayedStructureDataColumns;
+
+ public Collection<FTSDataColumnI> getAllDefaultDisplayedStructureDataColumns()
+ {
+ if (allDefaultDisplayedStructureDataColumns == null
+ || allDefaultDisplayedStructureDataColumns.isEmpty())
+ {
+ allDefaultDisplayedStructureDataColumns = new ArrayList<>();
+ allDefaultDisplayedStructureDataColumns
+ .addAll(super.getAllDefaultDisplayedFTSDataColumns());
+ }
+ return allDefaultDisplayedStructureDataColumns;
+ }
+
+ @Override
+ public String[] getPreferencesColumnsFor(PreferenceSource source)
+ {
+ String[] columnNames = null;
+ switch (source)
+ {
+ case SEARCH_SUMMARY:
+ columnNames = new String[] { "", "Display", "Group" };
+ break;
+ case STRUCTURE_CHOOSER:
+ columnNames = new String[] { "", "Display", "Group" };
+ break;
+ case PREFERENCES:
+ columnNames = new String[] { "3DB Beacons Field", "Show in search summary",
+ "Show in structure summary" };
+ break;
+ default:
+ break;
+ }
+ return columnNames;
+ }
+}
import jalview.datamodel.SequenceI;
import jalview.datamodel.StructureViewerModel;
import jalview.datamodel.StructureViewerModel.StructureData;
+import jalview.fts.service.alphafold.AlphafoldRestClient;
import jalview.gui.ImageExporter.ImageWriterI;
import jalview.gui.StructureViewer.ViewerType;
import jalview.structure.StructureCommand;
import jalview.util.ImageMaker;
import jalview.util.MessageManager;
import jalview.util.Platform;
+import jalview.ws.dbsources.EBIAlfaFold;
import jalview.ws.dbsources.Pdb;
+import jalview.ws.utils.UrlDownloadClient;
public class AppJmol extends StructureViewerBase
{
// TODO: replace with reference fetching/transfer code (validate PDBentry
// as a DBRef?)
Pdb pdbclient = new Pdb();
+ EBIAlfaFold afclient = new EBIAlfaFold();
+
for (int pi = 0; pi < jmb.getPdbCount(); pi++)
{
String file = jmb.getPdbEntry(pi).getFile();
// todo: extract block as method and pull up (also ChimeraViewFrame)
// retrieve the pdb and store it locally
AlignmentI pdbseq = null;
- pdbid = jmb.getPdbEntry(pi).getId();
+ PDBEntry strucEntry = jmb.getPdbEntry(pi);
+ pdbid = strucEntry.getId();
long hdl = pdbid.hashCode() - System.currentTimeMillis();
setProgressMessage(MessageManager
.formatMessage("status.fetching_pdb", new String[]
{ pdbid }), hdl);
try
{
- pdbseq = pdbclient.getSequenceRecords(pdbid);
+ if (afclient.isValidReference(pdbid))
+ {
+ pdbseq = afclient.getSequenceRecords(pdbid);
+ } else {
+ if (strucEntry.hasRetrievalUrl())
+ {
+ File tmpFile = File.createTempFile(pdbid, "cif");
+ String fromUrl = strucEntry.getRetrievalUrl();
+ UrlDownloadClient.download(fromUrl, tmpFile);
+
+ // may not need this check ?
+ file = tmpFile.getAbsolutePath();
+ if (file != null)
+ {
+ pdbseq = EBIAlfaFold.importDownloadedStructureFromUrl(fromUrl,tmpFile,pdbid,null,null,null);
+ }
+ } else {
+ pdbseq = pdbclient.getSequenceRecords(pdbid);
+ }
+ }
} catch (OutOfMemoryError oomerror)
{
new OOMWarning("Retrieving PDB id " + pdbid, oomerror);
import jalview.datamodel.SequenceI;
import jalview.fts.core.GFTSPanel;
import jalview.fts.service.pdb.PDBFTSPanel;
+import jalview.fts.service.threedbeacons.TDBeaconsFTSPanel;
import jalview.fts.service.uniprot.UniprotFTSPanel;
import jalview.io.FileFormatI;
import jalview.io.gff.SequenceOntologyI;
frame.dispose();
new UniprotFTSPanel(SequenceFetcher.this);
}
+ else if ("3d-beacons".equalsIgnoreCase(currentSelection))
+ {
+ frame.dispose();
+ new TDBeaconsFTSPanel(SequenceFetcher.this);
+ }
else
{
otherSourceAction();
{
return "Retrieved from " + database.getSelectedItem();
}
-
- AlignmentI parseResult(AlignmentI al, String title,
+ /**
+ * constructs an alignment frame given the data and metadata
+ * @param al
+ * @param title
+ * @param currentFileFormat
+ * @param preferredFeatureColours
+ * @return the alignment
+ */
+ public AlignmentI parseResult(AlignmentI al, String title,
FileFormatI currentFileFormat,
FeatureSettingsModelI preferredFeatureColours)
{
import jalview.fts.api.FTSData;
import jalview.fts.api.FTSDataColumnI;
import jalview.fts.api.FTSRestClientI;
+import jalview.fts.core.FTSDataColumnPreferences;
import jalview.fts.core.FTSRestRequest;
import jalview.fts.core.FTSRestResponse;
import jalview.fts.service.pdb.PDBFTSRestClient;
+import jalview.gui.structurechooser.PDBStructureChooserQuerySource;
+import jalview.gui.structurechooser.StructureChooserQuerySource;
import jalview.io.DataSourceType;
import jalview.jbgui.GStructureChooser;
+import jalview.jbgui.GStructureChooser.FilterOption;
import jalview.structure.StructureMapping;
import jalview.structure.StructureSelectionManager;
import jalview.util.MessageManager;
{
private static final String AUTOSUPERIMPOSE = "AUTOSUPERIMPOSE";
- private static int MAX_QLENGTH = 7820;
-
private SequenceI selectedSequence;
private SequenceI[] selectedSequences;
private Collection<FTSData> discoveredStructuresSet;
- private FTSRestRequest lastPdbRequest;
+ private StructureChooserQuerySource data;
- private FTSRestClientI pdbRestClient;
+ @Override
+ protected FTSDataColumnPreferences getFTSDocFieldPrefs()
+ {
+ return data.getDocFieldPrefs();
+ }
private String selectedPdbFileName;
public StructureChooser(SequenceI[] selectedSeqs, SequenceI selectedSeq,
AlignmentPanel ap)
{
+ // which FTS engine to use
+ data = StructureChooserQuerySource
+ .getTDBfts();
+ initDialog();
+
this.ap = ap;
this.selectedSequence = selectedSeq;
this.selectedSequences = selectedSeqs;
this.progressIndicator = (ap == null) ? null : ap.alignFrame;
init();
+
}
/**
if (view.isLinkedWith(ap))
{
- targetView.insertItemAt(viewHandler,
- linkedViewsAt++);
+ targetView.insertItemAt(viewHandler, linkedViewsAt++);
}
else
{
void fetchStructuresMetaData()
{
long startTime = System.currentTimeMillis();
- pdbRestClient = PDBFTSRestClient.getInstance();
- Collection<FTSDataColumnI> wantedFields = pdbDocFieldPrefs
+ Collection<FTSDataColumnI> wantedFields = data.getDocFieldPrefs()
.getStructureSummaryFields();
discoveredStructuresSet = new LinkedHashSet<>();
HashSet<String> errors = new HashSet<>();
+
+ FilterOption selectedFilterOpt = ((FilterOption) cmb_filterOption
+ .getSelectedItem());
+
for (SequenceI seq : selectedSequences)
{
- FTSRestRequest pdbRequest = new FTSRestRequest();
- pdbRequest.setAllowEmptySeq(false);
- pdbRequest.setResponseSize(500);
- pdbRequest.setFieldToSearchBy("(");
- FilterOption selectedFilterOpt = ((FilterOption) cmb_filterOption
- .getSelectedItem());
- pdbRequest.setFieldToSortBy(selectedFilterOpt.getValue(),
- !chk_invertFilter.isSelected());
- pdbRequest.setWantedFields(wantedFields);
- pdbRequest.setSearchTerm(buildQuery(seq) + ")");
- pdbRequest.setAssociatedSequence(seq);
+
FTSRestResponse resultList;
try
{
- resultList = pdbRestClient.executeRequest(pdbRequest);
+ resultList = data.fetchStructuresMetaData(seq, wantedFields,
+ selectedFilterOpt, !chk_invertFilter.isSelected());
+ // null response means the FTSengine didn't yield a query for this
+ // consider designing a special exception if we really wanted to be OOCrazy
+ if (resultList==null)
+ {
+ continue;
+ }
} catch (Exception e)
{
e.printStackTrace();
errors.add(e.getMessage());
continue;
}
- lastPdbRequest = pdbRequest;
if (resultList.getSearchSummary() != null
&& !resultList.getSearchSummary().isEmpty())
{
if (discoveredStructuresSet != null
&& !discoveredStructuresSet.isEmpty())
{
- getResultTable().setModel(FTSRestResponse
- .getTableModel(lastPdbRequest, discoveredStructuresSet));
+ getResultTable()
+ .setModel(data.getTableModel(discoveredStructuresSet));
noOfStructuresFound = discoveredStructuresSet.size();
mainFrame.setTitle(MessageManager.formatMessage(
"label.structure_chooser_no_of_structures",
}
/**
- * Builds a query string for a given sequences using its DBRef entries
- *
- * @param seq
- * the sequences to build a query for
- * @return the built query string
- */
-
- static String buildQuery(SequenceI seq)
- {
- boolean isPDBRefsFound = false;
- boolean isUniProtRefsFound = false;
- StringBuilder queryBuilder = new StringBuilder();
- Set<String> seqRefs = new LinkedHashSet<>();
-
- /*
- * note PDBs as DBRefEntry so they are not duplicated in query
- */
- Set<String> pdbids = new HashSet<>();
-
- if (seq.getAllPDBEntries() != null
- && queryBuilder.length() < MAX_QLENGTH)
- {
- for (PDBEntry entry : seq.getAllPDBEntries())
- {
- if (isValidSeqName(entry.getId()))
- {
- String id = entry.getId().toLowerCase();
- queryBuilder.append("pdb_id:").append(id).append(" OR ");
- isPDBRefsFound = true;
- pdbids.add(id);
- }
- }
- }
-
- List<DBRefEntry> refs = seq.getDBRefs();
- if (refs != null && refs.size() != 0)
- {
- for (int ib = 0, nb = refs.size(); ib < nb; ib++)
- {
- DBRefEntry dbRef = refs.get(ib);
- if (isValidSeqName(getDBRefId(dbRef))
- && queryBuilder.length() < MAX_QLENGTH)
- {
- if (dbRef.getSource().equalsIgnoreCase(DBRefSource.UNIPROT))
- {
- queryBuilder.append("uniprot_accession:")
- .append(getDBRefId(dbRef)).append(" OR ");
- queryBuilder.append("uniprot_id:").append(getDBRefId(dbRef))
- .append(" OR ");
- isUniProtRefsFound = true;
- }
- else if (dbRef.getSource().equalsIgnoreCase(DBRefSource.PDB))
- {
-
- String id = getDBRefId(dbRef).toLowerCase();
- if (!pdbids.contains(id))
- {
- queryBuilder.append("pdb_id:").append(id).append(" OR ");
- isPDBRefsFound = true;
- pdbids.add(id);
- }
- }
- else
- {
- seqRefs.add(getDBRefId(dbRef));
- }
- }
- }
- }
-
- if (!isPDBRefsFound && !isUniProtRefsFound)
- {
- String seqName = seq.getName();
- seqName = sanitizeSeqName(seqName);
- String[] names = seqName.toLowerCase().split("\\|");
- for (String name : names)
- {
- // System.out.println("Found name : " + name);
- name.trim();
- if (isValidSeqName(name))
- {
- seqRefs.add(name);
- }
- }
-
- for (String seqRef : seqRefs)
- {
- queryBuilder.append("text:").append(seqRef).append(" OR ");
- }
- }
-
- int endIndex = queryBuilder.lastIndexOf(" OR ");
- if (queryBuilder.toString().length() < 6)
- {
- return null;
- }
- String query = queryBuilder.toString().substring(0, endIndex);
- return query;
- }
-
- /**
- * Remove the following special characters from input string +, -, &, !, (, ),
- * {, }, [, ], ^, ", ~, *, ?, :, \
- *
- * @param seqName
- * @return
- */
- static String sanitizeSeqName(String seqName)
- {
- Objects.requireNonNull(seqName);
- return seqName.replaceAll("\\[\\d*\\]", "")
- .replaceAll("[^\\dA-Za-z|_]", "").replaceAll("\\s+", "+");
- }
-
- /**
- * Ensures sequence ref names are not less than 3 characters and does not
- * contain a database name
- *
- * @param seqName
- * @return
- */
- static boolean isValidSeqName(String seqName)
- {
- // System.out.println("seqName : " + seqName);
- String ignoreList = "pdb,uniprot,swiss-prot";
- if (seqName.length() < 3)
- {
- return false;
- }
- if (seqName.contains(":"))
- {
- return false;
- }
- seqName = seqName.toLowerCase();
- for (String ignoredEntry : ignoreList.split(","))
- {
- if (seqName.contains(ignoredEntry))
- {
- return false;
- }
- }
- return true;
- }
-
- static String getDBRefId(DBRefEntry dbRef)
- {
- String ref = dbRef.getAccessionId().replaceAll("GO:", "");
- return ref;
- }
-
- /**
* Filters a given list of discovered structures based on supplied argument
*
* @param fieldToFilterBy
public void run()
{
long startTime = System.currentTimeMillis();
- pdbRestClient = PDBFTSRestClient.getInstance();
lbl_loading.setVisible(true);
- Collection<FTSDataColumnI> wantedFields = pdbDocFieldPrefs
+ Collection<FTSDataColumnI> wantedFields = data.getDocFieldPrefs()
.getStructureSummaryFields();
Collection<FTSData> filteredResponse = new HashSet<>();
HashSet<String> errors = new HashSet<>();
for (SequenceI seq : selectedSequences)
{
- FTSRestRequest pdbRequest = new FTSRestRequest();
- if (fieldToFilterBy.equalsIgnoreCase("uniprot_coverage"))
- {
- pdbRequest.setAllowEmptySeq(false);
- pdbRequest.setResponseSize(1);
- pdbRequest.setFieldToSearchBy("(");
- pdbRequest.setSearchTerm(buildQuery(seq) + ")");
- pdbRequest.setWantedFields(wantedFields);
- pdbRequest.setAssociatedSequence(seq);
- pdbRequest.setFacet(true);
- pdbRequest.setFacetPivot(fieldToFilterBy + ",entry_entity");
- pdbRequest.setFacetPivotMinCount(1);
- }
- else
- {
- pdbRequest.setAllowEmptySeq(false);
- pdbRequest.setResponseSize(1);
- pdbRequest.setFieldToSearchBy("(");
- pdbRequest.setFieldToSortBy(fieldToFilterBy,
- !chk_invertFilter.isSelected());
- pdbRequest.setSearchTerm(buildQuery(seq) + ")");
- pdbRequest.setWantedFields(wantedFields);
- pdbRequest.setAssociatedSequence(seq);
- }
+
FTSRestResponse resultList;
try
{
- resultList = pdbRestClient.executeRequest(pdbRequest);
+ resultList = data.selectFirstRankedQuery(seq, wantedFields,
+ fieldToFilterBy, !chk_invertFilter.isSelected());
+
} catch (Exception e)
{
e.printStackTrace();
errors.add(e.getMessage());
continue;
}
- lastPdbRequest = pdbRequest;
if (resultList.getSearchSummary() != null
&& !resultList.getSearchSummary().isEmpty())
{
Collection<FTSData> reorderedStructuresSet = new LinkedHashSet<>();
reorderedStructuresSet.addAll(filteredResponse);
reorderedStructuresSet.addAll(discoveredStructuresSet);
- getResultTable().setModel(FTSRestResponse
- .getTableModel(lastPdbRequest, reorderedStructuresSet));
+ getResultTable()
+ .setModel(data.getTableModel(reorderedStructuresSet));
FTSRestResponse.configureTableColumn(getResultTable(),
wantedFields, tempUserPrefs);
@Override
protected void pdbFromFile_actionPerformed()
{
- // TODO: JAL-3048 not needed for Jalview-JS until JSmol dep and StructureChooser
+ // TODO: JAL-3048 not needed for Jalview-JS until JSmol dep and
+ // StructureChooser
// works
jalview.io.JalviewFileChooser chooser = new jalview.io.JalviewFileChooser(
jalview.bin.Cache.getProperty("LAST_DIRECTORY"));
if (cachedPDBExist)
{
FilterOption cachedOption = new FilterOption(
- MessageManager.getString("label.cached_structures"),
- "-", VIEWS_LOCAL_PDB, false);
+ MessageManager.getString("label.cached_structures"), "-",
+ VIEWS_LOCAL_PDB, false);
cmb_filterOption.addItem(cachedOption);
cmb_filterOption.setSelectedItem(cachedOption);
}
}
return found;
}
-
+
/**
* Handles the 'New View' action
*/
if (currentView == VIEWS_FILTER)
{
- int pdbIdColIndex = restable.getColumn("PDB Id")
- .getModelIndex();
- int refSeqColIndex = restable.getColumn("Ref Sequence")
- .getModelIndex();
int[] selectedRows = restable.getSelectedRows();
PDBEntry[] pdbEntriesToView = new PDBEntry[selectedRows.length];
- int count = 0;
List<SequenceI> selectedSeqsToView = new ArrayList<>();
- for (int row : selectedRows)
- {
- String pdbIdStr = restable
- .getValueAt(row, pdbIdColIndex).toString();
- SequenceI selectedSeq = (SequenceI) restable
- .getValueAt(row, refSeqColIndex);
- selectedSeqsToView.add(selectedSeq);
- PDBEntry pdbEntry = selectedSeq.getPDBEntry(pdbIdStr);
- if (pdbEntry == null)
- {
- pdbEntry = getFindEntry(pdbIdStr,
- selectedSeq.getAllPDBEntries());
- }
+ pdbEntriesToView = data.collectSelectedRows(restable,selectedRows,selectedSeqsToView);
- if (pdbEntry == null)
- {
- pdbEntry = new PDBEntry();
- pdbEntry.setId(pdbIdStr);
- pdbEntry.setType(PDBEntry.Type.PDB);
- selectedSeq.getDatasetSequence().addPDBId(pdbEntry);
- }
- pdbEntriesToView[count++] = pdbEntry;
- }
SequenceI[] selectedSeqs = selectedSeqsToView
.toArray(new SequenceI[selectedSeqsToView.size()]);
sViewer = launchStructureViewer(ssm, pdbEntriesToView, ap,
DataSourceType.FILE, selectedSequence, true,
Desktop.instance);
- sViewer = launchStructureViewer(
- ssm, new PDBEntry[]
- { fileEntry }, ap,
- new SequenceI[]
+ sViewer = launchStructureViewer(ssm, new PDBEntry[] { fileEntry },
+ ap, new SequenceI[]
{ selectedSequence });
}
SwingUtilities.invokeLater(new Runnable()
}
}
- private PDBEntry getFindEntry(String id, Vector<PDBEntry> pdbEntries)
- {
- Objects.requireNonNull(id);
- Objects.requireNonNull(pdbEntries);
- PDBEntry foundEntry = null;
- for (PDBEntry entry : pdbEntries)
- {
- if (entry.getId().equalsIgnoreCase(id))
- {
- return entry;
- }
- }
- return foundEntry;
- }
-
/**
* Answers a structure viewer (new or existing) configured to superimpose
* added structures or not according to the user's choice
* @param ssm
* @return
*/
- StructureViewer getTargetedStructureViewer(
- StructureSelectionManager ssm)
+ StructureViewer getTargetedStructureViewer(StructureSelectionManager ssm)
{
Object sv = targetView.getSelectedItem();
* @return
*/
private StructureViewer launchStructureViewer(
- StructureSelectionManager ssm,
- final PDBEntry[] pdbEntriesToView,
+ StructureSelectionManager ssm, final PDBEntry[] pdbEntriesToView,
final AlignmentPanel alignPanel, SequenceI[] sequences)
{
long progressId = sequences.hashCode();
}
if (pdbEntriesToView.length > 1)
{
- setProgressBar(MessageManager.getString(
- "status.fetching_3d_structures_for_selected_entries"),
+ setProgressBar(
+ MessageManager.getString(
+ "status.fetching_3d_structures_for_selected_entries"),
progressId);
theViewer.viewStructures(pdbEntriesToView, sequences, alignPanel);
}
{
setProgressBar(MessageManager.formatMessage(
"status.fetching_3d_structures_for",
- pdbEntriesToView[0].getId()),progressId);
+ pdbEntriesToView[0].getId()), progressId);
theViewer.viewStructures(pdbEntriesToView[0], sequences, alignPanel);
}
setProgressBar(null, progressId);
&& !discoveredStructuresSet.isEmpty();
}
- protected int PDB_ID_MIN = 3;// or: (Jalview.isJS() ? 3 : 1); // Bob proposes this.
+ protected int PDB_ID_MIN = 3;// or: (Jalview.isJS() ? 3 : 1); // Bob proposes
+ // this.
// Doing a search for "1" or "1c" is valuable?
// Those work but are enormously slow.
protected void txt_search_ActionPerformed()
{
String text = txt_search.getText().trim();
- if (text.length() >= PDB_ID_MIN)
- new Thread()
- {
-
- @Override
- public void run()
+ if (text.length() >= PDB_ID_MIN)
+ new Thread()
{
- errorWarning.setLength(0);
- isValidPBDEntry = false;
- if (text.length() > 0)
+
+ @Override
+ public void run()
{
- String searchTerm = text.toLowerCase();
- searchTerm = searchTerm.split(":")[0];
- // System.out.println(">>>>> search term : " + searchTerm);
- List<FTSDataColumnI> wantedFields = new ArrayList<>();
- FTSRestRequest pdbRequest = new FTSRestRequest();
- pdbRequest.setAllowEmptySeq(false);
- pdbRequest.setResponseSize(1);
- pdbRequest.setFieldToSearchBy("(pdb_id:");
- pdbRequest.setWantedFields(wantedFields);
- pdbRequest.setSearchTerm(searchTerm + ")");
- pdbRequest.setAssociatedSequence(selectedSequence);
- pdbRestClient = PDBFTSRestClient.getInstance();
- wantedFields.add(pdbRestClient.getPrimaryKeyColumn());
- FTSRestResponse resultList;
- try
- {
- resultList = pdbRestClient.executeRequest(pdbRequest);
- } catch (Exception e)
- {
- errorWarning.append(e.getMessage());
- return;
- } finally
+ errorWarning.setLength(0);
+ isValidPBDEntry = false;
+ if (text.length() > 0)
{
- validateSelections();
- }
- if (resultList.getSearchSummary() != null
- && resultList.getSearchSummary().size() > 0)
- {
- isValidPBDEntry = true;
+ // TODO move this pdb id search into the PDB specific
+ // FTSSearchEngine
+ // for moment, it will work fine as is because it is self-contained
+ String searchTerm = text.toLowerCase();
+ searchTerm = searchTerm.split(":")[0];
+ // System.out.println(">>>>> search term : " + searchTerm);
+ List<FTSDataColumnI> wantedFields = new ArrayList<>();
+ FTSRestRequest pdbRequest = new FTSRestRequest();
+ pdbRequest.setAllowEmptySeq(false);
+ pdbRequest.setResponseSize(1);
+ pdbRequest.setFieldToSearchBy("(pdb_id:");
+ pdbRequest.setWantedFields(wantedFields);
+ pdbRequest.setSearchTerm(searchTerm + ")");
+ pdbRequest.setAssociatedSequence(selectedSequence);
+ FTSRestClientI pdbRestClient = PDBFTSRestClient.getInstance();
+ wantedFields.add(pdbRestClient.getPrimaryKeyColumn());
+ FTSRestResponse resultList;
+ try
+ {
+ resultList = pdbRestClient.executeRequest(pdbRequest);
+ } catch (Exception e)
+ {
+ errorWarning.append(e.getMessage());
+ return;
+ } finally
+ {
+ validateSelections();
+ }
+ if (resultList.getSearchSummary() != null
+ && resultList.getSearchSummary().size() > 0)
+ {
+ isValidPBDEntry = true;
+ }
}
+ validateSelections();
}
- validateSelections();
- }
- }.start();
+ }.start();
}
@Override
{
return sViewer == null ? null : sViewer.sview;
}
+
+ @Override
+ protected void setFTSDocFieldPrefs(FTSDataColumnPreferences newPrefs)
+ {
+ data.setDocFieldPrefs(newPrefs);
+
+ }
}
import jalview.structures.models.AAStructureBindingModel;
import jalview.util.BrowserLauncher;
import jalview.util.MessageManager;
+import jalview.ws.dbsources.EBIAlfaFold;
import jalview.ws.dbsources.Pdb;
/**
{
String filePath = null;
Pdb pdbclient = new Pdb();
+ EBIAlfaFold afclient = new EBIAlfaFold();
AlignmentI pdbseq = null;
String pdbid = processingEntry.getId();
long handle = System.currentTimeMillis()
// { pdbid }));
try
{
- pdbseq = pdbclient.getSequenceRecords(pdbid);
+ if (afclient.isValidReference(pdbid))
+ {
+ pdbseq = afclient.getSequenceRecords(pdbid);
+ } else {
+ pdbseq = pdbclient.getSequenceRecords(pdbid);
+ }
} catch (Exception e)
{
System.err.println(
--- /dev/null
+package jalview.gui.structurechooser;
+
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Objects;
+import java.util.Set;
+
+import javax.swing.JTable;
+import javax.swing.table.TableModel;
+
+import jalview.datamodel.DBRefEntry;
+import jalview.datamodel.DBRefSource;
+import jalview.datamodel.PDBEntry;
+import jalview.datamodel.SequenceI;
+import jalview.fts.api.FTSData;
+import jalview.fts.api.FTSDataColumnI;
+import jalview.fts.api.FTSRestClientI;
+import jalview.fts.core.FTSDataColumnPreferences;
+import jalview.fts.core.FTSDataColumnPreferences.PreferenceSource;
+import jalview.fts.core.FTSRestRequest;
+import jalview.fts.core.FTSRestResponse;
+import jalview.fts.service.pdb.PDBFTSRestClient;
+import jalview.jbgui.GStructureChooser.FilterOption;
+
+/**
+ * logic for querying the PDBe API for structures of sequences
+ *
+ * @author jprocter
+ */
+public class PDBStructureChooserQuerySource
+ extends StructureChooserQuerySource
+{
+
+ private static int MAX_QLENGTH = 7820;
+
+ public PDBStructureChooserQuerySource()
+ {
+ pdbRestClient = PDBFTSRestClient.getInstance();
+ docFieldPrefs = new FTSDataColumnPreferences(
+ PreferenceSource.STRUCTURE_CHOOSER,
+ PDBFTSRestClient.getInstance());
+
+ }
+
+
+ /**
+ * Builds a query string for a given sequences using its DBRef entries
+ *
+ * @param seq
+ * the sequences to build a query for
+ * @return the built query string
+ */
+
+ public String buildQuery(SequenceI seq)
+ {
+ boolean isPDBRefsFound = false;
+ boolean isUniProtRefsFound = false;
+ StringBuilder queryBuilder = new StringBuilder();
+ Set<String> seqRefs = new LinkedHashSet<>();
+
+ /*
+ * note PDBs as DBRefEntry so they are not duplicated in query
+ */
+ Set<String> pdbids = new HashSet<>();
+
+ if (seq.getAllPDBEntries() != null
+ && queryBuilder.length() < MAX_QLENGTH)
+ {
+ for (PDBEntry entry : seq.getAllPDBEntries())
+ {
+ if (isValidSeqName(entry.getId()))
+ {
+ String id = entry.getId().toLowerCase();
+ queryBuilder.append("pdb_id:").append(id).append(" OR ");
+ isPDBRefsFound = true;
+ pdbids.add(id);
+ }
+ }
+ }
+
+ List<DBRefEntry> refs = seq.getDBRefs();
+ if (refs != null && refs.size() != 0)
+ {
+ for (int ib = 0, nb = refs.size(); ib < nb; ib++)
+ {
+ DBRefEntry dbRef = refs.get(ib);
+ if (isValidSeqName(getDBRefId(dbRef))
+ && queryBuilder.length() < MAX_QLENGTH)
+ {
+ if (dbRef.getSource().equalsIgnoreCase(DBRefSource.UNIPROT))
+ {
+ queryBuilder.append("uniprot_accession:")
+ .append(getDBRefId(dbRef)).append(" OR ");
+ queryBuilder.append("uniprot_id:").append(getDBRefId(dbRef))
+ .append(" OR ");
+ isUniProtRefsFound = true;
+ }
+ else if (dbRef.getSource().equalsIgnoreCase(DBRefSource.PDB))
+ {
+
+ String id = getDBRefId(dbRef).toLowerCase();
+ if (!pdbids.contains(id))
+ {
+ queryBuilder.append("pdb_id:").append(id).append(" OR ");
+ isPDBRefsFound = true;
+ pdbids.add(id);
+ }
+ }
+ else
+ {
+ seqRefs.add(getDBRefId(dbRef));
+ }
+ }
+ }
+ }
+
+ if (!isPDBRefsFound && !isUniProtRefsFound)
+ {
+ String seqName = seq.getName();
+ seqName = sanitizeSeqName(seqName);
+ String[] names = seqName.toLowerCase().split("\\|");
+ for (String name : names)
+ {
+ // System.out.println("Found name : " + name);
+ name.trim();
+ if (isValidSeqName(name))
+ {
+ seqRefs.add(name);
+ }
+ }
+
+ for (String seqRef : seqRefs)
+ {
+ queryBuilder.append("text:").append(seqRef).append(" OR ");
+ }
+ }
+
+ int endIndex = queryBuilder.lastIndexOf(" OR ");
+ if (queryBuilder.toString().length() < 6)
+ {
+ return null;
+ }
+ String query = queryBuilder.toString().substring(0, endIndex);
+ return query;
+ }
+
+ /**
+ * Remove the following special characters from input string +, -, &, !, (, ),
+ * {, }, [, ], ^, ", ~, *, ?, :, \
+ *
+ * @param seqName
+ * @return
+ */
+ public static String sanitizeSeqName(String seqName)
+ {
+ Objects.requireNonNull(seqName);
+ return seqName.replaceAll("\\[\\d*\\]", "")
+ .replaceAll("[^\\dA-Za-z|_]", "").replaceAll("\\s+", "+");
+ }
+
+ /**
+ * Ensures sequence ref names are not less than 3 characters and does not
+ * contain a database name
+ *
+ * @param seqName
+ * @return
+ */
+ static boolean isValidSeqName(String seqName)
+ {
+ // System.out.println("seqName : " + seqName);
+ String ignoreList = "pdb,uniprot,swiss-prot";
+ if (seqName.length() < 3)
+ {
+ return false;
+ }
+ if (seqName.contains(":"))
+ {
+ return false;
+ }
+ seqName = seqName.toLowerCase();
+ for (String ignoredEntry : ignoreList.split(","))
+ {
+ if (seqName.contains(ignoredEntry))
+ {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ static String getDBRefId(DBRefEntry dbRef)
+ {
+ String ref = dbRef.getAccessionId().replaceAll("GO:", "");
+ return ref;
+ }
+
+ /**
+ * FTSRestClient specific query builder to recover associated structure data
+ * records for a sequence
+ *
+ * @param seq
+ * - seq to generate a query for
+ * @param wantedFields
+ * - fields to retrieve
+ * @param selectedFilterOpt
+ * - criterion for ranking results (e.g. resolution)
+ * @param b
+ * - sort ascending or descending
+ * @return
+ * @throws Exception
+ */
+ public FTSRestResponse fetchStructuresMetaData(SequenceI seq,
+ Collection<FTSDataColumnI> wantedFields,
+ FilterOption selectedFilterOpt, boolean b) throws Exception
+ {
+ FTSRestResponse resultList;
+ FTSRestRequest pdbRequest = new FTSRestRequest();
+ pdbRequest.setAllowEmptySeq(false);
+ pdbRequest.setResponseSize(500);
+ pdbRequest.setFieldToSearchBy("(");
+ pdbRequest.setFieldToSortBy(selectedFilterOpt.getValue(), b);
+ pdbRequest.setWantedFields(wantedFields);
+ pdbRequest.setSearchTerm(buildQuery(seq) + ")");
+ pdbRequest.setAssociatedSequence(seq);
+ resultList = pdbRestClient.executeRequest(pdbRequest);
+
+ lastPdbRequest = pdbRequest;
+ return resultList;
+ }
+
+ /**
+ * FTSRestClient specific query builder to pick top ranked entry from a
+ * fetchStructuresMetaData query
+ *
+ * @param seq
+ * - seq to generate a query for
+ * @param wantedFields
+ * - fields to retrieve
+ * @param selectedFilterOpt
+ * - criterion for ranking results (e.g. resolution)
+ * @param b
+ * - sort ascending or descending
+ * @return
+ * @throws Exception
+ */
+ public FTSRestResponse selectFirstRankedQuery(SequenceI seq,
+ Collection<FTSDataColumnI> wantedFields, String fieldToFilterBy,
+ boolean b) throws Exception
+ {
+
+ FTSRestResponse resultList;
+ FTSRestRequest pdbRequest = new FTSRestRequest();
+ if (fieldToFilterBy.equalsIgnoreCase("uniprot_coverage"))
+ {
+ pdbRequest.setAllowEmptySeq(false);
+ pdbRequest.setResponseSize(1);
+ pdbRequest.setFieldToSearchBy("(");
+ pdbRequest.setSearchTerm(buildQuery(seq) + ")");
+ pdbRequest.setWantedFields(wantedFields);
+ pdbRequest.setAssociatedSequence(seq);
+ pdbRequest.setFacet(true);
+ pdbRequest.setFacetPivot(fieldToFilterBy + ",entry_entity");
+ pdbRequest.setFacetPivotMinCount(1);
+ }
+ else
+ {
+ pdbRequest.setAllowEmptySeq(false);
+ pdbRequest.setResponseSize(1);
+ pdbRequest.setFieldToSearchBy("(");
+ pdbRequest.setFieldToSortBy(fieldToFilterBy, b);
+ pdbRequest.setSearchTerm(buildQuery(seq) + ")");
+ pdbRequest.setWantedFields(wantedFields);
+ pdbRequest.setAssociatedSequence(seq);
+ }
+ resultList = pdbRestClient.executeRequest(pdbRequest);
+
+ lastPdbRequest = pdbRequest;
+ return resultList;
+ }
+
+
+ @Override
+ public PDBEntry[] collectSelectedRows(JTable restable, int[] selectedRows,
+ List<SequenceI> selectedSeqsToView)
+ {
+ int refSeqColIndex = restable.getColumn("Ref Sequence")
+ .getModelIndex();
+
+ PDBEntry[] pdbEntriesToView=new PDBEntry[selectedRows.length];
+ int count = 0;
+ int idColumnIndex=-1;
+ boolean fromTDB=true;
+ idColumnIndex = restable.getColumn("PDB Id").getModelIndex();
+
+ for (int row : selectedRows)
+ {
+
+ String pdbIdStr = restable.getValueAt(row,idColumnIndex)
+ .toString();
+ SequenceI selectedSeq = (SequenceI) restable.getValueAt(row,
+ refSeqColIndex);
+ selectedSeqsToView.add(selectedSeq);
+ PDBEntry pdbEntry = selectedSeq.getPDBEntry(pdbIdStr);
+ if (pdbEntry == null)
+ {
+ pdbEntry = getFindEntry(pdbIdStr,
+ selectedSeq.getAllPDBEntries());
+ }
+
+ if (pdbEntry == null)
+ {
+ pdbEntry = new PDBEntry();
+ pdbEntry.setId(pdbIdStr);
+ pdbEntry.setType(PDBEntry.Type.MMCIF);
+ selectedSeq.getDatasetSequence().addPDBId(pdbEntry);
+ }
+ pdbEntriesToView[count++] = pdbEntry;
+ }
+ return pdbEntriesToView;
+ }
+
+}
\ No newline at end of file
--- /dev/null
+package jalview.gui.structurechooser;
+
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Objects;
+import java.util.Set;
+import java.util.Vector;
+
+import javax.swing.JTable;
+import javax.swing.table.TableModel;
+
+import jalview.datamodel.DBRefEntry;
+import jalview.datamodel.DBRefSource;
+import jalview.datamodel.PDBEntry;
+import jalview.datamodel.SequenceI;
+import jalview.fts.api.FTSData;
+import jalview.fts.api.FTSDataColumnI;
+import jalview.fts.api.FTSRestClientI;
+import jalview.fts.core.FTSDataColumnPreferences;
+import jalview.fts.core.FTSDataColumnPreferences.PreferenceSource;
+import jalview.fts.core.FTSRestRequest;
+import jalview.fts.core.FTSRestResponse;
+import jalview.fts.service.pdb.PDBFTSRestClient;
+import jalview.jbgui.GStructureChooser.FilterOption;
+
+/**
+ * logic for querying sources of structural data for structures of sequences
+ *
+ * @author jprocter
+ *
+ * @param <T>
+ */
+public abstract class StructureChooserQuerySource
+{
+ protected FTSRestRequest lastPdbRequest;
+
+ protected FTSRestClientI pdbRestClient;
+
+ protected FTSDataColumnPreferences docFieldPrefs;
+
+ /**
+ * max length of a GET URL (probably :( )
+ */
+ protected static int MAX_QLENGTH = 7820;
+
+ public StructureChooserQuerySource()
+ {
+ }
+
+ public static StructureChooserQuerySource getPDBfts()
+ {
+ return new PDBStructureChooserQuerySource();
+ }
+
+ public static StructureChooserQuerySource getTDBfts()
+ {
+ return new ThreeDBStructureChooserQuerySource();
+ }
+
+ public FTSDataColumnPreferences getDocFieldPrefs()
+ {
+ return docFieldPrefs;
+ }
+
+ public void setDocFieldPrefs(FTSDataColumnPreferences docFieldPrefs)
+ {
+ this.docFieldPrefs = docFieldPrefs;
+ }
+
+ public FTSDataColumnPreferences getInitialFieldPreferences()
+ {
+ return docFieldPrefs;
+ }
+
+
+ /**
+ * Builds a query string for a given sequences using its DBRef entries
+ *
+ * @param seq
+ * the sequences to build a query for
+ * @return the built query string
+ */
+
+ public abstract String buildQuery(SequenceI seq);
+
+
+ /**
+ * Remove the following special characters from input string +, -, &, !, (, ),
+ * {, }, [, ], ^, ", ~, *, ?, :, \
+ *
+ * @param seqName
+ * @return
+ */
+ public static String sanitizeSeqName(String seqName)
+ {
+ Objects.requireNonNull(seqName);
+ return seqName.replaceAll("\\[\\d*\\]", "")
+ .replaceAll("[^\\dA-Za-z|_]", "").replaceAll("\\s+", "+");
+ }
+
+ /**
+ * Ensures sequence ref names are not less than 3 characters and does not
+ * contain a database name
+ *
+ * @param seqName
+ * @return
+ */
+ static boolean isValidSeqName(String seqName)
+ {
+ // System.out.println("seqName : " + seqName);
+ String ignoreList = "pdb,uniprot,swiss-prot";
+ if (seqName.length() < 3)
+ {
+ return false;
+ }
+ if (seqName.contains(":"))
+ {
+ return false;
+ }
+ seqName = seqName.toLowerCase();
+ for (String ignoredEntry : ignoreList.split(","))
+ {
+ if (seqName.contains(ignoredEntry))
+ {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ static String getDBRefId(DBRefEntry dbRef)
+ {
+ String ref = dbRef.getAccessionId().replaceAll("GO:", "");
+ return ref;
+ }
+
+ static PDBEntry getFindEntry(String id, Vector<PDBEntry> pdbEntries)
+ {
+ Objects.requireNonNull(id);
+ Objects.requireNonNull(pdbEntries);
+ PDBEntry foundEntry = null;
+ for (PDBEntry entry : pdbEntries)
+ {
+ if (entry.getId().equalsIgnoreCase(id))
+ {
+ return entry;
+ }
+ }
+ return foundEntry;
+ }
+
+ /**
+ * FTSRestClient specific query builder to recover associated structure data
+ * records for a sequence
+ *
+ * @param seq
+ * - seq to generate a query for
+ * @param wantedFields
+ * - fields to retrieve
+ * @param selectedFilterOpt
+ * - criterion for ranking results (e.g. resolution)
+ * @param b
+ * - sort ascending or descending
+ * @return
+ * @throws Exception
+ */
+ public abstract FTSRestResponse fetchStructuresMetaData(SequenceI seq,
+ Collection<FTSDataColumnI> wantedFields,
+ FilterOption selectedFilterOpt, boolean b) throws Exception;
+
+ /**
+ * FTSRestClient specific query builder to pick top ranked entry from a
+ * fetchStructuresMetaData query
+ *
+ * @param seq
+ * - seq to generate a query for
+ * @param wantedFields
+ * - fields to retrieve
+ * @param selectedFilterOpt
+ * - criterion for ranking results (e.g. resolution)
+ * @param b
+ * - sort ascending or descending
+ * @return
+ * @throws Exception
+ */
+ public abstract FTSRestResponse selectFirstRankedQuery(SequenceI seq,
+ Collection<FTSDataColumnI> wantedFields, String fieldToFilterBy,
+ boolean b) throws Exception;
+
+ /**
+ *
+ * @param discoveredStructuresSet
+ * @return the table model for the given result set for this engine
+ */
+ public TableModel getTableModel(
+ Collection<FTSData> discoveredStructuresSet)
+ {
+ return FTSRestResponse.getTableModel(lastPdbRequest,
+ discoveredStructuresSet);
+ }
+
+ public abstract PDBEntry[] collectSelectedRows(JTable restable,
+ int[] selectedRows, List<SequenceI> selectedSeqsToView);
+
+}
\ No newline at end of file
--- /dev/null
+package jalview.gui.structurechooser;
+
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Objects;
+import java.util.Set;
+
+import javax.swing.JTable;
+import javax.swing.table.TableModel;
+
+import jalview.datamodel.DBRefEntry;
+import jalview.datamodel.DBRefSource;
+import jalview.datamodel.PDBEntry;
+import jalview.datamodel.SequenceI;
+import jalview.fts.api.FTSData;
+import jalview.fts.api.FTSDataColumnI;
+import jalview.fts.api.FTSRestClientI;
+import jalview.fts.core.FTSDataColumnPreferences;
+import jalview.fts.core.FTSDataColumnPreferences.PreferenceSource;
+import jalview.fts.core.FTSRestRequest;
+import jalview.fts.core.FTSRestResponse;
+import jalview.fts.service.pdb.PDBFTSRestClient;
+import jalview.fts.service.threedbeacons.TDBeaconsFTSRestClient;
+import jalview.jbgui.GStructureChooser.FilterOption;
+
+/**
+ * logic for querying the PDBe API for structures of sequences
+ *
+ * @author jprocter
+ */
+public class ThreeDBStructureChooserQuerySource
+ extends StructureChooserQuerySource
+{
+
+ private static int MAX_QLENGTH = 7820;
+
+ public ThreeDBStructureChooserQuerySource()
+ {
+ pdbRestClient = TDBeaconsFTSRestClient.getInstance();
+ docFieldPrefs = new FTSDataColumnPreferences(
+ PreferenceSource.STRUCTURE_CHOOSER,
+ TDBeaconsFTSRestClient.getInstance());
+
+ }
+
+
+ /**
+ * Builds a query string for a given sequences using its DBRef entries
+ * 3d Beacons is only useful for uniprot IDs
+ * @param seq
+ * the sequences to build a query for
+ * @return the built query string
+ */
+
+ public String buildQuery(SequenceI seq)
+ {
+ boolean isPDBRefsFound = false;
+ boolean isUniProtRefsFound = false;
+ StringBuilder queryBuilder = new StringBuilder();
+ Set<String> seqRefs = new LinkedHashSet<>();
+
+ /*
+ * note PDBs as DBRefEntry so they are not duplicated in query
+ */
+ Set<String> pdbids = new HashSet<>();
+
+ List<DBRefEntry> refs = seq.getDBRefs();
+ if (refs != null && refs.size() != 0)
+ {
+ for (int ib = 0, nb = refs.size(); ib < nb; ib++)
+ {
+ DBRefEntry dbRef = refs.get(ib);
+ if (isValidSeqName(getDBRefId(dbRef))
+ && queryBuilder.length() < MAX_QLENGTH)
+ {
+ if (dbRef.getSource().equalsIgnoreCase(DBRefSource.UNIPROT) && dbRef.isCanonical())
+ {
+ // TODO: pick best Uniprot accession
+ isUniProtRefsFound=true;
+ return getDBRefId(dbRef);
+
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+
+
+ /**
+ * Ensures sequence ref names are not less than 3 characters and does not
+ * contain a database name
+ *
+ * @param seqName
+ * @return
+ */
+ static boolean isValidSeqName(String seqName)
+ {
+ // System.out.println("seqName : " + seqName);
+ String ignoreList = "pdb,uniprot,swiss-prot";
+ if (seqName.length() < 3)
+ {
+ return false;
+ }
+ if (seqName.contains(":"))
+ {
+ return false;
+ }
+ seqName = seqName.toLowerCase();
+ for (String ignoredEntry : ignoreList.split(","))
+ {
+ if (seqName.contains(ignoredEntry))
+ {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ static String getDBRefId(DBRefEntry dbRef)
+ {
+ String ref = dbRef.getAccessionId().replaceAll("GO:", "");
+ return ref;
+ }
+
+ /**
+ * FTSRestClient specific query builder to recover associated structure data
+ * records for a sequence
+ *
+ * @param seq
+ * - seq to generate a query for
+ * @param wantedFields
+ * - fields to retrieve
+ * @param selectedFilterOpt
+ * - criterion for ranking results (e.g. resolution)
+ * @param b
+ * - sort ascending or descending
+ * @return
+ * @throws Exception
+ */
+ public FTSRestResponse fetchStructuresMetaData(SequenceI seq,
+ Collection<FTSDataColumnI> wantedFields,
+ FilterOption selectedFilterOpt, boolean b) throws Exception
+ {
+ FTSRestResponse resultList;
+ FTSRestRequest pdbRequest = getTDBeaconsRequest(seq, wantedFields);
+ resultList = pdbRestClient.executeRequest(pdbRequest);
+
+ lastPdbRequest = pdbRequest;
+ return resultList;
+ }
+
+
+ private FTSRestRequest getTDBeaconsRequest(SequenceI seq, Collection<FTSDataColumnI> wantedFields)
+ {
+ FTSRestRequest pdbRequest = new FTSRestRequest();
+ pdbRequest.setAllowEmptySeq(false);
+ pdbRequest.setResponseSize(500);
+ pdbRequest.setWantedFields(wantedFields);
+ String query = buildQuery(seq);
+ if (query==null) {
+ return null;
+ }
+ pdbRequest.setSearchTerm(query + ".json");
+ pdbRequest.setAssociatedSequence(seq);
+ return pdbRequest;
+ }
+
+
+ /**
+ * FTSRestClient specific query builder to pick top ranked entry from a
+ * fetchStructuresMetaData query
+ *
+ * @param seq
+ * - seq to generate a query for
+ * @param wantedFields
+ * - fields to retrieve
+ * @param selectedFilterOpt
+ * - criterion for ranking results (e.g. resolution)
+ * @param b
+ * - sort ascending or descending
+ * @return
+ * @throws Exception
+ */
+ public FTSRestResponse selectFirstRankedQuery(SequenceI seq,
+ Collection<FTSDataColumnI> wantedFields, String fieldToFilterBy,
+ boolean b) throws Exception
+ {
+
+ FTSRestResponse resultList;
+ FTSRestRequest pdbRequest = getTDBeaconsRequest(seq, wantedFields);
+ if (pdbRequest == null) {
+ return null;
+ }
+ pdbRequest.setResponseSize(1);
+ resultList = pdbRestClient.executeRequest(pdbRequest);
+
+ // TODO: client side filtering - sort results and pick top one (or N)
+
+ lastPdbRequest = pdbRequest;
+ return resultList;
+ }
+
+ @Override
+ public PDBEntry[] collectSelectedRows(JTable restable, int[] selectedRows,
+ List<SequenceI> selectedSeqsToView)
+ {
+ int refSeqColIndex = restable.getColumn("Ref Sequence")
+ .getModelIndex();
+
+ PDBEntry[] pdbEntriesToView=new PDBEntry[selectedRows.length];
+ int count = 0;
+ int idColumnIndex = restable.getColumn("Model id").getModelIndex();
+ int urlColumnIndex = restable.getColumn("Url").getModelIndex();
+ int typeColumnIndex = restable.getColumn("Provider").getModelIndex();
+ int categoryColumnIndex = restable.getColumn("Model Category").getModelIndex();
+
+ for (int row : selectedRows)
+ {
+ // unique id - could be a horrible hash
+
+ String pdbIdStr = restable.getValueAt(row,idColumnIndex)
+ .toString();
+ String urlStr = restable.getValueAt(row,urlColumnIndex)
+ .toString();
+ String typeColumn = restable.getValueAt(row,typeColumnIndex)
+ .toString();
+ SequenceI selectedSeq = (SequenceI) restable.getValueAt(row,
+ refSeqColIndex);
+ selectedSeqsToView.add(selectedSeq);
+ PDBEntry pdbEntry = selectedSeq.getPDBEntry(pdbIdStr);
+ if (pdbEntry == null)
+ {
+ pdbEntry = getFindEntry(pdbIdStr,
+ selectedSeq.getAllPDBEntries());
+ }
+
+ if (pdbEntry == null)
+ {
+ pdbEntry = new PDBEntry();
+ pdbEntry.setId(pdbIdStr);
+ pdbEntry.setType(PDBEntry.Type.MMCIF);
+ if (!"PDBe".equalsIgnoreCase(typeColumn))
+ {
+ pdbEntry.setRetrievalUrl(urlStr);
+ }
+ selectedSeq.getDatasetSequence().addPDBId(pdbEntry);
+ }
+ pdbEntriesToView[count++] = pdbEntry;
+ }
+ return pdbEntriesToView;
+ }
+}
\ No newline at end of file
protected JTabbedPane pnl_filter = new JTabbedPane();
- protected FTSDataColumnPreferences pdbDocFieldPrefs = new FTSDataColumnPreferences(
- PreferenceSource.STRUCTURE_CHOOSER,
- PDBFTSRestClient.getInstance());
+ protected abstract FTSDataColumnPreferences getFTSDocFieldPrefs();
+ protected abstract void setFTSDocFieldPrefs(FTSDataColumnPreferences newPrefs);
+
protected FTSDataColumnI[] previousWantedFields;
public GStructureChooser()
{
+ }
+ protected void initDialog()
+ {
+
try
{
jbInit();
e.printStackTrace();
}
}
-
+
// BH SwingJS optimization
// (a) 100-ms interruptable timer for text entry -- BH 1/10/2019
// (b) two-character minimum, at least for JavaScript.
btn_add.setVisible(false);
btn_newView.setEnabled(false);
btn_cancel.setVisible(false);
- previousWantedFields = pdbDocFieldPrefs
+ previousWantedFields = getFTSDocFieldPrefs()
.getStructureSummaryFields()
.toArray(new FTSDataColumnI[0]);
}
pnl_filter.addChangeListener(changeListener);
pnl_filter.setPreferredSize(new Dimension(width, height));
pnl_filter.add(foundStructureSummary, scrl_foundStructures);
- pnl_filter.add(configureCols, pdbDocFieldPrefs);
+ pnl_filter.add(configureCols, getFTSDocFieldPrefs());
JPanel pnl_locPDB = new JPanel(new BorderLayout());
pnl_locPDB.add(scrl_localPDB);
return true;
}
- FTSDataColumnI[] currentWantedFields = pdbDocFieldPrefs
+ FTSDataColumnI[] currentWantedFields = getFTSDocFieldPrefs()
.getStructureSummaryFields().toArray(new FTSDataColumnI[0]);
return Arrays.equals(currentWantedFields, previousWantedFields) ? false
: true;
dbref.setSource(ref.getSource());
dbref.setVersion(ref.getVersion());
dbref.setAccessionId(ref.getAccessionId());
+ dbref.setCanonical(ref.isCanonical());
if (ref instanceof GeneLocus)
{
dbref.setLocus(true);
{
entry.setMap(addMapping(dr.getMapping()));
}
+ entry.setCanonical(dr.isCanonical());
datasetSequence.addDBRef(entry);
}
}
registerPDBFile(pdb.getId().trim(), pdbFile);
}
// if PDBId is unavailable then skip SIFTS mapping execution path
- isMapUsingSIFTs = isMapUsingSIFTs && pdb.isPPDBIdAvailable();
+ isMapUsingSIFTs = isMapUsingSIFTs && pdb.isPPDBIdAvailable() && !pdb.getId().startsWith("AF-");
} catch (Exception ex)
{
for (StructureCommandI cmd : cmds)
{
List<String> replies = executeCommand(cmd, true);
- response.addAll(replies);
+ if (replies != null)
+ {
+ response.addAll(replies);
+ }
}
return response;
} finally
import java.io.IOException;
import java.io.InputStream;
+import java.net.HttpURLConnection;
+import java.net.ProtocolException;
import java.net.URL;
+import java.util.List;
+
+import javax.ws.rs.HttpMethod;
public class HttpUtils
{
{
return file.startsWith("http://") || file.startsWith("https://");
}
+
+
+ /**
+ * wrapper to get/post to a URL or check headers
+ * @param url
+ * @param ids
+ * @param readTimeout
+ * @return
+ * @throws IOException
+ * @throws ProtocolException
+ */
+ public static boolean checkUrlAvailable(URL url,
+ int readTimeout) throws IOException, ProtocolException
+ {
+ // System.out.println(System.currentTimeMillis() + " " + url);
+
+ HttpURLConnection connection = (HttpURLConnection) url.openConnection();
+
+ connection.setRequestMethod(HttpMethod.HEAD);
+
+ connection.setDoInput(true);
+
+ connection.setUseCaches(false);
+ connection.setConnectTimeout(300);
+ connection.setReadTimeout(readTimeout);
+ return connection.getResponseCode() == 200;
+ }
}
import jalview.ws.dbsources.PfamFull;
import jalview.ws.dbsources.PfamSeed;
import jalview.ws.dbsources.RfamSeed;
+import jalview.ws.dbsources.TDBeacons;
import jalview.ws.dbsources.Uniprot;
import jalview.ws.seqfetcher.ASequenceFetcher;
import jalview.ws.seqfetcher.DbSourceProxy;
addDBRefSourceImpl(EmblSource.class);
addDBRefSourceImpl(EmblCdsSource.class);
addDBRefSourceImpl(Uniprot.class);
+ addDBRefSourceImpl(TDBeacons.class);
addDBRefSourceImpl(Pdb.class);
addDBRefSourceImpl(PfamFull.class);
addDBRefSourceImpl(PfamSeed.class);
--- /dev/null
+
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ 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.dbsources;
+
+import jalview.api.FeatureSettingsModelI;
+import jalview.datamodel.AlignmentAnnotation;
+import jalview.datamodel.AlignmentI;
+import jalview.datamodel.DBRefEntry;
+import jalview.datamodel.DBRefSource;
+import jalview.datamodel.PDBEntry;
+import jalview.datamodel.PDBEntry.Type;
+import jalview.datamodel.SequenceI;
+import jalview.io.DataSourceType;
+import jalview.io.FileFormat;
+import jalview.io.FileFormatI;
+import jalview.io.FormatAdapter;
+import jalview.io.PDBFeatureSettings;
+import jalview.structure.StructureImportSettings;
+import jalview.util.HttpUtils;
+import jalview.util.MessageManager;
+import jalview.ws.ebi.EBIFetchClient;
+import jalview.ws.utils.UrlDownloadClient;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+import com.stevesoft.pat.Regex;
+
+/**
+ * @author JimP
+ *
+ */
+public class EBIAlfaFold extends EbiFileRetrievedProxy
+{
+ private static final String SEPARATOR = "|";
+
+ private static final String COLON = ":";
+
+ private static final int PDB_ID_LENGTH = 4;
+
+ public EBIAlfaFold()
+ {
+ super();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see jalview.ws.DbSourceProxy#getAccessionSeparator()
+ */
+ @Override
+ public String getAccessionSeparator()
+ {
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see jalview.ws.DbSourceProxy#getAccessionValidator()
+ */
+ @Override
+ public Regex getAccessionValidator()
+ {
+ return new Regex("(AF-[A-Z]+[0-9]+[A-Z0-9]+-F1)");
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see jalview.ws.DbSourceProxy#getDbSource()
+ */
+ @Override
+ public String getDbSource()
+ {
+ return "ALPHAFOLD";
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see jalview.ws.DbSourceProxy#getDbVersion()
+ */
+ @Override
+ public String getDbVersion()
+ {
+ return "1";
+ }
+
+ public static String getAlphaFoldCifDownloadUrl(String id)
+ {
+ return "https://alphafold.ebi.ac.uk/files/" + id + "-model_v1.cif";
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see jalview.ws.DbSourceProxy#getSequenceRecords(java.lang.String[])
+ */
+ @Override
+ public AlignmentI getSequenceRecords(String queries) throws Exception
+ {
+ AlignmentI pdbAlignment = null;
+ String chain = null;
+ String id = null;
+ if (queries.indexOf(COLON) > -1)
+ {
+ chain = queries.substring(queries.indexOf(COLON) + 1);
+ id = queries.substring(0, queries.indexOf(COLON));
+ }
+ else
+ {
+ id = queries;
+ }
+
+ if (!isValidReference(id))
+ {
+ System.err.println(
+ "(AFClient) Ignoring invalid pdb query: '" + id + "'");
+ stopQuery();
+ return null;
+ }
+ String alphaFoldCif = getAlphaFoldCifDownloadUrl(id);
+
+ try
+ {
+ File tmpFile = File.createTempFile(id, "cif");
+ UrlDownloadClient.download(alphaFoldCif, tmpFile);
+
+ // may not need this check ?
+ file = tmpFile.getAbsolutePath();
+ if (file == null)
+ {
+ return null;
+ }
+
+ pdbAlignment = importDownloadedStructureFromUrl(alphaFoldCif, tmpFile, id, chain, getDbSource(),getDbVersion());
+
+
+ if (pdbAlignment == null || pdbAlignment.getHeight() < 1)
+ {
+ throw new Exception(MessageManager.formatMessage(
+ "exception.no_pdb_records_for_chain", new String[]
+ { id, ((chain == null) ? "' '" : chain) }));
+ }
+
+ } catch (Exception ex) // Problem parsing PDB file
+ {
+ stopQuery();
+ throw (ex);
+ }
+ return pdbAlignment;
+ }
+
+ /**
+ * general purpose structure importer - designed to yield alignment useful for transfer of annotation to associated sequences
+ * @param alphaFoldCif
+ * @param tmpFile
+ * @param id
+ * @param chain
+ * @param dbSource
+ * @param dbVersion
+ * @return
+ * @throws Exception
+ */
+ public static AlignmentI importDownloadedStructureFromUrl(String alphaFoldCif,
+ File tmpFile, String id, String chain, String dbSource, String dbVersion) throws Exception
+ {
+ String file = tmpFile.getAbsolutePath();
+ // todo get rid of Type and use FileFormatI instead?
+ FileFormatI fileFormat = FileFormat.MMCif;
+ AlignmentI pdbAlignment = new FormatAdapter().readFile(tmpFile,
+ DataSourceType.FILE, fileFormat);
+ if (pdbAlignment != null)
+ {
+ List<SequenceI> toremove = new ArrayList<SequenceI>();
+ for (SequenceI pdbcs : pdbAlignment.getSequences())
+ {
+ String chid = null;
+ // Mapping map=null;
+ for (PDBEntry pid : pdbcs.getAllPDBEntries())
+ {
+ if (pid.getFile() == file)
+ {
+ chid = pid.getChainCode();
+
+ }
+ }
+ if (chain == null || (chid != null && (chid.equals(chain)
+ || chid.trim().equals(chain.trim())
+ || (chain.trim().length() == 0 && chid.equals("_")))))
+ {
+ // FIXME seems to result in 'PDB|1QIP|1qip|A' - 1QIP is redundant.
+ // TODO: suggest simplify naming to 1qip|A as default name defined
+ pdbcs.setName(id + SEPARATOR + pdbcs.getName());
+ // Might need to add more metadata to the PDBEntry object
+ // like below
+ /*
+ * PDBEntry entry = new PDBEntry(); // Construct the PDBEntry
+ * entry.setId(id); if (entry.getProperty() == null)
+ * entry.setProperty(new Hashtable());
+ * entry.getProperty().put("chains", pdbchain.id + "=" +
+ * sq.getStart() + "-" + sq.getEnd());
+ * sq.getDatasetSequence().addPDBId(entry);
+ */
+ // Add PDB DB Refs
+ // We make a DBRefEtntry because we have obtained the PDB file from
+ // a
+ // verifiable source
+ // JBPNote - PDB DBRefEntry should also carry the chain and mapping
+ // information
+ if (dbSource != null)
+ {
+ DBRefEntry dbentry = new DBRefEntry(dbSource,
+
+ dbVersion, (chid == null ? id : id + chid));
+ // dbentry.setMap()
+ pdbcs.addDBRef(dbentry);
+ }
+ }
+ else
+ {
+ // mark this sequence to be removed from the alignment
+ // - since it's not from the right chain
+ toremove.add(pdbcs);
+ }
+ }
+ // now remove marked sequences
+ for (SequenceI pdbcs : toremove)
+ {
+ pdbAlignment.deleteSequence(pdbcs);
+ if (pdbcs.getAnnotation() != null)
+ {
+ for (AlignmentAnnotation aa : pdbcs.getAnnotation())
+ {
+ pdbAlignment.deleteAnnotation(aa);
+ }
+ }
+ }
+ }
+ return pdbAlignment;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see jalview.ws.DbSourceProxy#isValidReference(java.lang.String)
+ */
+ @Override
+ public boolean isValidReference(String accession)
+ {
+ Regex r = getAccessionValidator();
+ return r.search(accession.trim());
+ }
+
+ /**
+ * human glyoxalase
+ */
+ @Override
+ public String getTestQuery()
+ {
+ return "1QIP";
+ }
+
+ @Override
+ public String getDbName()
+ {
+ return "PDB"; // getDbSource();
+ }
+
+ @Override
+ public int getTier()
+ {
+ return 0;
+ }
+
+ /**
+ * Returns a descriptor for suitable feature display settings with
+ * <ul>
+ * <li>ResNums or insertions features visible</li>
+ * <li>insertions features coloured red</li>
+ * <li>ResNum features coloured by label</li>
+ * <li>Insertions displayed above (on top of) ResNums</li>
+ * </ul>
+ */
+ @Override
+ public FeatureSettingsModelI getFeatureColourScheme()
+ {
+ return new PDBFeatureSettings();
+ }
+}
--- /dev/null
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ 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.dbsources;
+
+import jalview.bin.Cache;
+import jalview.datamodel.Alignment;
+import jalview.datamodel.AlignmentI;
+import jalview.datamodel.DBRefEntry;
+import jalview.datamodel.DBRefSource;
+import jalview.datamodel.PDBEntry;
+import jalview.datamodel.Sequence;
+import jalview.datamodel.SequenceFeature;
+import jalview.datamodel.SequenceI;
+import jalview.schemes.ResidueProperties;
+import jalview.util.StringUtils;
+import jalview.ws.seqfetcher.DbSourceProxyImpl;
+import jalview.xml.binding.embl.ROOT;
+import jalview.xml.binding.uniprot.DbReferenceType;
+import jalview.xml.binding.uniprot.Entry;
+import jalview.xml.binding.uniprot.FeatureType;
+import jalview.xml.binding.uniprot.LocationType;
+import jalview.xml.binding.uniprot.PositionType;
+import jalview.xml.binding.uniprot.PropertyType;
+
+import java.io.InputStream;
+import java.net.URL;
+import java.net.URLConnection;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Vector;
+
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.JAXBException;
+import javax.xml.stream.FactoryConfigurationError;
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import com.stevesoft.pat.Regex;
+
+/**
+ * This class queries the Uniprot database for sequence data, unmarshals the
+ * returned XML, and converts it to Jalview Sequence records (including attached
+ * database references and sequence features)
+ *
+ * @author JimP
+ *
+ */
+public class TDBeacons extends DbSourceProxyImpl
+{
+ private static final String DEFAULT_UNIPROT_DOMAIN = "https://www.uniprot.org";
+
+ private static final String BAR_DELIMITER = "|";
+
+ private static final String DEFAULT_THREEDBEACONS_DOMAIN = "https://wwwdev.ebi.ac.uk/pdbe/pdbe-kb/3dbeacons-hub-api/uniprot/summary/";
+
+ /**
+ * Constructor
+ */
+ public TDBeacons()
+ {
+ super();
+ }
+
+ private String getDomain()
+ {
+ return Cache.getDefault("UNIPROT_DOMAIN", DEFAULT_UNIPROT_DOMAIN);
+ //return Cache.getDefault("3DB_DOMAIN", DEFAULT_THREEDBEACONS_DOMAIN );
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see jalview.ws.DbSourceProxy#getAccessionSeparator()
+ */
+ @Override
+ public String getAccessionSeparator()
+ {
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see jalview.ws.DbSourceProxy#getAccessionValidator()
+ */
+ @Override
+ public Regex getAccessionValidator()
+ {
+ return new Regex("([A-Z]+[0-9]+[A-Z0-9]+|[A-Z0-9]+_[A-Z0-9]+)");
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see jalview.ws.DbSourceProxy#getDbSource()
+ */
+ @Override
+ public String getDbSource()
+ {
+ return "3d-beacons";// DBRefSource.UNIPROT;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see jalview.ws.DbSourceProxy#getDbVersion()
+ */
+ @Override
+ public String getDbVersion()
+ {
+ return "0"; // we really don't know what version we're on.
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see jalview.ws.DbSourceProxy#getSequenceRecords(java.lang.String[])
+ */
+ @Override
+ public AlignmentI getSequenceRecords(String queries) throws Exception
+ {
+ startQuery();
+ try
+ {
+ queries = queries.toUpperCase().replaceAll(
+ "(UNIPROT\\|?|UNIPROT_|UNIREF\\d+_|UNIREF\\d+\\|?)", "");
+ AlignmentI al = null;
+
+ String downloadstring = getDomain() + "/uniprot/" + queries
+ + ".xml";
+// String downloadstring = getDomain() + queries + ".json";
+
+ URL url = new URL(downloadstring);
+ URLConnection urlconn = url.openConnection();
+ InputStream istr = urlconn.getInputStream();
+ List<Entry> entries = getUniprotEntries(istr);
+ if (entries != null)
+ {
+ List<SequenceI> seqs = new ArrayList<>();
+ for (Entry entry : entries)
+ {
+ seqs.add(uniprotEntryToSequence(entry));
+ }
+ al = new Alignment(seqs.toArray(new SequenceI[seqs.size()]));
+ }
+
+ stopQuery();
+ return al;
+ } catch (Exception e)
+ {
+ throw (e);
+ } finally
+ {
+ stopQuery();
+ }
+ }
+
+ /**
+ * Converts an Entry object (bound from Uniprot XML) to a Jalview Sequence
+ *
+ * @param entry
+ * @return
+ */
+ SequenceI uniprotEntryToSequence(Entry entry)
+ {
+ String id = getUniprotEntryId(entry);
+ /*
+ * Sequence should not include any whitespace, but JAXB leaves these in
+ */
+ String seqString = entry.getSequence().getValue().replaceAll("\\s*",
+ "");
+
+ SequenceI sequence = new Sequence(id,
+ seqString);
+ sequence.setDescription(getUniprotEntryDescription(entry));
+
+ /*
+ * add a 'self' DBRefEntry for each accession
+ */
+ final String dbVersion = getDbVersion();
+ List<DBRefEntry> dbRefs = new ArrayList<>();
+ for (String accessionId : entry.getAccession())
+ {
+ DBRefEntry dbRef = new DBRefEntry(DBRefSource.UNIPROT, dbVersion,
+ accessionId);
+ dbRefs.add(dbRef);
+ }
+
+ /*
+ * add a DBRefEntry for each dbReference element in the XML;
+ * also add a PDBEntry if type="PDB";
+ * also add an EMBLCDS dbref if protein sequence id is given
+ * also add an Ensembl dbref " " " " " "
+ */
+ Vector<PDBEntry> pdbRefs = new Vector<>();
+ for (DbReferenceType dbref : entry.getDbReference())
+ {
+ String type = dbref.getType();
+ DBRefEntry dbr = new DBRefEntry(type,
+ DBRefSource.UNIPROT + ":" + dbVersion, dbref.getId());
+ dbRefs.add(dbr);
+ if ("PDB".equals(type))
+ {
+ pdbRefs.add(new PDBEntry(dbr));
+ }
+ if ("EMBL".equals(type))
+ {
+ /*
+ * e.g. Uniprot accession Q9BXM7 has
+ * <dbReference type="EMBL" id="M19359">
+ * <property type="protein sequence ID" value="AAA40981.1"/>
+ * <property type="molecule type" value="Genomic_DNA"/>
+ * </dbReference>
+ */
+ String cdsId = getProperty(dbref.getProperty(),
+ "protein sequence ID");
+ if (cdsId != null && cdsId.trim().length() > 0)
+ {
+ // remove version
+ String[] vrs = cdsId.split("\\.");
+ String version = vrs.length > 1 ? vrs[1]
+ : DBRefSource.UNIPROT + ":" + dbVersion;
+ dbr = new DBRefEntry(DBRefSource.EMBLCDS, version, vrs[0]);
+ dbRefs.add(dbr);
+ }
+ }
+ if ("Ensembl".equals(type))
+ {
+ /*
+ * e.g. Uniprot accession Q9BXM7 has
+ * <dbReference type="Ensembl" id="ENST00000321556">
+ * <molecule id="Q9BXM7-1"/>
+ * <property type="protein sequence ID" value="ENSP00000364204"/>
+ * <property type="gene ID" value="ENSG00000158828"/>
+ * </dbReference>
+ */
+ String cdsId = getProperty(dbref.getProperty(),
+ "protein sequence ID");
+ if (cdsId != null && cdsId.trim().length() > 0)
+ {
+ dbr = new DBRefEntry(DBRefSource.ENSEMBL,
+ DBRefSource.UNIPROT + ":" + dbVersion, cdsId.trim());
+ dbRefs.add(dbr);
+ }
+ }
+ }
+
+ /*
+ * create features; they have either begin and end, or position, in XML
+ */
+ sequence.setPDBId(pdbRefs);
+ if (entry.getFeature() != null)
+ {
+ for (FeatureType uf : entry.getFeature())
+ {
+ LocationType location = uf.getLocation();
+ int start = 0;
+ int end = 0;
+ if (location.getPosition() != null)
+ {
+ start = location.getPosition().getPosition().intValue();
+ end = start;
+ }
+ else
+ {
+ start = location.getBegin().getPosition().intValue();
+ end = location.getEnd().getPosition().intValue();
+ }
+ SequenceFeature sf = new SequenceFeature(uf.getType(),
+ getDescription(uf), start, end, "Uniprot");
+ sf.setStatus(uf.getStatus());
+ sequence.addSequenceFeature(sf);
+ }
+ }
+ for (DBRefEntry dbr : dbRefs)
+ {
+ sequence.addDBRef(dbr);
+ }
+ return sequence;
+ }
+
+ /**
+ * A helper method that builds a sequence feature description
+ *
+ * @param feature
+ * @return
+ */
+ static String getDescription(FeatureType feature)
+ {
+ String orig = feature.getOriginal();
+ List<String> variants = feature.getVariation();
+ StringBuilder sb = new StringBuilder();
+
+ /*
+ * append variant in standard format if present
+ * e.g. p.Arg59Lys
+ * multiple variants are split over lines using <br>
+ */
+ boolean asHtml = false;
+ if (orig != null && !orig.isEmpty() && variants != null
+ && !variants.isEmpty())
+ {
+ int p = 0;
+ for (String var : variants)
+ {
+ // TODO proper HGVS nomenclature for delins structural variations
+ // http://varnomen.hgvs.org/recommendations/protein/variant/delins/
+ // for now we are pragmatic - any orig/variant sequence longer than
+ // three characters is shown with single-character notation rather than
+ // three-letter notation
+ sb.append("p.");
+ if (orig.length() < 4)
+ {
+ for (int c = 0, clen = orig.length(); c < clen; c++)
+ {
+ char origchar = orig.charAt(c);
+ String orig3 = ResidueProperties.aa2Triplet.get("" + origchar);
+ sb.append(orig3 == null ? origchar
+ : StringUtils.toSentenceCase(orig3));
+ }
+ }
+ else
+ {
+ sb.append(orig);
+ }
+
+ LocationType location = feature.getLocation();
+ PositionType start = location.getPosition() == null
+ ? location.getBegin()
+ : location.getPosition();
+ sb.append(Integer.toString(start.getPosition().intValue()));
+
+ if (var.length() < 4)
+ {
+ for (int c = 0, clen = var.length(); c < clen; c++)
+ {
+ char varchar = var.charAt(c);
+ String var3 = ResidueProperties.aa2Triplet.get("" + varchar);
+
+ sb.append(var3 != null ? StringUtils.toSentenceCase(var3)
+ : "" + varchar);
+ }
+ }
+ else
+ {
+ sb.append(var);
+ }
+ if (++p != variants.size())
+ {
+ sb.append("<br/> ");
+ asHtml = true;
+ }
+ else
+ {
+ sb.append(" ");
+ }
+ }
+ }
+ String description = feature.getDescription();
+ if (description != null)
+ {
+ sb.append(description);
+ }
+ if (asHtml)
+ {
+ sb.insert(0, "<html>");
+ sb.append("</html>");
+ }
+
+ return sb.toString();
+ }
+
+ /**
+ * A helper method that searches the list of properties for one with the given
+ * key, and if found returns the property value, else returns null
+ *
+ * @param properties
+ * @param key
+ * @return
+ */
+ static String getProperty(List<PropertyType> properties, String key)
+ {
+ String value = null;
+ if (properties != null)
+ {
+ for (PropertyType prop : properties)
+ {
+ if (key.equals(prop.getType()))
+ {
+ value = prop.getValue();
+ break;
+ }
+ }
+ }
+ return value;
+ }
+
+ /**
+ * Extracts xml element entry/protein/recommendedName/fullName
+ *
+ * @param entry
+ * @return
+ */
+ static String getUniprotEntryDescription(Entry entry)
+ {
+ String desc = "";
+ if (entry.getProtein() != null
+ && entry.getProtein().getRecommendedName() != null)
+ {
+ // fullName is mandatory if recommendedName is present
+ desc = entry.getProtein().getRecommendedName().getFullName()
+ .getValue();
+ }
+ return desc;
+ }
+
+ /**
+ * Constructs a sequence id by concatenating all entry/name elements with '|'
+ * separator
+ *
+ * @param entry
+ * @return
+ */
+ static String getUniprotEntryId(Entry entry)
+ {
+ StringBuilder name = new StringBuilder(32);
+ for (String n : entry.getName())
+ {
+ if (name.length() > 0)
+ {
+ name.append(BAR_DELIMITER);
+ }
+ name.append(n);
+ }
+ return name.toString();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see jalview.ws.DbSourceProxy#isValidReference(java.lang.String)
+ */
+ @Override
+ public boolean isValidReference(String accession)
+ {
+ // TODO: make the following a standard validator
+ return (accession == null || accession.length() < 2) ? false
+ : getAccessionValidator().search(accession);
+ }
+
+ /**
+ * return LDHA_CHICK uniprot entry
+ */
+ @Override
+ public String getTestQuery()
+ {
+ return "P00340";
+ }
+
+ @Override
+ public String getDbName()
+ {
+ return "Uniprot"; // getDbSource();
+ }
+
+ @Override
+ public int getTier()
+ {
+ return 0;
+ }
+
+ /**
+ * Reads the reply to the EBI Fetch Uniprot data query, unmarshals it to an
+ * Uniprot object, and returns the enclosed Entry objects, or null on any
+ * failure
+ *
+ * @param is
+ * @return
+ */
+ public List<Entry> getUniprotEntries(InputStream is)
+ {
+ List<Entry> entries = null;
+ try
+ {
+ JAXBContext jc = JAXBContext
+ .newInstance("jalview.xml.binding.uniprot");
+ XMLStreamReader streamReader = XMLInputFactory.newInstance()
+ .createXMLStreamReader(is);
+ javax.xml.bind.Unmarshaller um = jc.createUnmarshaller();
+ JAXBElement<jalview.xml.binding.uniprot.Uniprot> uniprotElement =
+ um.unmarshal(streamReader, jalview.xml.binding.uniprot.Uniprot.class);
+ jalview.xml.binding.uniprot.Uniprot uniprot = uniprotElement.getValue();
+
+ if (uniprot != null && !uniprot.getEntry().isEmpty())
+ {
+ entries = uniprot.getEntry();
+ }
+ } catch (JAXBException | XMLStreamException
+ | FactoryConfigurationError e)
+ {
+ e.printStackTrace();
+ }
+ return entries;
+ }
+}
*/
final String dbVersion = getDbVersion();
List<DBRefEntry> dbRefs = new ArrayList<>();
+ boolean canonical=true;
for (String accessionId : entry.getAccession())
{
DBRefEntry dbRef = new DBRefEntry(DBRefSource.UNIPROT, dbVersion,
- accessionId);
+ accessionId,null,canonical);
+ canonical=false;
dbRefs.add(dbRef);
}
//
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// This file was generated by the Eclipse Implementation of JAXB, v2.3.3
+// See https://eclipse-ee4j.github.io/jaxb-ri
// Any modifications to this file will be lost upon recompilation of the source schema.
-// Generated on: 2019.06.07 at 02:21:15 PM BST
+// Generated on: 2021.08.30 at 11:05:22 AM BST
//
/**
- * <p>Java class for anonymous complex type.
+ * <p>Java class for anonymous complex type.
*
- * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>The following schema fragment specifies the expected content contained within this class.
*
- * <pre>
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <sequence>
- * <element name="alcodon" maxOccurs="unbounded" minOccurs="0">
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <attribute name="pos1" type="{http://www.w3.org/2001/XMLSchema}integer" />
- * <attribute name="pos2" type="{http://www.w3.org/2001/XMLSchema}integer" />
- * <attribute name="pos3" type="{http://www.w3.org/2001/XMLSchema}integer" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </element>
- * <element name="alcodMap" maxOccurs="unbounded" minOccurs="0">
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <sequence>
- * <element ref="{www.vamsas.ac.uk/jalview/version2}Mapping"/>
- * </sequence>
- * <attribute name="dnasq" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </element>
- * </sequence>
- * </restriction>
- * </complexContent>
- * </complexType>
- * </pre>
+ * <pre>
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;sequence&gt;
+ * &lt;element name="alcodon" maxOccurs="unbounded" minOccurs="0"&gt;
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;attribute name="pos1" type="{http://www.w3.org/2001/XMLSchema}integer" /&gt;
+ * &lt;attribute name="pos2" type="{http://www.w3.org/2001/XMLSchema}integer" /&gt;
+ * &lt;attribute name="pos3" type="{http://www.w3.org/2001/XMLSchema}integer" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * &lt;/element&gt;
+ * &lt;element name="alcodMap" maxOccurs="unbounded" minOccurs="0"&gt;
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;sequence&gt;
+ * &lt;element ref="{www.vamsas.ac.uk/jalview/version2}Mapping"/&gt;
+ * &lt;/sequence&gt;
+ * &lt;attribute name="dnasq" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * &lt;/element&gt;
+ * &lt;/sequence&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * </pre>
*
*
*/
/**
* Gets the value of the alcodon property.
*
- * <p>
+ * <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
- * This is why there is not a <CODE>set</CODE> method for the alcodon property.
+ * This is why there is not a <CODE>set</CODE> method for the alcodon property.
*
- * <p>
+ * <p>
* For example, to add a new item, do as follows:
- * <pre>
+ * <pre>
* getAlcodon().add(newItem);
- * </pre>
+ * </pre>
*
*
- * <p>
+ * <p>
* Objects of the following type(s) are allowed in the list
* {@link AlcodonFrame.Alcodon }
*
/**
* Gets the value of the alcodMap property.
*
- * <p>
+ * <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
- * This is why there is not a <CODE>set</CODE> method for the alcodMap property.
+ * This is why there is not a <CODE>set</CODE> method for the alcodMap property.
*
- * <p>
+ * <p>
* For example, to add a new item, do as follows:
- * <pre>
+ * <pre>
* getAlcodMap().add(newItem);
- * </pre>
+ * </pre>
*
*
- * <p>
+ * <p>
* Objects of the following type(s) are allowed in the list
* {@link AlcodonFrame.AlcodMap }
*
/**
- * <p>Java class for anonymous complex type.
+ * <p>Java class for anonymous complex type.
*
- * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>The following schema fragment specifies the expected content contained within this class.
*
- * <pre>
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <sequence>
- * <element ref="{www.vamsas.ac.uk/jalview/version2}Mapping"/>
- * </sequence>
- * <attribute name="dnasq" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </pre>
+ * <pre>
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;sequence&gt;
+ * &lt;element ref="{www.vamsas.ac.uk/jalview/version2}Mapping"/&gt;
+ * &lt;/sequence&gt;
+ * &lt;attribute name="dnasq" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * </pre>
*
*
*/
* Element may have either all pos1,2,3 attributes specified, or none at all (indicating a gapped column with no translated peptide).
*
*
- * <p>Java class for anonymous complex type.
+ * <p>Java class for anonymous complex type.
*
- * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>The following schema fragment specifies the expected content contained within this class.
*
- * <pre>
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <attribute name="pos1" type="{http://www.w3.org/2001/XMLSchema}integer" />
- * <attribute name="pos2" type="{http://www.w3.org/2001/XMLSchema}integer" />
- * <attribute name="pos3" type="{http://www.w3.org/2001/XMLSchema}integer" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </pre>
+ * <pre>
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;attribute name="pos1" type="{http://www.w3.org/2001/XMLSchema}integer" /&gt;
+ * &lt;attribute name="pos2" type="{http://www.w3.org/2001/XMLSchema}integer" /&gt;
+ * &lt;attribute name="pos3" type="{http://www.w3.org/2001/XMLSchema}integer" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * </pre>
*
*
*/
//
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// This file was generated by the Eclipse Implementation of JAXB, v2.3.3
+// See https://eclipse-ee4j.github.io/jaxb-ri
// Any modifications to this file will be lost upon recompilation of the source schema.
-// Generated on: 2019.06.07 at 02:21:15 PM BST
+// Generated on: 2021.08.30 at 11:05:22 AM BST
//
/**
- * <p>Java class for anonymous complex type.
+ * <p>Java class for anonymous complex type.
*
- * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>The following schema fragment specifies the expected content contained within this class.
*
- * <pre>
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <sequence>
- * <element ref="{www.vamsas.ac.uk/jalview/version2}annotationElement" maxOccurs="unbounded" minOccurs="0"/>
- * <element name="label" type="{http://www.w3.org/2001/XMLSchema}string"/>
- * <element name="description" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- * <element name="thresholdLine" minOccurs="0">
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <attribute name="label" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="value" type="{http://www.w3.org/2001/XMLSchema}float" />
- * <attribute name="colour" type="{http://www.w3.org/2001/XMLSchema}int" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </element>
- * <element name="property" maxOccurs="unbounded" minOccurs="0">
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="value" type="{http://www.w3.org/2001/XMLSchema}string" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </element>
- * </sequence>
- * <attribute name="graph" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="graphType" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="sequenceRef" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="groupRef" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="graphColour" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="graphGroup" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="graphHeight" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="id" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="scoreOnly" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
- * <attribute name="score" type="{http://www.w3.org/2001/XMLSchema}double" />
- * <attribute name="visible" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="centreColLabels" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="scaleColLabels" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="showAllColLabels" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="autoCalculated" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
- * <attribute name="belowAlignment" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
- * <attribute name="calcId" type="{http://www.w3.org/2001/XMLSchema}string" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </pre>
+ * <pre>
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;sequence&gt;
+ * &lt;element ref="{www.vamsas.ac.uk/jalview/version2}annotationElement" maxOccurs="unbounded" minOccurs="0"/&gt;
+ * &lt;element name="label" type="{http://www.w3.org/2001/XMLSchema}string"/&gt;
+ * &lt;element name="description" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
+ * &lt;element name="thresholdLine" minOccurs="0"&gt;
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;attribute name="label" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="value" type="{http://www.w3.org/2001/XMLSchema}float" /&gt;
+ * &lt;attribute name="colour" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * &lt;/element&gt;
+ * &lt;element name="property" maxOccurs="unbounded" minOccurs="0"&gt;
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="value" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * &lt;/element&gt;
+ * &lt;/sequence&gt;
+ * &lt;attribute name="graph" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="graphType" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="sequenceRef" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="groupRef" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="graphColour" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="graphGroup" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="graphHeight" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="id" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="scoreOnly" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
+ * &lt;attribute name="score" type="{http://www.w3.org/2001/XMLSchema}double" /&gt;
+ * &lt;attribute name="visible" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="centreColLabels" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="scaleColLabels" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="showAllColLabels" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="autoCalculated" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
+ * &lt;attribute name="belowAlignment" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /&gt;
+ * &lt;attribute name="calcId" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * </pre>
*
*
*/
/**
* Gets the value of the annotationElement property.
*
- * <p>
+ * <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
- * This is why there is not a <CODE>set</CODE> method for the annotationElement property.
+ * This is why there is not a <CODE>set</CODE> method for the annotationElement property.
*
- * <p>
+ * <p>
* For example, to add a new item, do as follows:
- * <pre>
+ * <pre>
* getAnnotationElement().add(newItem);
- * </pre>
+ * </pre>
*
*
- * <p>
+ * <p>
* Objects of the following type(s) are allowed in the list
* {@link AnnotationElement }
*
/**
* Gets the value of the property property.
*
- * <p>
+ * <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
- * This is why there is not a <CODE>set</CODE> method for the property property.
+ * This is why there is not a <CODE>set</CODE> method for the property property.
*
- * <p>
+ * <p>
* For example, to add a new item, do as follows:
- * <pre>
+ * <pre>
* getProperty().add(newItem);
- * </pre>
+ * </pre>
*
*
- * <p>
+ * <p>
* Objects of the following type(s) are allowed in the list
* {@link Annotation.Property }
*
/**
- * <p>Java class for anonymous complex type.
+ * <p>Java class for anonymous complex type.
*
- * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>The following schema fragment specifies the expected content contained within this class.
*
- * <pre>
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="value" type="{http://www.w3.org/2001/XMLSchema}string" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </pre>
+ * <pre>
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="value" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * </pre>
*
*
*/
/**
- * <p>Java class for anonymous complex type.
+ * <p>Java class for anonymous complex type.
*
- * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>The following schema fragment specifies the expected content contained within this class.
*
- * <pre>
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <attribute name="label" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="value" type="{http://www.w3.org/2001/XMLSchema}float" />
- * <attribute name="colour" type="{http://www.w3.org/2001/XMLSchema}int" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </pre>
+ * <pre>
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;attribute name="label" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="value" type="{http://www.w3.org/2001/XMLSchema}float" /&gt;
+ * &lt;attribute name="colour" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * </pre>
*
*
*/
//
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// This file was generated by the Eclipse Implementation of JAXB, v2.3.3
+// See https://eclipse-ee4j.github.io/jaxb-ri
// Any modifications to this file will be lost upon recompilation of the source schema.
-// Generated on: 2019.06.07 at 02:21:15 PM BST
+// Generated on: 2021.08.30 at 11:05:22 AM BST
//
/**
- * <p>Java class for AnnotationColourScheme complex type.
+ * <p>Java class for AnnotationColourScheme complex type.
*
- * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>The following schema fragment specifies the expected content contained within this class.
*
- * <pre>
- * <complexType name="AnnotationColourScheme">
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <attribute name="aboveThreshold" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="annotation" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="minColour" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="maxColour" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="colourScheme" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="threshold" type="{http://www.w3.org/2001/XMLSchema}float" />
- * <attribute name="perSequence" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="predefinedColours" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </pre>
+ * <pre>
+ * &lt;complexType name="AnnotationColourScheme"&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;attribute name="aboveThreshold" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="annotation" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="minColour" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="maxColour" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="colourScheme" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="threshold" type="{http://www.w3.org/2001/XMLSchema}float" /&gt;
+ * &lt;attribute name="perSequence" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="predefinedColours" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * </pre>
*
*
*/
//
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// This file was generated by the Eclipse Implementation of JAXB, v2.3.3
+// See https://eclipse-ee4j.github.io/jaxb-ri
// Any modifications to this file will be lost upon recompilation of the source schema.
-// Generated on: 2019.06.07 at 02:21:15 PM BST
+// Generated on: 2021.08.30 at 11:05:22 AM BST
//
/**
- * <p>Java class for anonymous complex type.
+ * <p>Java class for anonymous complex type.
*
- * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>The following schema fragment specifies the expected content contained within this class.
*
- * <pre>
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <sequence>
- * <element name="displayCharacter" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- * <element name="description" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- * <element name="secondaryStructure" minOccurs="0">
- * <simpleType>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}string">
- * <length value="1"/>
- * </restriction>
- * </simpleType>
- * </element>
- * <element name="value" type="{http://www.w3.org/2001/XMLSchema}float" minOccurs="0"/>
- * </sequence>
- * <attribute name="position" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="colour" type="{http://www.w3.org/2001/XMLSchema}int" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </pre>
+ * <pre>
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;sequence&gt;
+ * &lt;element name="displayCharacter" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
+ * &lt;element name="description" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
+ * &lt;element name="secondaryStructure" minOccurs="0"&gt;
+ * &lt;simpleType&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string"&gt;
+ * &lt;length value="1"/&gt;
+ * &lt;/restriction&gt;
+ * &lt;/simpleType&gt;
+ * &lt;/element&gt;
+ * &lt;element name="value" type="{http://www.w3.org/2001/XMLSchema}float" minOccurs="0"/&gt;
+ * &lt;/sequence&gt;
+ * &lt;attribute name="position" use="required" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="colour" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * </pre>
*
*
*/
//
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// This file was generated by the Eclipse Implementation of JAXB, v2.3.3
+// See https://eclipse-ee4j.github.io/jaxb-ri
// Any modifications to this file will be lost upon recompilation of the source schema.
-// Generated on: 2019.06.07 at 02:21:15 PM BST
+// Generated on: 2021.08.30 at 11:05:22 AM BST
//
/**
- * <p>Java class for DoubleMatrix complex type.
+ * <p>Java class for DoubleMatrix complex type.
*
- * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>The following schema fragment specifies the expected content contained within this class.
*
- * <pre>
- * <complexType name="DoubleMatrix">
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <sequence>
- * <element name="row" type="{www.jalview.org}DoubleVector" maxOccurs="unbounded" minOccurs="0"/>
- * <element name="D" type="{www.jalview.org}DoubleVector" minOccurs="0"/>
- * <element name="E" type="{www.jalview.org}DoubleVector" minOccurs="0"/>
- * </sequence>
- * <attribute name="rows" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="columns" type="{http://www.w3.org/2001/XMLSchema}int" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </pre>
+ * <pre>
+ * &lt;complexType name="DoubleMatrix"&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;sequence&gt;
+ * &lt;element name="row" type="{www.jalview.org}DoubleVector" maxOccurs="unbounded" minOccurs="0"/&gt;
+ * &lt;element name="D" type="{www.jalview.org}DoubleVector" minOccurs="0"/&gt;
+ * &lt;element name="E" type="{www.jalview.org}DoubleVector" minOccurs="0"/&gt;
+ * &lt;/sequence&gt;
+ * &lt;attribute name="rows" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="columns" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * </pre>
*
*
*/
/**
* Gets the value of the row property.
*
- * <p>
+ * <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
- * This is why there is not a <CODE>set</CODE> method for the row property.
+ * This is why there is not a <CODE>set</CODE> method for the row property.
*
- * <p>
+ * <p>
* For example, to add a new item, do as follows:
- * <pre>
+ * <pre>
* getRow().add(newItem);
- * </pre>
+ * </pre>
*
*
- * <p>
+ * <p>
* Objects of the following type(s) are allowed in the list
* {@link DoubleVector }
*
//
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// This file was generated by the Eclipse Implementation of JAXB, v2.3.3
+// See https://eclipse-ee4j.github.io/jaxb-ri
// Any modifications to this file will be lost upon recompilation of the source schema.
-// Generated on: 2019.06.07 at 02:21:15 PM BST
+// Generated on: 2021.08.30 at 11:05:22 AM BST
//
/**
- * <p>Java class for DoubleVector complex type.
+ * <p>Java class for DoubleVector complex type.
*
- * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>The following schema fragment specifies the expected content contained within this class.
*
- * <pre>
- * <complexType name="DoubleVector">
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <sequence>
- * <element name="v" type="{http://www.w3.org/2001/XMLSchema}double" maxOccurs="unbounded" minOccurs="0"/>
- * </sequence>
- * </restriction>
- * </complexContent>
- * </complexType>
- * </pre>
+ * <pre>
+ * &lt;complexType name="DoubleVector"&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;sequence&gt;
+ * &lt;element name="v" type="{http://www.w3.org/2001/XMLSchema}double" maxOccurs="unbounded" minOccurs="0"/&gt;
+ * &lt;/sequence&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * </pre>
*
*
*/
/**
* Gets the value of the v property.
*
- * <p>
+ * <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
- * This is why there is not a <CODE>set</CODE> method for the v property.
+ * This is why there is not a <CODE>set</CODE> method for the v property.
*
- * <p>
+ * <p>
* For example, to add a new item, do as follows:
- * <pre>
+ * <pre>
* getV().add(newItem);
- * </pre>
+ * </pre>
*
*
- * <p>
+ * <p>
* Objects of the following type(s) are allowed in the list
* {@link Double }
*
//
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// This file was generated by the Eclipse Implementation of JAXB, v2.3.3
+// See https://eclipse-ee4j.github.io/jaxb-ri
// Any modifications to this file will be lost upon recompilation of the source schema.
-// Generated on: 2019.06.07 at 02:21:15 PM BST
+// Generated on: 2021.08.30 at 11:05:22 AM BST
//
/**
- * <p>Java class for feature complex type.
+ * <p>Java class for feature complex type.
*
- * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>The following schema fragment specifies the expected content contained within this class.
*
- * <pre>
- * <complexType name="feature">
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <sequence>
- * <element name="otherData" maxOccurs="unbounded" minOccurs="0">
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <attribute name="key" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="key2" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="value" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </element>
- * </sequence>
- * <attribute name="begin" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="end" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="type" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="description" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="status" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="featureGroup" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="score" type="{http://www.w3.org/2001/XMLSchema}float" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </pre>
+ * <pre>
+ * &lt;complexType name="feature"&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;sequence&gt;
+ * &lt;element name="otherData" maxOccurs="unbounded" minOccurs="0"&gt;
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;attribute name="key" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="key2" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="value" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * &lt;/element&gt;
+ * &lt;/sequence&gt;
+ * &lt;attribute name="begin" use="required" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="end" use="required" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="type" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="description" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="status" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="featureGroup" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="score" type="{http://www.w3.org/2001/XMLSchema}float" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * </pre>
*
*
*/
/**
* Gets the value of the otherData property.
*
- * <p>
+ * <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
- * This is why there is not a <CODE>set</CODE> method for the otherData property.
+ * This is why there is not a <CODE>set</CODE> method for the otherData property.
*
- * <p>
+ * <p>
* For example, to add a new item, do as follows:
- * <pre>
+ * <pre>
* getOtherData().add(newItem);
- * </pre>
+ * </pre>
*
*
- * <p>
+ * <p>
* Objects of the following type(s) are allowed in the list
* {@link Feature.OtherData }
*
/**
- * <p>Java class for anonymous complex type.
+ * <p>Java class for anonymous complex type.
*
- * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>The following schema fragment specifies the expected content contained within this class.
*
- * <pre>
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <attribute name="key" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="key2" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="value" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </pre>
+ * <pre>
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;attribute name="key" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="key2" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="value" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * </pre>
*
*
*/
//
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// This file was generated by the Eclipse Implementation of JAXB, v2.3.3
+// See https://eclipse-ee4j.github.io/jaxb-ri
// Any modifications to this file will be lost upon recompilation of the source schema.
-// Generated on: 2019.06.07 at 02:21:15 PM BST
+// Generated on: 2021.08.30 at 11:05:22 AM BST
//
/**
- * <p>Java class for FeatureMatcher complex type.
+ * <p>Java class for FeatureMatcher complex type.
*
- * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>The following schema fragment specifies the expected content contained within this class.
*
- * <pre>
- * <complexType name="FeatureMatcher">
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <sequence>
- * <element name="attributeName" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="2" minOccurs="0"/>
- * <element name="condition" type="{http://www.w3.org/2001/XMLSchema}string"/>
- * <element name="value" type="{http://www.w3.org/2001/XMLSchema}string"/>
- * </sequence>
- * <attribute name="by" type="{www.jalview.org/colours}FilterBy" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </pre>
+ * <pre>
+ * &lt;complexType name="FeatureMatcher"&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;sequence&gt;
+ * &lt;element name="attributeName" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="2" minOccurs="0"/&gt;
+ * &lt;element name="condition" type="{http://www.w3.org/2001/XMLSchema}string"/&gt;
+ * &lt;element name="value" type="{http://www.w3.org/2001/XMLSchema}string"/&gt;
+ * &lt;/sequence&gt;
+ * &lt;attribute name="by" type="{www.jalview.org/colours}FilterBy" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * </pre>
*
*
*/
/**
* Gets the value of the attributeName property.
*
- * <p>
+ * <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
- * This is why there is not a <CODE>set</CODE> method for the attributeName property.
+ * This is why there is not a <CODE>set</CODE> method for the attributeName property.
*
- * <p>
+ * <p>
* For example, to add a new item, do as follows:
- * <pre>
+ * <pre>
* getAttributeName().add(newItem);
- * </pre>
+ * </pre>
*
*
- * <p>
+ * <p>
* Objects of the following type(s) are allowed in the list
* {@link String }
*
//
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// This file was generated by the Eclipse Implementation of JAXB, v2.3.3
+// See https://eclipse-ee4j.github.io/jaxb-ri
// Any modifications to this file will be lost upon recompilation of the source schema.
-// Generated on: 2019.06.07 at 02:21:15 PM BST
+// Generated on: 2021.08.30 at 11:05:22 AM BST
//
/**
* A feature match condition, which may be simple or compound
*
- * <p>Java class for FeatureMatcherSet complex type.
+ * <p>Java class for FeatureMatcherSet complex type.
*
- * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>The following schema fragment specifies the expected content contained within this class.
*
- * <pre>
- * <complexType name="FeatureMatcherSet">
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <choice>
- * <element name="matchCondition" type="{www.jalview.org/colours}FeatureMatcher"/>
- * <element name="compoundMatcher">
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <sequence>
- * <element name="matcherSet" type="{www.jalview.org/colours}FeatureMatcherSet" maxOccurs="2" minOccurs="2"/>
- * </sequence>
- * <attribute name="and" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </element>
- * </choice>
- * </restriction>
- * </complexContent>
- * </complexType>
- * </pre>
+ * <pre>
+ * &lt;complexType name="FeatureMatcherSet"&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;choice&gt;
+ * &lt;element name="matchCondition" type="{www.jalview.org/colours}FeatureMatcher"/&gt;
+ * &lt;element name="compoundMatcher"&gt;
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;sequence&gt;
+ * &lt;element name="matcherSet" type="{www.jalview.org/colours}FeatureMatcherSet" maxOccurs="2" minOccurs="2"/&gt;
+ * &lt;/sequence&gt;
+ * &lt;attribute name="and" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * &lt;/element&gt;
+ * &lt;/choice&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * </pre>
*
*
*/
/**
- * <p>Java class for anonymous complex type.
+ * <p>Java class for anonymous complex type.
*
- * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>The following schema fragment specifies the expected content contained within this class.
*
- * <pre>
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <sequence>
- * <element name="matcherSet" type="{www.jalview.org/colours}FeatureMatcherSet" maxOccurs="2" minOccurs="2"/>
- * </sequence>
- * <attribute name="and" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </pre>
+ * <pre>
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;sequence&gt;
+ * &lt;element name="matcherSet" type="{www.jalview.org/colours}FeatureMatcherSet" maxOccurs="2" minOccurs="2"/&gt;
+ * &lt;/sequence&gt;
+ * &lt;attribute name="and" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * </pre>
*
*
*/
/**
* Gets the value of the matcherSet property.
*
- * <p>
+ * <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
- * This is why there is not a <CODE>set</CODE> method for the matcherSet property.
+ * This is why there is not a <CODE>set</CODE> method for the matcherSet property.
*
- * <p>
+ * <p>
* For example, to add a new item, do as follows:
- * <pre>
+ * <pre>
* getMatcherSet().add(newItem);
- * </pre>
+ * </pre>
*
*
- * <p>
+ * <p>
* Objects of the following type(s) are allowed in the list
* {@link FeatureMatcherSet }
*
//
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// This file was generated by the Eclipse Implementation of JAXB, v2.3.3
+// See https://eclipse-ee4j.github.io/jaxb-ri
// Any modifications to this file will be lost upon recompilation of the source schema.
-// Generated on: 2019.06.07 at 02:21:15 PM BST
+// Generated on: 2021.08.30 at 11:05:22 AM BST
//
/**
- * <p>Java class for FilterBy.
+ * <p>Java class for FilterBy.
*
- * <p>The following schema fragment specifies the expected content contained within this class.
- * <p>
- * <pre>
- * <simpleType name="FilterBy">
- * <restriction base="{http://www.w3.org/2001/XMLSchema}string">
- * <enumeration value="byLabel"/>
- * <enumeration value="byScore"/>
- * <enumeration value="byAttribute"/>
- * </restriction>
- * </simpleType>
- * </pre>
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * <pre>
+ * &lt;simpleType name="FilterBy"&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string"&gt;
+ * &lt;enumeration value="byLabel"/&gt;
+ * &lt;enumeration value="byScore"/&gt;
+ * &lt;enumeration value="byAttribute"/&gt;
+ * &lt;/restriction&gt;
+ * &lt;/simpleType&gt;
+ * </pre>
*
*/
@XmlType(name = "FilterBy", namespace = "www.jalview.org/colours")
//
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// This file was generated by the Eclipse Implementation of JAXB, v2.3.3
+// See https://eclipse-ee4j.github.io/jaxb-ri
// Any modifications to this file will be lost upon recompilation of the source schema.
-// Generated on: 2019.06.07 at 02:21:15 PM BST
+// Generated on: 2021.08.30 at 11:05:22 AM BST
//
/**
- * <p>Java class for JalviewModel complex type.
+ * <p>Java class for JalviewModel complex type.
*
- * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>The following schema fragment specifies the expected content contained within this class.
*
- * <pre>
- * <complexType name="JalviewModel">
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <sequence>
- * <element name="creationDate" type="{http://www.w3.org/2001/XMLSchema}dateTime"/>
- * <element name="version" type="{http://www.w3.org/2001/XMLSchema}string"/>
- * <element name="vamsasModel" type="{www.vamsas.ac.uk/jalview/version2}VAMSAS"/>
- * <sequence>
- * <element name="JSeq" maxOccurs="unbounded" minOccurs="0">
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <sequence>
- * <element name="features" type="{www.jalview.org}feature" maxOccurs="unbounded" minOccurs="0"/>
- * <element name="pdbids" maxOccurs="unbounded" minOccurs="0">
- * <complexType>
- * <complexContent>
- * <extension base="{www.jalview.org}pdbentry">
- * <sequence>
- * <element name="structureState" maxOccurs="unbounded" minOccurs="0">
- * <complexType>
- * <simpleContent>
- * <extension base="<http://www.w3.org/2001/XMLSchema>string">
- * <attGroup ref="{www.jalview.org}swingwindow"/>
- * <attribute name="visible" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="viewId" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="alignwithAlignPanel" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
- * <attribute name="colourwithAlignPanel" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
- * <attribute name="colourByJmol" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
- * <attribute name="type" type="{http://www.w3.org/2001/XMLSchema}string" />
- * </extension>
- * </simpleContent>
- * </complexType>
- * </element>
- * </sequence>
- * </extension>
- * </complexContent>
- * </complexType>
- * </element>
- * <element name="hiddenSequences" type="{http://www.w3.org/2001/XMLSchema}int" maxOccurs="unbounded" minOccurs="0"/>
- * <element name="rnaViewer" maxOccurs="unbounded" minOccurs="0">
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <sequence>
- * <element name="secondaryStructure" maxOccurs="unbounded">
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="annotationId" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="gapped" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="viewerState" type="{http://www.w3.org/2001/XMLSchema}string" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </element>
- * </sequence>
- * <attGroup ref="{www.jalview.org}swingwindow"/>
- * <attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="viewId" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="dividerLocation" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="selectedRna" type="{http://www.w3.org/2001/XMLSchema}int" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </element>
- * </sequence>
- * <attribute name="colour" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="start" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="end" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="id" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="hidden" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="viewreference" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </element>
- * <element name="JGroup" maxOccurs="unbounded" minOccurs="0">
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <sequence>
- * <element name="seq" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded"/>
- * <element name="annotationColours" type="{www.jalview.org}AnnotationColourScheme" minOccurs="0"/>
- * </sequence>
- * <attribute name="start" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="end" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="colour" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="consThreshold" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="pidThreshold" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="outlineColour" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="displayBoxes" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="displayText" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="colourText" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="textCol1" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="textCol2" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="textColThreshold" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="showUnconserved" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="ignoreGapsinConsensus" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
- * <attribute name="showConsensusHistogram" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
- * <attribute name="showSequenceLogo" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
- * <attribute name="normaliseSequenceLogo" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
- * <attribute name="id" type="{http://www.w3.org/2001/XMLSchema}string" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </element>
- * <element name="Viewport" maxOccurs="unbounded" minOccurs="0">
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <sequence>
- * <element name="AnnotationColours" type="{www.jalview.org}AnnotationColourScheme" minOccurs="0"/>
- * <element name="hiddenColumns" maxOccurs="unbounded" minOccurs="0">
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <attribute name="start" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="end" type="{http://www.w3.org/2001/XMLSchema}int" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </element>
- * <element name="calcIdParam" maxOccurs="unbounded" minOccurs="0">
- * <complexType>
- * <complexContent>
- * <extension base="{www.jalview.org/xml/wsparamset}WebServiceParameterSet">
- * <attribute name="calcId" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="needsUpdate" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
- * <attribute name="autoUpdate" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * </extension>
- * </complexContent>
- * </complexType>
- * </element>
- * </sequence>
- * <attGroup ref="{www.jalview.org}swingwindow"/>
- * <attribute name="conservationSelected" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="pidSelected" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="bgColour" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="consThreshold" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="pidThreshold" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="showFullId" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="rightAlignIds" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="showText" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="showColourText" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="showUnconserved" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
- * <attribute name="showBoxes" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="wrapAlignment" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="renderGaps" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="showSequenceFeatures" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="showNPfeatureTooltip" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="showDbRefTooltip" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="followHighlight" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
- * <attribute name="followSelection" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
- * <attribute name="showAnnotation" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="centreColumnLabels" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
- * <attribute name="showGroupConservation" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
- * <attribute name="showGroupConsensus" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
- * <attribute name="showConsensusHistogram" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
- * <attribute name="showSequenceLogo" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
- * <attribute name="normaliseSequenceLogo" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
- * <attribute name="ignoreGapsinConsensus" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
- * <attribute name="startRes" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="startSeq" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="fontName" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="fontSize" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="fontStyle" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="scaleProteinAsCdna" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
- * <attribute name="viewName" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="sequenceSetId" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="gatheredViews" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="textCol1" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="textCol2" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="textColThreshold" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="id" type="{http://www.w3.org/2001/XMLSchema}ID" />
- * <attribute name="complementId" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="showComplementFeatures" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
- * <attribute name="showComplementFeaturesOnTop" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </element>
- * <element name="UserColours" maxOccurs="unbounded" minOccurs="0">
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <sequence>
- * <element name="UserColourScheme" type="{www.jalview.org/colours}JalviewUserColours"/>
- * </sequence>
- * <attribute name="id" type="{http://www.w3.org/2001/XMLSchema}string" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </element>
- * <element name="tree" maxOccurs="unbounded" minOccurs="0">
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <sequence minOccurs="0">
- * <element name="title" type="{http://www.w3.org/2001/XMLSchema}string"/>
- * <element name="newick" type="{http://www.w3.org/2001/XMLSchema}string"/>
- * </sequence>
- * <attGroup ref="{www.jalview.org}swingwindow"/>
- * <attribute name="fontName" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="fontSize" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="fontStyle" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="threshold" type="{http://www.w3.org/2001/XMLSchema}float" />
- * <attribute name="showBootstrap" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="showDistances" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="markUnlinked" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="fitToWindow" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="currentTree" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="id" type="{http://www.w3.org/2001/XMLSchema}ID" />
- * <attribute name="linkToAllViews" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </element>
- * <element name="PcaViewer" maxOccurs="unbounded" minOccurs="0">
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <sequence>
- * <element name="sequencePoint" maxOccurs="unbounded">
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <attGroup ref="{www.jalview.org}position"/>
- * <attribute name="sequenceRef" type="{http://www.w3.org/2001/XMLSchema}string" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </element>
- * <element name="axis" maxOccurs="3" minOccurs="3">
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <attGroup ref="{www.jalview.org}position"/>
- * </restriction>
- * </complexContent>
- * </complexType>
- * </element>
- * <element name="seqPointMin">
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <attGroup ref="{www.jalview.org}position"/>
- * </restriction>
- * </complexContent>
- * </complexType>
- * </element>
- * <element name="seqPointMax">
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <attGroup ref="{www.jalview.org}position"/>
- * </restriction>
- * </complexContent>
- * </complexType>
- * </element>
- * <element name="pcaData" type="{www.jalview.org}PcaDataType"/>
- * </sequence>
- * <attGroup ref="{www.jalview.org}swingwindow"/>
- * <attGroup ref="{www.jalview.org}SimilarityParams"/>
- * <attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="scoreModelName" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="xDim" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="yDim" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="zDim" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="bgColour" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="scaleFactor" type="{http://www.w3.org/2001/XMLSchema}float" />
- * <attribute name="showLabels" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="linkToAllViews" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </element>
- * <element name="FeatureSettings" minOccurs="0">
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <sequence>
- * <element name="setting" maxOccurs="unbounded" minOccurs="0">
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <sequence>
- * <element name="attributeName" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="2" minOccurs="0"/>
- * <element name="matcherSet" type="{www.jalview.org/colours}FeatureMatcherSet" minOccurs="0"/>
- * </sequence>
- * <attribute name="type" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="colour" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="display" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="order" type="{http://www.w3.org/2001/XMLSchema}float" />
- * <attribute name="mincolour" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="noValueColour" type="{www.jalview.org/colours}NoValueColour" default="Min" />
- * <attribute name="threshold" type="{http://www.w3.org/2001/XMLSchema}float" />
- * <attribute name="threshstate" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="max" type="{http://www.w3.org/2001/XMLSchema}float" />
- * <attribute name="min" type="{http://www.w3.org/2001/XMLSchema}float" />
- * <attribute name="colourByLabel" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="autoScale" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </element>
- * <element name="group" maxOccurs="unbounded" minOccurs="0">
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="display" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </element>
- * </sequence>
- * </restriction>
- * </complexContent>
- * </complexType>
- * </element>
- * </sequence>
- * </sequence>
- * </restriction>
- * </complexContent>
- * </complexType>
- * </pre>
+ * <pre>
+ * &lt;complexType name="JalviewModel"&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;sequence&gt;
+ * &lt;element name="creationDate" type="{http://www.w3.org/2001/XMLSchema}dateTime"/&gt;
+ * &lt;element name="version" type="{http://www.w3.org/2001/XMLSchema}string"/&gt;
+ * &lt;element name="vamsasModel" type="{www.vamsas.ac.uk/jalview/version2}VAMSAS"/&gt;
+ * &lt;sequence&gt;
+ * &lt;element name="JSeq" maxOccurs="unbounded" minOccurs="0"&gt;
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;sequence&gt;
+ * &lt;element name="features" type="{www.jalview.org}feature" maxOccurs="unbounded" minOccurs="0"/&gt;
+ * &lt;element name="pdbids" maxOccurs="unbounded" minOccurs="0"&gt;
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;extension base="{www.jalview.org}pdbentry"&gt;
+ * &lt;sequence&gt;
+ * &lt;element name="structureState" maxOccurs="unbounded" minOccurs="0"&gt;
+ * &lt;complexType&gt;
+ * &lt;simpleContent&gt;
+ * &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema&gt;string"&gt;
+ * &lt;attGroup ref="{www.jalview.org}swingwindow"/&gt;
+ * &lt;attribute name="visible" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="viewId" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="alignwithAlignPanel" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /&gt;
+ * &lt;attribute name="colourwithAlignPanel" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
+ * &lt;attribute name="colourByJmol" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /&gt;
+ * &lt;attribute name="type" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;/extension&gt;
+ * &lt;/simpleContent&gt;
+ * &lt;/complexType&gt;
+ * &lt;/element&gt;
+ * &lt;/sequence&gt;
+ * &lt;/extension&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * &lt;/element&gt;
+ * &lt;element name="hiddenSequences" type="{http://www.w3.org/2001/XMLSchema}int" maxOccurs="unbounded" minOccurs="0"/&gt;
+ * &lt;element name="rnaViewer" maxOccurs="unbounded" minOccurs="0"&gt;
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;sequence&gt;
+ * &lt;element name="secondaryStructure" maxOccurs="unbounded"&gt;
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="annotationId" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="gapped" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="viewerState" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * &lt;/element&gt;
+ * &lt;/sequence&gt;
+ * &lt;attGroup ref="{www.jalview.org}swingwindow"/&gt;
+ * &lt;attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="viewId" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="dividerLocation" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="selectedRna" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * &lt;/element&gt;
+ * &lt;/sequence&gt;
+ * &lt;attribute name="colour" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="start" use="required" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="end" use="required" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="id" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="hidden" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="viewreference" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * &lt;/element&gt;
+ * &lt;element name="JGroup" maxOccurs="unbounded" minOccurs="0"&gt;
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;sequence&gt;
+ * &lt;element name="seq" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded"/&gt;
+ * &lt;element name="annotationColours" type="{www.jalview.org}AnnotationColourScheme" minOccurs="0"/&gt;
+ * &lt;/sequence&gt;
+ * &lt;attribute name="start" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="end" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="colour" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="consThreshold" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="pidThreshold" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="outlineColour" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="displayBoxes" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="displayText" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="colourText" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="textCol1" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="textCol2" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="textColThreshold" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="showUnconserved" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="ignoreGapsinConsensus" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /&gt;
+ * &lt;attribute name="showConsensusHistogram" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /&gt;
+ * &lt;attribute name="showSequenceLogo" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
+ * &lt;attribute name="normaliseSequenceLogo" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
+ * &lt;attribute name="id" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * &lt;/element&gt;
+ * &lt;element name="Viewport" maxOccurs="unbounded" minOccurs="0"&gt;
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;sequence&gt;
+ * &lt;element name="AnnotationColours" type="{www.jalview.org}AnnotationColourScheme" minOccurs="0"/&gt;
+ * &lt;element name="hiddenColumns" maxOccurs="unbounded" minOccurs="0"&gt;
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;attribute name="start" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="end" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * &lt;/element&gt;
+ * &lt;element name="calcIdParam" maxOccurs="unbounded" minOccurs="0"&gt;
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;extension base="{www.jalview.org/xml/wsparamset}WebServiceParameterSet"&gt;
+ * &lt;attribute name="calcId" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="needsUpdate" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
+ * &lt;attribute name="autoUpdate" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;/extension&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * &lt;/element&gt;
+ * &lt;/sequence&gt;
+ * &lt;attGroup ref="{www.jalview.org}swingwindow"/&gt;
+ * &lt;attribute name="conservationSelected" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="pidSelected" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="bgColour" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="consThreshold" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="pidThreshold" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="showFullId" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="rightAlignIds" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="showText" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="showColourText" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="showUnconserved" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
+ * &lt;attribute name="showBoxes" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="wrapAlignment" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="renderGaps" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="showSequenceFeatures" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="showNPfeatureTooltip" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="showDbRefTooltip" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="followHighlight" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /&gt;
+ * &lt;attribute name="followSelection" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /&gt;
+ * &lt;attribute name="showAnnotation" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="centreColumnLabels" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
+ * &lt;attribute name="showGroupConservation" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
+ * &lt;attribute name="showGroupConsensus" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
+ * &lt;attribute name="showConsensusHistogram" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /&gt;
+ * &lt;attribute name="showSequenceLogo" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
+ * &lt;attribute name="normaliseSequenceLogo" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
+ * &lt;attribute name="ignoreGapsinConsensus" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /&gt;
+ * &lt;attribute name="startRes" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="startSeq" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="fontName" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="fontSize" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="fontStyle" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="scaleProteinAsCdna" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /&gt;
+ * &lt;attribute name="viewName" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="sequenceSetId" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="gatheredViews" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="textCol1" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="textCol2" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="textColThreshold" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="id" type="{http://www.w3.org/2001/XMLSchema}ID" /&gt;
+ * &lt;attribute name="complementId" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="showComplementFeatures" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
+ * &lt;attribute name="showComplementFeaturesOnTop" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * &lt;/element&gt;
+ * &lt;element name="UserColours" maxOccurs="unbounded" minOccurs="0"&gt;
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;sequence&gt;
+ * &lt;element name="UserColourScheme" type="{www.jalview.org/colours}JalviewUserColours"/&gt;
+ * &lt;/sequence&gt;
+ * &lt;attribute name="id" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * &lt;/element&gt;
+ * &lt;element name="tree" maxOccurs="unbounded" minOccurs="0"&gt;
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;sequence minOccurs="0"&gt;
+ * &lt;element name="title" type="{http://www.w3.org/2001/XMLSchema}string"/&gt;
+ * &lt;element name="newick" type="{http://www.w3.org/2001/XMLSchema}string"/&gt;
+ * &lt;/sequence&gt;
+ * &lt;attGroup ref="{www.jalview.org}swingwindow"/&gt;
+ * &lt;attribute name="fontName" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="fontSize" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="fontStyle" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="threshold" type="{http://www.w3.org/2001/XMLSchema}float" /&gt;
+ * &lt;attribute name="showBootstrap" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="showDistances" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="markUnlinked" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="fitToWindow" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="currentTree" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="id" type="{http://www.w3.org/2001/XMLSchema}ID" /&gt;
+ * &lt;attribute name="linkToAllViews" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * &lt;/element&gt;
+ * &lt;element name="PcaViewer" maxOccurs="unbounded" minOccurs="0"&gt;
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;sequence&gt;
+ * &lt;element name="sequencePoint" maxOccurs="unbounded"&gt;
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;attGroup ref="{www.jalview.org}position"/&gt;
+ * &lt;attribute name="sequenceRef" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * &lt;/element&gt;
+ * &lt;element name="axis" maxOccurs="3" minOccurs="3"&gt;
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;attGroup ref="{www.jalview.org}position"/&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * &lt;/element&gt;
+ * &lt;element name="seqPointMin"&gt;
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;attGroup ref="{www.jalview.org}position"/&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * &lt;/element&gt;
+ * &lt;element name="seqPointMax"&gt;
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;attGroup ref="{www.jalview.org}position"/&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * &lt;/element&gt;
+ * &lt;element name="pcaData" type="{www.jalview.org}PcaDataType"/&gt;
+ * &lt;/sequence&gt;
+ * &lt;attGroup ref="{www.jalview.org}swingwindow"/&gt;
+ * &lt;attGroup ref="{www.jalview.org}SimilarityParams"/&gt;
+ * &lt;attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="scoreModelName" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="xDim" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="yDim" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="zDim" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="bgColour" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="scaleFactor" type="{http://www.w3.org/2001/XMLSchema}float" /&gt;
+ * &lt;attribute name="showLabels" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="linkToAllViews" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * &lt;/element&gt;
+ * &lt;element name="FeatureSettings" minOccurs="0"&gt;
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;sequence&gt;
+ * &lt;element name="setting" maxOccurs="unbounded" minOccurs="0"&gt;
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;sequence&gt;
+ * &lt;element name="attributeName" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="2" minOccurs="0"/&gt;
+ * &lt;element name="matcherSet" type="{www.jalview.org/colours}FeatureMatcherSet" minOccurs="0"/&gt;
+ * &lt;/sequence&gt;
+ * &lt;attribute name="type" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="colour" use="required" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="display" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="order" type="{http://www.w3.org/2001/XMLSchema}float" /&gt;
+ * &lt;attribute name="mincolour" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="noValueColour" type="{www.jalview.org/colours}NoValueColour" default="Min" /&gt;
+ * &lt;attribute name="threshold" type="{http://www.w3.org/2001/XMLSchema}float" /&gt;
+ * &lt;attribute name="threshstate" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="max" type="{http://www.w3.org/2001/XMLSchema}float" /&gt;
+ * &lt;attribute name="min" type="{http://www.w3.org/2001/XMLSchema}float" /&gt;
+ * &lt;attribute name="colourByLabel" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="autoScale" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * &lt;/element&gt;
+ * &lt;element name="group" maxOccurs="unbounded" minOccurs="0"&gt;
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="display" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * &lt;/element&gt;
+ * &lt;/sequence&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * &lt;/element&gt;
+ * &lt;/sequence&gt;
+ * &lt;/sequence&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * </pre>
*
*
*/
/**
* Gets the value of the jSeq property.
*
- * <p>
+ * <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
- * This is why there is not a <CODE>set</CODE> method for the jSeq property.
+ * This is why there is not a <CODE>set</CODE> method for the jSeq property.
*
- * <p>
+ * <p>
* For example, to add a new item, do as follows:
- * <pre>
+ * <pre>
* getJSeq().add(newItem);
- * </pre>
+ * </pre>
*
*
- * <p>
+ * <p>
* Objects of the following type(s) are allowed in the list
* {@link JalviewModel.JSeq }
*
/**
* Gets the value of the jGroup property.
*
- * <p>
+ * <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
- * This is why there is not a <CODE>set</CODE> method for the jGroup property.
+ * This is why there is not a <CODE>set</CODE> method for the jGroup property.
*
- * <p>
+ * <p>
* For example, to add a new item, do as follows:
- * <pre>
+ * <pre>
* getJGroup().add(newItem);
- * </pre>
+ * </pre>
*
*
- * <p>
+ * <p>
* Objects of the following type(s) are allowed in the list
* {@link JalviewModel.JGroup }
*
/**
* Gets the value of the viewport property.
*
- * <p>
+ * <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
- * This is why there is not a <CODE>set</CODE> method for the viewport property.
+ * This is why there is not a <CODE>set</CODE> method for the viewport property.
*
- * <p>
+ * <p>
* For example, to add a new item, do as follows:
- * <pre>
+ * <pre>
* getViewport().add(newItem);
- * </pre>
+ * </pre>
*
*
- * <p>
+ * <p>
* Objects of the following type(s) are allowed in the list
* {@link JalviewModel.Viewport }
*
/**
* Gets the value of the userColours property.
*
- * <p>
+ * <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
- * This is why there is not a <CODE>set</CODE> method for the userColours property.
+ * This is why there is not a <CODE>set</CODE> method for the userColours property.
*
- * <p>
+ * <p>
* For example, to add a new item, do as follows:
- * <pre>
+ * <pre>
* getUserColours().add(newItem);
- * </pre>
+ * </pre>
*
*
- * <p>
+ * <p>
* Objects of the following type(s) are allowed in the list
* {@link JalviewModel.UserColours }
*
/**
* Gets the value of the tree property.
*
- * <p>
+ * <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
- * This is why there is not a <CODE>set</CODE> method for the tree property.
+ * This is why there is not a <CODE>set</CODE> method for the tree property.
*
- * <p>
+ * <p>
* For example, to add a new item, do as follows:
- * <pre>
+ * <pre>
* getTree().add(newItem);
- * </pre>
+ * </pre>
*
*
- * <p>
+ * <p>
* Objects of the following type(s) are allowed in the list
* {@link JalviewModel.Tree }
*
/**
* Gets the value of the pcaViewer property.
*
- * <p>
+ * <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
- * This is why there is not a <CODE>set</CODE> method for the pcaViewer property.
+ * This is why there is not a <CODE>set</CODE> method for the pcaViewer property.
*
- * <p>
+ * <p>
* For example, to add a new item, do as follows:
- * <pre>
+ * <pre>
* getPcaViewer().add(newItem);
- * </pre>
+ * </pre>
*
*
- * <p>
+ * <p>
* Objects of the following type(s) are allowed in the list
* {@link JalviewModel.PcaViewer }
*
/**
- * <p>Java class for anonymous complex type.
+ * <p>Java class for anonymous complex type.
*
- * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>The following schema fragment specifies the expected content contained within this class.
*
- * <pre>
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <sequence>
- * <element name="setting" maxOccurs="unbounded" minOccurs="0">
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <sequence>
- * <element name="attributeName" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="2" minOccurs="0"/>
- * <element name="matcherSet" type="{www.jalview.org/colours}FeatureMatcherSet" minOccurs="0"/>
- * </sequence>
- * <attribute name="type" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="colour" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="display" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="order" type="{http://www.w3.org/2001/XMLSchema}float" />
- * <attribute name="mincolour" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="noValueColour" type="{www.jalview.org/colours}NoValueColour" default="Min" />
- * <attribute name="threshold" type="{http://www.w3.org/2001/XMLSchema}float" />
- * <attribute name="threshstate" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="max" type="{http://www.w3.org/2001/XMLSchema}float" />
- * <attribute name="min" type="{http://www.w3.org/2001/XMLSchema}float" />
- * <attribute name="colourByLabel" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="autoScale" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </element>
- * <element name="group" maxOccurs="unbounded" minOccurs="0">
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="display" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </element>
- * </sequence>
- * </restriction>
- * </complexContent>
- * </complexType>
- * </pre>
+ * <pre>
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;sequence&gt;
+ * &lt;element name="setting" maxOccurs="unbounded" minOccurs="0"&gt;
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;sequence&gt;
+ * &lt;element name="attributeName" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="2" minOccurs="0"/&gt;
+ * &lt;element name="matcherSet" type="{www.jalview.org/colours}FeatureMatcherSet" minOccurs="0"/&gt;
+ * &lt;/sequence&gt;
+ * &lt;attribute name="type" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="colour" use="required" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="display" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="order" type="{http://www.w3.org/2001/XMLSchema}float" /&gt;
+ * &lt;attribute name="mincolour" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="noValueColour" type="{www.jalview.org/colours}NoValueColour" default="Min" /&gt;
+ * &lt;attribute name="threshold" type="{http://www.w3.org/2001/XMLSchema}float" /&gt;
+ * &lt;attribute name="threshstate" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="max" type="{http://www.w3.org/2001/XMLSchema}float" /&gt;
+ * &lt;attribute name="min" type="{http://www.w3.org/2001/XMLSchema}float" /&gt;
+ * &lt;attribute name="colourByLabel" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="autoScale" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * &lt;/element&gt;
+ * &lt;element name="group" maxOccurs="unbounded" minOccurs="0"&gt;
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="display" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * &lt;/element&gt;
+ * &lt;/sequence&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * </pre>
*
*
*/
/**
* Gets the value of the setting property.
*
- * <p>
+ * <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
- * This is why there is not a <CODE>set</CODE> method for the setting property.
+ * This is why there is not a <CODE>set</CODE> method for the setting property.
*
- * <p>
+ * <p>
* For example, to add a new item, do as follows:
- * <pre>
+ * <pre>
* getSetting().add(newItem);
- * </pre>
+ * </pre>
*
*
- * <p>
+ * <p>
* Objects of the following type(s) are allowed in the list
* {@link JalviewModel.FeatureSettings.Setting }
*
/**
* Gets the value of the group property.
*
- * <p>
+ * <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
- * This is why there is not a <CODE>set</CODE> method for the group property.
+ * This is why there is not a <CODE>set</CODE> method for the group property.
*
- * <p>
+ * <p>
* For example, to add a new item, do as follows:
- * <pre>
+ * <pre>
* getGroup().add(newItem);
- * </pre>
+ * </pre>
*
*
- * <p>
+ * <p>
* Objects of the following type(s) are allowed in the list
* {@link JalviewModel.FeatureSettings.Group }
*
/**
- * <p>Java class for anonymous complex type.
+ * <p>Java class for anonymous complex type.
*
- * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>The following schema fragment specifies the expected content contained within this class.
*
- * <pre>
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="display" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </pre>
+ * <pre>
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="display" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * </pre>
*
*
*/
/**
- * <p>Java class for anonymous complex type.
+ * <p>Java class for anonymous complex type.
*
- * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>The following schema fragment specifies the expected content contained within this class.
*
- * <pre>
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <sequence>
- * <element name="attributeName" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="2" minOccurs="0"/>
- * <element name="matcherSet" type="{www.jalview.org/colours}FeatureMatcherSet" minOccurs="0"/>
- * </sequence>
- * <attribute name="type" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="colour" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="display" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="order" type="{http://www.w3.org/2001/XMLSchema}float" />
- * <attribute name="mincolour" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="noValueColour" type="{www.jalview.org/colours}NoValueColour" default="Min" />
- * <attribute name="threshold" type="{http://www.w3.org/2001/XMLSchema}float" />
- * <attribute name="threshstate" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="max" type="{http://www.w3.org/2001/XMLSchema}float" />
- * <attribute name="min" type="{http://www.w3.org/2001/XMLSchema}float" />
- * <attribute name="colourByLabel" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="autoScale" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </pre>
+ * <pre>
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;sequence&gt;
+ * &lt;element name="attributeName" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="2" minOccurs="0"/&gt;
+ * &lt;element name="matcherSet" type="{www.jalview.org/colours}FeatureMatcherSet" minOccurs="0"/&gt;
+ * &lt;/sequence&gt;
+ * &lt;attribute name="type" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="colour" use="required" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="display" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="order" type="{http://www.w3.org/2001/XMLSchema}float" /&gt;
+ * &lt;attribute name="mincolour" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="noValueColour" type="{www.jalview.org/colours}NoValueColour" default="Min" /&gt;
+ * &lt;attribute name="threshold" type="{http://www.w3.org/2001/XMLSchema}float" /&gt;
+ * &lt;attribute name="threshstate" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="max" type="{http://www.w3.org/2001/XMLSchema}float" /&gt;
+ * &lt;attribute name="min" type="{http://www.w3.org/2001/XMLSchema}float" /&gt;
+ * &lt;attribute name="colourByLabel" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="autoScale" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * </pre>
*
*
*/
/**
* Gets the value of the attributeName property.
*
- * <p>
+ * <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
- * This is why there is not a <CODE>set</CODE> method for the attributeName property.
+ * This is why there is not a <CODE>set</CODE> method for the attributeName property.
*
- * <p>
+ * <p>
* For example, to add a new item, do as follows:
- * <pre>
+ * <pre>
* getAttributeName().add(newItem);
- * </pre>
+ * </pre>
*
*
- * <p>
+ * <p>
* Objects of the following type(s) are allowed in the list
* {@link String }
*
/**
- * <p>Java class for anonymous complex type.
+ * <p>Java class for anonymous complex type.
*
- * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>The following schema fragment specifies the expected content contained within this class.
*
- * <pre>
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <sequence>
- * <element name="seq" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded"/>
- * <element name="annotationColours" type="{www.jalview.org}AnnotationColourScheme" minOccurs="0"/>
- * </sequence>
- * <attribute name="start" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="end" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="colour" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="consThreshold" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="pidThreshold" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="outlineColour" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="displayBoxes" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="displayText" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="colourText" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="textCol1" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="textCol2" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="textColThreshold" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="showUnconserved" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="ignoreGapsinConsensus" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
- * <attribute name="showConsensusHistogram" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
- * <attribute name="showSequenceLogo" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
- * <attribute name="normaliseSequenceLogo" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
- * <attribute name="id" type="{http://www.w3.org/2001/XMLSchema}string" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </pre>
+ * <pre>
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;sequence&gt;
+ * &lt;element name="seq" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded"/&gt;
+ * &lt;element name="annotationColours" type="{www.jalview.org}AnnotationColourScheme" minOccurs="0"/&gt;
+ * &lt;/sequence&gt;
+ * &lt;attribute name="start" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="end" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="colour" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="consThreshold" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="pidThreshold" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="outlineColour" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="displayBoxes" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="displayText" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="colourText" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="textCol1" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="textCol2" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="textColThreshold" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="showUnconserved" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="ignoreGapsinConsensus" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /&gt;
+ * &lt;attribute name="showConsensusHistogram" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /&gt;
+ * &lt;attribute name="showSequenceLogo" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
+ * &lt;attribute name="normaliseSequenceLogo" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
+ * &lt;attribute name="id" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * </pre>
*
*
*/
/**
* Gets the value of the seq property.
*
- * <p>
+ * <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
- * This is why there is not a <CODE>set</CODE> method for the seq property.
+ * This is why there is not a <CODE>set</CODE> method for the seq property.
*
- * <p>
+ * <p>
* For example, to add a new item, do as follows:
- * <pre>
+ * <pre>
* getSeq().add(newItem);
- * </pre>
+ * </pre>
*
*
- * <p>
+ * <p>
* Objects of the following type(s) are allowed in the list
* {@link String }
*
/**
- * <p>Java class for anonymous complex type.
+ * <p>Java class for anonymous complex type.
*
- * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>The following schema fragment specifies the expected content contained within this class.
*
- * <pre>
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <sequence>
- * <element name="features" type="{www.jalview.org}feature" maxOccurs="unbounded" minOccurs="0"/>
- * <element name="pdbids" maxOccurs="unbounded" minOccurs="0">
- * <complexType>
- * <complexContent>
- * <extension base="{www.jalview.org}pdbentry">
- * <sequence>
- * <element name="structureState" maxOccurs="unbounded" minOccurs="0">
- * <complexType>
- * <simpleContent>
- * <extension base="<http://www.w3.org/2001/XMLSchema>string">
- * <attGroup ref="{www.jalview.org}swingwindow"/>
- * <attribute name="visible" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="viewId" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="alignwithAlignPanel" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
- * <attribute name="colourwithAlignPanel" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
- * <attribute name="colourByJmol" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
- * <attribute name="type" type="{http://www.w3.org/2001/XMLSchema}string" />
- * </extension>
- * </simpleContent>
- * </complexType>
- * </element>
- * </sequence>
- * </extension>
- * </complexContent>
- * </complexType>
- * </element>
- * <element name="hiddenSequences" type="{http://www.w3.org/2001/XMLSchema}int" maxOccurs="unbounded" minOccurs="0"/>
- * <element name="rnaViewer" maxOccurs="unbounded" minOccurs="0">
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <sequence>
- * <element name="secondaryStructure" maxOccurs="unbounded">
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="annotationId" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="gapped" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="viewerState" type="{http://www.w3.org/2001/XMLSchema}string" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </element>
- * </sequence>
- * <attGroup ref="{www.jalview.org}swingwindow"/>
- * <attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="viewId" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="dividerLocation" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="selectedRna" type="{http://www.w3.org/2001/XMLSchema}int" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </element>
- * </sequence>
- * <attribute name="colour" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="start" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="end" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="id" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="hidden" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="viewreference" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </pre>
+ * <pre>
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;sequence&gt;
+ * &lt;element name="features" type="{www.jalview.org}feature" maxOccurs="unbounded" minOccurs="0"/&gt;
+ * &lt;element name="pdbids" maxOccurs="unbounded" minOccurs="0"&gt;
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;extension base="{www.jalview.org}pdbentry"&gt;
+ * &lt;sequence&gt;
+ * &lt;element name="structureState" maxOccurs="unbounded" minOccurs="0"&gt;
+ * &lt;complexType&gt;
+ * &lt;simpleContent&gt;
+ * &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema&gt;string"&gt;
+ * &lt;attGroup ref="{www.jalview.org}swingwindow"/&gt;
+ * &lt;attribute name="visible" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="viewId" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="alignwithAlignPanel" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /&gt;
+ * &lt;attribute name="colourwithAlignPanel" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
+ * &lt;attribute name="colourByJmol" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /&gt;
+ * &lt;attribute name="type" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;/extension&gt;
+ * &lt;/simpleContent&gt;
+ * &lt;/complexType&gt;
+ * &lt;/element&gt;
+ * &lt;/sequence&gt;
+ * &lt;/extension&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * &lt;/element&gt;
+ * &lt;element name="hiddenSequences" type="{http://www.w3.org/2001/XMLSchema}int" maxOccurs="unbounded" minOccurs="0"/&gt;
+ * &lt;element name="rnaViewer" maxOccurs="unbounded" minOccurs="0"&gt;
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;sequence&gt;
+ * &lt;element name="secondaryStructure" maxOccurs="unbounded"&gt;
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="annotationId" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="gapped" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="viewerState" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * &lt;/element&gt;
+ * &lt;/sequence&gt;
+ * &lt;attGroup ref="{www.jalview.org}swingwindow"/&gt;
+ * &lt;attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="viewId" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="dividerLocation" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="selectedRna" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * &lt;/element&gt;
+ * &lt;/sequence&gt;
+ * &lt;attribute name="colour" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="start" use="required" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="end" use="required" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="id" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="hidden" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="viewreference" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * </pre>
*
*
*/
/**
* Gets the value of the features property.
*
- * <p>
+ * <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
- * This is why there is not a <CODE>set</CODE> method for the features property.
+ * This is why there is not a <CODE>set</CODE> method for the features property.
*
- * <p>
+ * <p>
* For example, to add a new item, do as follows:
- * <pre>
+ * <pre>
* getFeatures().add(newItem);
- * </pre>
+ * </pre>
*
*
- * <p>
+ * <p>
* Objects of the following type(s) are allowed in the list
* {@link Feature }
*
/**
* Gets the value of the pdbids property.
*
- * <p>
+ * <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
- * This is why there is not a <CODE>set</CODE> method for the pdbids property.
+ * This is why there is not a <CODE>set</CODE> method for the pdbids property.
*
- * <p>
+ * <p>
* For example, to add a new item, do as follows:
- * <pre>
+ * <pre>
* getPdbids().add(newItem);
- * </pre>
+ * </pre>
*
*
- * <p>
+ * <p>
* Objects of the following type(s) are allowed in the list
* {@link JalviewModel.JSeq.Pdbids }
*
/**
* Gets the value of the hiddenSequences property.
*
- * <p>
+ * <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
- * This is why there is not a <CODE>set</CODE> method for the hiddenSequences property.
+ * This is why there is not a <CODE>set</CODE> method for the hiddenSequences property.
*
- * <p>
+ * <p>
* For example, to add a new item, do as follows:
- * <pre>
+ * <pre>
* getHiddenSequences().add(newItem);
- * </pre>
+ * </pre>
*
*
- * <p>
+ * <p>
* Objects of the following type(s) are allowed in the list
* {@link Integer }
*
/**
* Gets the value of the rnaViewer property.
*
- * <p>
+ * <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
- * This is why there is not a <CODE>set</CODE> method for the rnaViewer property.
+ * This is why there is not a <CODE>set</CODE> method for the rnaViewer property.
*
- * <p>
+ * <p>
* For example, to add a new item, do as follows:
- * <pre>
+ * <pre>
* getRnaViewer().add(newItem);
- * </pre>
+ * </pre>
*
*
- * <p>
+ * <p>
* Objects of the following type(s) are allowed in the list
* {@link JalviewModel.JSeq.RnaViewer }
*
/**
- * <p>Java class for anonymous complex type.
+ * <p>Java class for anonymous complex type.
*
- * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>The following schema fragment specifies the expected content contained within this class.
*
- * <pre>
- * <complexType>
- * <complexContent>
- * <extension base="{www.jalview.org}pdbentry">
- * <sequence>
- * <element name="structureState" maxOccurs="unbounded" minOccurs="0">
- * <complexType>
- * <simpleContent>
- * <extension base="<http://www.w3.org/2001/XMLSchema>string">
- * <attGroup ref="{www.jalview.org}swingwindow"/>
- * <attribute name="visible" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="viewId" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="alignwithAlignPanel" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
- * <attribute name="colourwithAlignPanel" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
- * <attribute name="colourByJmol" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
- * <attribute name="type" type="{http://www.w3.org/2001/XMLSchema}string" />
- * </extension>
- * </simpleContent>
- * </complexType>
- * </element>
- * </sequence>
- * </extension>
- * </complexContent>
- * </complexType>
- * </pre>
+ * <pre>
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;extension base="{www.jalview.org}pdbentry"&gt;
+ * &lt;sequence&gt;
+ * &lt;element name="structureState" maxOccurs="unbounded" minOccurs="0"&gt;
+ * &lt;complexType&gt;
+ * &lt;simpleContent&gt;
+ * &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema&gt;string"&gt;
+ * &lt;attGroup ref="{www.jalview.org}swingwindow"/&gt;
+ * &lt;attribute name="visible" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="viewId" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="alignwithAlignPanel" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /&gt;
+ * &lt;attribute name="colourwithAlignPanel" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
+ * &lt;attribute name="colourByJmol" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /&gt;
+ * &lt;attribute name="type" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;/extension&gt;
+ * &lt;/simpleContent&gt;
+ * &lt;/complexType&gt;
+ * &lt;/element&gt;
+ * &lt;/sequence&gt;
+ * &lt;/extension&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * </pre>
*
*
*/
/**
* Gets the value of the structureState property.
*
- * <p>
+ * <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
- * This is why there is not a <CODE>set</CODE> method for the structureState property.
+ * This is why there is not a <CODE>set</CODE> method for the structureState property.
*
- * <p>
+ * <p>
* For example, to add a new item, do as follows:
- * <pre>
+ * <pre>
* getStructureState().add(newItem);
- * </pre>
+ * </pre>
*
*
- * <p>
+ * <p>
* Objects of the following type(s) are allowed in the list
* {@link JalviewModel.JSeq.Pdbids.StructureState }
*
/**
- * <p>Java class for anonymous complex type.
+ * <p>Java class for anonymous complex type.
*
- * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>The following schema fragment specifies the expected content contained within this class.
*
- * <pre>
- * <complexType>
- * <simpleContent>
- * <extension base="<http://www.w3.org/2001/XMLSchema>string">
- * <attGroup ref="{www.jalview.org}swingwindow"/>
- * <attribute name="visible" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="viewId" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="alignwithAlignPanel" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
- * <attribute name="colourwithAlignPanel" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
- * <attribute name="colourByJmol" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
- * <attribute name="type" type="{http://www.w3.org/2001/XMLSchema}string" />
- * </extension>
- * </simpleContent>
- * </complexType>
- * </pre>
+ * <pre>
+ * &lt;complexType&gt;
+ * &lt;simpleContent&gt;
+ * &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema&gt;string"&gt;
+ * &lt;attGroup ref="{www.jalview.org}swingwindow"/&gt;
+ * &lt;attribute name="visible" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="viewId" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="alignwithAlignPanel" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /&gt;
+ * &lt;attribute name="colourwithAlignPanel" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
+ * &lt;attribute name="colourByJmol" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /&gt;
+ * &lt;attribute name="type" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;/extension&gt;
+ * &lt;/simpleContent&gt;
+ * &lt;/complexType&gt;
+ * </pre>
*
*
*/
/**
- * <p>Java class for anonymous complex type.
+ * <p>Java class for anonymous complex type.
*
- * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>The following schema fragment specifies the expected content contained within this class.
*
- * <pre>
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <sequence>
- * <element name="secondaryStructure" maxOccurs="unbounded">
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="annotationId" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="gapped" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="viewerState" type="{http://www.w3.org/2001/XMLSchema}string" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </element>
- * </sequence>
- * <attGroup ref="{www.jalview.org}swingwindow"/>
- * <attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="viewId" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="dividerLocation" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="selectedRna" type="{http://www.w3.org/2001/XMLSchema}int" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </pre>
+ * <pre>
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;sequence&gt;
+ * &lt;element name="secondaryStructure" maxOccurs="unbounded"&gt;
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="annotationId" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="gapped" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="viewerState" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * &lt;/element&gt;
+ * &lt;/sequence&gt;
+ * &lt;attGroup ref="{www.jalview.org}swingwindow"/&gt;
+ * &lt;attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="viewId" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="dividerLocation" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="selectedRna" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * </pre>
*
*
*/
/**
* Gets the value of the secondaryStructure property.
*
- * <p>
+ * <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
- * This is why there is not a <CODE>set</CODE> method for the secondaryStructure property.
+ * This is why there is not a <CODE>set</CODE> method for the secondaryStructure property.
*
- * <p>
+ * <p>
* For example, to add a new item, do as follows:
- * <pre>
+ * <pre>
* getSecondaryStructure().add(newItem);
- * </pre>
+ * </pre>
*
*
- * <p>
+ * <p>
* Objects of the following type(s) are allowed in the list
* {@link JalviewModel.JSeq.RnaViewer.SecondaryStructure }
*
/**
- * <p>Java class for anonymous complex type.
+ * <p>Java class for anonymous complex type.
*
- * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>The following schema fragment specifies the expected content contained within this class.
*
- * <pre>
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="annotationId" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="gapped" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="viewerState" type="{http://www.w3.org/2001/XMLSchema}string" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </pre>
+ * <pre>
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="annotationId" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="gapped" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="viewerState" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * </pre>
*
*
*/
/**
- * <p>Java class for anonymous complex type.
+ * <p>Java class for anonymous complex type.
*
- * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>The following schema fragment specifies the expected content contained within this class.
*
- * <pre>
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <sequence>
- * <element name="sequencePoint" maxOccurs="unbounded">
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <attGroup ref="{www.jalview.org}position"/>
- * <attribute name="sequenceRef" type="{http://www.w3.org/2001/XMLSchema}string" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </element>
- * <element name="axis" maxOccurs="3" minOccurs="3">
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <attGroup ref="{www.jalview.org}position"/>
- * </restriction>
- * </complexContent>
- * </complexType>
- * </element>
- * <element name="seqPointMin">
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <attGroup ref="{www.jalview.org}position"/>
- * </restriction>
- * </complexContent>
- * </complexType>
- * </element>
- * <element name="seqPointMax">
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <attGroup ref="{www.jalview.org}position"/>
- * </restriction>
- * </complexContent>
- * </complexType>
- * </element>
- * <element name="pcaData" type="{www.jalview.org}PcaDataType"/>
- * </sequence>
- * <attGroup ref="{www.jalview.org}swingwindow"/>
- * <attGroup ref="{www.jalview.org}SimilarityParams"/>
- * <attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="scoreModelName" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="xDim" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="yDim" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="zDim" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="bgColour" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="scaleFactor" type="{http://www.w3.org/2001/XMLSchema}float" />
- * <attribute name="showLabels" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="linkToAllViews" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </pre>
+ * <pre>
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;sequence&gt;
+ * &lt;element name="sequencePoint" maxOccurs="unbounded"&gt;
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;attGroup ref="{www.jalview.org}position"/&gt;
+ * &lt;attribute name="sequenceRef" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * &lt;/element&gt;
+ * &lt;element name="axis" maxOccurs="3" minOccurs="3"&gt;
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;attGroup ref="{www.jalview.org}position"/&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * &lt;/element&gt;
+ * &lt;element name="seqPointMin"&gt;
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;attGroup ref="{www.jalview.org}position"/&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * &lt;/element&gt;
+ * &lt;element name="seqPointMax"&gt;
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;attGroup ref="{www.jalview.org}position"/&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * &lt;/element&gt;
+ * &lt;element name="pcaData" type="{www.jalview.org}PcaDataType"/&gt;
+ * &lt;/sequence&gt;
+ * &lt;attGroup ref="{www.jalview.org}swingwindow"/&gt;
+ * &lt;attGroup ref="{www.jalview.org}SimilarityParams"/&gt;
+ * &lt;attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="scoreModelName" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="xDim" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="yDim" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="zDim" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="bgColour" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="scaleFactor" type="{http://www.w3.org/2001/XMLSchema}float" /&gt;
+ * &lt;attribute name="showLabels" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="linkToAllViews" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * </pre>
*
*
*/
/**
* Gets the value of the sequencePoint property.
*
- * <p>
+ * <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
- * This is why there is not a <CODE>set</CODE> method for the sequencePoint property.
+ * This is why there is not a <CODE>set</CODE> method for the sequencePoint property.
*
- * <p>
+ * <p>
* For example, to add a new item, do as follows:
- * <pre>
+ * <pre>
* getSequencePoint().add(newItem);
- * </pre>
+ * </pre>
*
*
- * <p>
+ * <p>
* Objects of the following type(s) are allowed in the list
* {@link JalviewModel.PcaViewer.SequencePoint }
*
/**
* Gets the value of the axis property.
*
- * <p>
+ * <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
- * This is why there is not a <CODE>set</CODE> method for the axis property.
+ * This is why there is not a <CODE>set</CODE> method for the axis property.
*
- * <p>
+ * <p>
* For example, to add a new item, do as follows:
- * <pre>
+ * <pre>
* getAxis().add(newItem);
- * </pre>
+ * </pre>
*
*
- * <p>
+ * <p>
* Objects of the following type(s) are allowed in the list
* {@link JalviewModel.PcaViewer.Axis }
*
/**
- * <p>Java class for anonymous complex type.
+ * <p>Java class for anonymous complex type.
*
- * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>The following schema fragment specifies the expected content contained within this class.
*
- * <pre>
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <attGroup ref="{www.jalview.org}position"/>
- * </restriction>
- * </complexContent>
- * </complexType>
- * </pre>
+ * <pre>
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;attGroup ref="{www.jalview.org}position"/&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * </pre>
*
*
*/
/**
- * <p>Java class for anonymous complex type.
+ * <p>Java class for anonymous complex type.
*
- * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>The following schema fragment specifies the expected content contained within this class.
*
- * <pre>
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <attGroup ref="{www.jalview.org}position"/>
- * </restriction>
- * </complexContent>
- * </complexType>
- * </pre>
+ * <pre>
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;attGroup ref="{www.jalview.org}position"/&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * </pre>
*
*
*/
/**
- * <p>Java class for anonymous complex type.
+ * <p>Java class for anonymous complex type.
*
- * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>The following schema fragment specifies the expected content contained within this class.
*
- * <pre>
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <attGroup ref="{www.jalview.org}position"/>
- * </restriction>
- * </complexContent>
- * </complexType>
- * </pre>
+ * <pre>
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;attGroup ref="{www.jalview.org}position"/&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * </pre>
*
*
*/
/**
- * <p>Java class for anonymous complex type.
+ * <p>Java class for anonymous complex type.
*
- * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>The following schema fragment specifies the expected content contained within this class.
*
- * <pre>
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <attGroup ref="{www.jalview.org}position"/>
- * <attribute name="sequenceRef" type="{http://www.w3.org/2001/XMLSchema}string" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </pre>
+ * <pre>
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;attGroup ref="{www.jalview.org}position"/&gt;
+ * &lt;attribute name="sequenceRef" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * </pre>
*
*
*/
/**
- * <p>Java class for anonymous complex type.
+ * <p>Java class for anonymous complex type.
*
- * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>The following schema fragment specifies the expected content contained within this class.
*
- * <pre>
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <sequence minOccurs="0">
- * <element name="title" type="{http://www.w3.org/2001/XMLSchema}string"/>
- * <element name="newick" type="{http://www.w3.org/2001/XMLSchema}string"/>
- * </sequence>
- * <attGroup ref="{www.jalview.org}swingwindow"/>
- * <attribute name="fontName" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="fontSize" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="fontStyle" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="threshold" type="{http://www.w3.org/2001/XMLSchema}float" />
- * <attribute name="showBootstrap" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="showDistances" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="markUnlinked" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="fitToWindow" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="currentTree" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="id" type="{http://www.w3.org/2001/XMLSchema}ID" />
- * <attribute name="linkToAllViews" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </pre>
+ * <pre>
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;sequence minOccurs="0"&gt;
+ * &lt;element name="title" type="{http://www.w3.org/2001/XMLSchema}string"/&gt;
+ * &lt;element name="newick" type="{http://www.w3.org/2001/XMLSchema}string"/&gt;
+ * &lt;/sequence&gt;
+ * &lt;attGroup ref="{www.jalview.org}swingwindow"/&gt;
+ * &lt;attribute name="fontName" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="fontSize" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="fontStyle" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="threshold" type="{http://www.w3.org/2001/XMLSchema}float" /&gt;
+ * &lt;attribute name="showBootstrap" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="showDistances" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="markUnlinked" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="fitToWindow" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="currentTree" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="id" type="{http://www.w3.org/2001/XMLSchema}ID" /&gt;
+ * &lt;attribute name="linkToAllViews" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * </pre>
*
*
*/
/**
- * <p>Java class for anonymous complex type.
+ * <p>Java class for anonymous complex type.
*
- * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>The following schema fragment specifies the expected content contained within this class.
*
- * <pre>
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <sequence>
- * <element name="UserColourScheme" type="{www.jalview.org/colours}JalviewUserColours"/>
- * </sequence>
- * <attribute name="id" type="{http://www.w3.org/2001/XMLSchema}string" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </pre>
+ * <pre>
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;sequence&gt;
+ * &lt;element name="UserColourScheme" type="{www.jalview.org/colours}JalviewUserColours"/&gt;
+ * &lt;/sequence&gt;
+ * &lt;attribute name="id" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * </pre>
*
*
*/
/**
- * <p>Java class for anonymous complex type.
+ * <p>Java class for anonymous complex type.
*
- * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>The following schema fragment specifies the expected content contained within this class.
*
- * <pre>
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <sequence>
- * <element name="AnnotationColours" type="{www.jalview.org}AnnotationColourScheme" minOccurs="0"/>
- * <element name="hiddenColumns" maxOccurs="unbounded" minOccurs="0">
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <attribute name="start" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="end" type="{http://www.w3.org/2001/XMLSchema}int" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </element>
- * <element name="calcIdParam" maxOccurs="unbounded" minOccurs="0">
- * <complexType>
- * <complexContent>
- * <extension base="{www.jalview.org/xml/wsparamset}WebServiceParameterSet">
- * <attribute name="calcId" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="needsUpdate" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
- * <attribute name="autoUpdate" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * </extension>
- * </complexContent>
- * </complexType>
- * </element>
- * </sequence>
- * <attGroup ref="{www.jalview.org}swingwindow"/>
- * <attribute name="conservationSelected" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="pidSelected" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="bgColour" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="consThreshold" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="pidThreshold" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="showFullId" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="rightAlignIds" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="showText" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="showColourText" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="showUnconserved" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
- * <attribute name="showBoxes" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="wrapAlignment" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="renderGaps" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="showSequenceFeatures" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="showNPfeatureTooltip" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="showDbRefTooltip" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="followHighlight" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
- * <attribute name="followSelection" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
- * <attribute name="showAnnotation" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="centreColumnLabels" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
- * <attribute name="showGroupConservation" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
- * <attribute name="showGroupConsensus" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
- * <attribute name="showConsensusHistogram" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
- * <attribute name="showSequenceLogo" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
- * <attribute name="normaliseSequenceLogo" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
- * <attribute name="ignoreGapsinConsensus" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
- * <attribute name="startRes" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="startSeq" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="fontName" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="fontSize" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="fontStyle" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="scaleProteinAsCdna" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
- * <attribute name="viewName" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="sequenceSetId" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="gatheredViews" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="textCol1" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="textCol2" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="textColThreshold" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="id" type="{http://www.w3.org/2001/XMLSchema}ID" />
- * <attribute name="complementId" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="showComplementFeatures" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
- * <attribute name="showComplementFeaturesOnTop" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </pre>
+ * <pre>
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;sequence&gt;
+ * &lt;element name="AnnotationColours" type="{www.jalview.org}AnnotationColourScheme" minOccurs="0"/&gt;
+ * &lt;element name="hiddenColumns" maxOccurs="unbounded" minOccurs="0"&gt;
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;attribute name="start" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="end" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * &lt;/element&gt;
+ * &lt;element name="calcIdParam" maxOccurs="unbounded" minOccurs="0"&gt;
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;extension base="{www.jalview.org/xml/wsparamset}WebServiceParameterSet"&gt;
+ * &lt;attribute name="calcId" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="needsUpdate" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
+ * &lt;attribute name="autoUpdate" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;/extension&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * &lt;/element&gt;
+ * &lt;/sequence&gt;
+ * &lt;attGroup ref="{www.jalview.org}swingwindow"/&gt;
+ * &lt;attribute name="conservationSelected" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="pidSelected" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="bgColour" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="consThreshold" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="pidThreshold" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="title" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="showFullId" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="rightAlignIds" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="showText" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="showColourText" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="showUnconserved" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
+ * &lt;attribute name="showBoxes" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="wrapAlignment" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="renderGaps" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="showSequenceFeatures" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="showNPfeatureTooltip" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="showDbRefTooltip" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="followHighlight" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /&gt;
+ * &lt;attribute name="followSelection" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /&gt;
+ * &lt;attribute name="showAnnotation" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="centreColumnLabels" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
+ * &lt;attribute name="showGroupConservation" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
+ * &lt;attribute name="showGroupConsensus" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
+ * &lt;attribute name="showConsensusHistogram" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /&gt;
+ * &lt;attribute name="showSequenceLogo" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
+ * &lt;attribute name="normaliseSequenceLogo" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
+ * &lt;attribute name="ignoreGapsinConsensus" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /&gt;
+ * &lt;attribute name="startRes" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="startSeq" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="fontName" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="fontSize" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="fontStyle" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="scaleProteinAsCdna" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /&gt;
+ * &lt;attribute name="viewName" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="sequenceSetId" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="gatheredViews" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="textCol1" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="textCol2" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="textColThreshold" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="id" type="{http://www.w3.org/2001/XMLSchema}ID" /&gt;
+ * &lt;attribute name="complementId" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="showComplementFeatures" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
+ * &lt;attribute name="showComplementFeaturesOnTop" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * </pre>
*
*
*/
/**
* Gets the value of the hiddenColumns property.
*
- * <p>
+ * <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
- * This is why there is not a <CODE>set</CODE> method for the hiddenColumns property.
+ * This is why there is not a <CODE>set</CODE> method for the hiddenColumns property.
*
- * <p>
+ * <p>
* For example, to add a new item, do as follows:
- * <pre>
+ * <pre>
* getHiddenColumns().add(newItem);
- * </pre>
+ * </pre>
*
*
- * <p>
+ * <p>
* Objects of the following type(s) are allowed in the list
* {@link JalviewModel.Viewport.HiddenColumns }
*
/**
* Gets the value of the calcIdParam property.
*
- * <p>
+ * <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
- * This is why there is not a <CODE>set</CODE> method for the calcIdParam property.
+ * This is why there is not a <CODE>set</CODE> method for the calcIdParam property.
*
- * <p>
+ * <p>
* For example, to add a new item, do as follows:
- * <pre>
+ * <pre>
* getCalcIdParam().add(newItem);
- * </pre>
+ * </pre>
*
*
- * <p>
+ * <p>
* Objects of the following type(s) are allowed in the list
* {@link JalviewModel.Viewport.CalcIdParam }
*
/**
- * <p>Java class for anonymous complex type.
+ * <p>Java class for anonymous complex type.
*
- * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>The following schema fragment specifies the expected content contained within this class.
*
- * <pre>
- * <complexType>
- * <complexContent>
- * <extension base="{www.jalview.org/xml/wsparamset}WebServiceParameterSet">
- * <attribute name="calcId" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="needsUpdate" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
- * <attribute name="autoUpdate" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * </extension>
- * </complexContent>
- * </complexType>
- * </pre>
+ * <pre>
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;extension base="{www.jalview.org/xml/wsparamset}WebServiceParameterSet"&gt;
+ * &lt;attribute name="calcId" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="needsUpdate" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
+ * &lt;attribute name="autoUpdate" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;/extension&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * </pre>
*
*
*/
/**
- * <p>Java class for anonymous complex type.
+ * <p>Java class for anonymous complex type.
*
- * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>The following schema fragment specifies the expected content contained within this class.
*
- * <pre>
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <attribute name="start" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="end" type="{http://www.w3.org/2001/XMLSchema}int" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </pre>
+ * <pre>
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;attribute name="start" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="end" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * </pre>
*
*
*/
//
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// This file was generated by the Eclipse Implementation of JAXB, v2.3.3
+// See https://eclipse-ee4j.github.io/jaxb-ri
// Any modifications to this file will be lost upon recompilation of the source schema.
-// Generated on: 2019.06.07 at 02:21:15 PM BST
+// Generated on: 2021.08.30 at 11:05:22 AM BST
//
/**
- * <p>Java class for JalviewUserColours complex type.
+ * <p>Java class for JalviewUserColours complex type.
*
- * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>The following schema fragment specifies the expected content contained within this class.
*
- * <pre>
- * <complexType name="JalviewUserColours">
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <sequence>
- * <element name="Version" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- * <element name="colour" maxOccurs="unbounded" minOccurs="0">
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <sequence>
- * <element name="attributeName" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="2" minOccurs="0"/>
- * </sequence>
- * <attribute name="Name" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="RGB" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="minRGB" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="noValueColour" type="{www.jalview.org/colours}NoValueColour" default="Min" />
- * <attribute name="threshType" type="{www.jalview.org/colours}ThresholdType" />
- * <attribute name="threshold" type="{http://www.w3.org/2001/XMLSchema}float" />
- * <attribute name="max" type="{http://www.w3.org/2001/XMLSchema}float" />
- * <attribute name="min" type="{http://www.w3.org/2001/XMLSchema}float" />
- * <attribute name="colourByLabel" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="autoScale" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </element>
- * <element name="filter" maxOccurs="unbounded" minOccurs="0">
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <sequence>
- * <element name="matcherSet" type="{www.jalview.org/colours}FeatureMatcherSet"/>
- * </sequence>
- * <attribute name="featureType" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </element>
- * </sequence>
- * <attribute name="schemeName" type="{http://www.w3.org/2001/XMLSchema}string" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </pre>
+ * <pre>
+ * &lt;complexType name="JalviewUserColours"&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;sequence&gt;
+ * &lt;element name="Version" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
+ * &lt;element name="colour" maxOccurs="unbounded" minOccurs="0"&gt;
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;sequence&gt;
+ * &lt;element name="attributeName" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="2" minOccurs="0"/&gt;
+ * &lt;/sequence&gt;
+ * &lt;attribute name="Name" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="RGB" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="minRGB" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="noValueColour" type="{www.jalview.org/colours}NoValueColour" default="Min" /&gt;
+ * &lt;attribute name="threshType" type="{www.jalview.org/colours}ThresholdType" /&gt;
+ * &lt;attribute name="threshold" type="{http://www.w3.org/2001/XMLSchema}float" /&gt;
+ * &lt;attribute name="max" type="{http://www.w3.org/2001/XMLSchema}float" /&gt;
+ * &lt;attribute name="min" type="{http://www.w3.org/2001/XMLSchema}float" /&gt;
+ * &lt;attribute name="colourByLabel" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="autoScale" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * &lt;/element&gt;
+ * &lt;element name="filter" maxOccurs="unbounded" minOccurs="0"&gt;
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;sequence&gt;
+ * &lt;element name="matcherSet" type="{www.jalview.org/colours}FeatureMatcherSet"/&gt;
+ * &lt;/sequence&gt;
+ * &lt;attribute name="featureType" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * &lt;/element&gt;
+ * &lt;/sequence&gt;
+ * &lt;attribute name="schemeName" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * </pre>
*
*
*/
/**
* Gets the value of the colour property.
*
- * <p>
+ * <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
- * This is why there is not a <CODE>set</CODE> method for the colour property.
+ * This is why there is not a <CODE>set</CODE> method for the colour property.
*
- * <p>
+ * <p>
* For example, to add a new item, do as follows:
- * <pre>
+ * <pre>
* getColour().add(newItem);
- * </pre>
+ * </pre>
*
*
- * <p>
+ * <p>
* Objects of the following type(s) are allowed in the list
* {@link JalviewUserColours.Colour }
*
/**
* Gets the value of the filter property.
*
- * <p>
+ * <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
- * This is why there is not a <CODE>set</CODE> method for the filter property.
+ * This is why there is not a <CODE>set</CODE> method for the filter property.
*
- * <p>
+ * <p>
* For example, to add a new item, do as follows:
- * <pre>
+ * <pre>
* getFilter().add(newItem);
- * </pre>
+ * </pre>
*
*
- * <p>
+ * <p>
* Objects of the following type(s) are allowed in the list
* {@link JalviewUserColours.Filter }
*
/**
- * <p>Java class for anonymous complex type.
+ * <p>Java class for anonymous complex type.
*
- * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>The following schema fragment specifies the expected content contained within this class.
*
- * <pre>
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <sequence>
- * <element name="attributeName" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="2" minOccurs="0"/>
- * </sequence>
- * <attribute name="Name" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="RGB" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="minRGB" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="noValueColour" type="{www.jalview.org/colours}NoValueColour" default="Min" />
- * <attribute name="threshType" type="{www.jalview.org/colours}ThresholdType" />
- * <attribute name="threshold" type="{http://www.w3.org/2001/XMLSchema}float" />
- * <attribute name="max" type="{http://www.w3.org/2001/XMLSchema}float" />
- * <attribute name="min" type="{http://www.w3.org/2001/XMLSchema}float" />
- * <attribute name="colourByLabel" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * <attribute name="autoScale" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </pre>
+ * <pre>
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;sequence&gt;
+ * &lt;element name="attributeName" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="2" minOccurs="0"/&gt;
+ * &lt;/sequence&gt;
+ * &lt;attribute name="Name" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="RGB" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="minRGB" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="noValueColour" type="{www.jalview.org/colours}NoValueColour" default="Min" /&gt;
+ * &lt;attribute name="threshType" type="{www.jalview.org/colours}ThresholdType" /&gt;
+ * &lt;attribute name="threshold" type="{http://www.w3.org/2001/XMLSchema}float" /&gt;
+ * &lt;attribute name="max" type="{http://www.w3.org/2001/XMLSchema}float" /&gt;
+ * &lt;attribute name="min" type="{http://www.w3.org/2001/XMLSchema}float" /&gt;
+ * &lt;attribute name="colourByLabel" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;attribute name="autoScale" type="{http://www.w3.org/2001/XMLSchema}boolean" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * </pre>
*
*
*/
/**
* Gets the value of the attributeName property.
*
- * <p>
+ * <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
- * This is why there is not a <CODE>set</CODE> method for the attributeName property.
+ * This is why there is not a <CODE>set</CODE> method for the attributeName property.
*
- * <p>
+ * <p>
* For example, to add a new item, do as follows:
- * <pre>
+ * <pre>
* getAttributeName().add(newItem);
- * </pre>
+ * </pre>
*
*
- * <p>
+ * <p>
* Objects of the following type(s) are allowed in the list
* {@link String }
*
/**
- * <p>Java class for anonymous complex type.
+ * <p>Java class for anonymous complex type.
*
- * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>The following schema fragment specifies the expected content contained within this class.
*
- * <pre>
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <sequence>
- * <element name="matcherSet" type="{www.jalview.org/colours}FeatureMatcherSet"/>
- * </sequence>
- * <attribute name="featureType" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </pre>
+ * <pre>
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;sequence&gt;
+ * &lt;element name="matcherSet" type="{www.jalview.org/colours}FeatureMatcherSet"/&gt;
+ * &lt;/sequence&gt;
+ * &lt;attribute name="featureType" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * </pre>
*
*
*/
//
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// This file was generated by the Eclipse Implementation of JAXB, v2.3.3
+// See https://eclipse-ee4j.github.io/jaxb-ri
// Any modifications to this file will be lost upon recompilation of the source schema.
-// Generated on: 2019.06.07 at 02:21:15 PM BST
+// Generated on: 2021.08.30 at 11:05:22 AM BST
//
* This effectively represents a java.util.MapList object
*
*
- * <p>Java class for mapListType complex type.
+ * <p>Java class for mapListType complex type.
*
- * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>The following schema fragment specifies the expected content contained within this class.
*
- * <pre>
- * <complexType name="mapListType">
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <sequence>
- * <element name="mapListFrom" maxOccurs="unbounded" minOccurs="0">
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <attribute name="start" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="end" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </element>
- * <element name="mapListTo" maxOccurs="unbounded" minOccurs="0">
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <attribute name="start" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="end" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </element>
- * </sequence>
- * <attribute name="mapFromUnit" use="required" type="{http://www.w3.org/2001/XMLSchema}positiveInteger" />
- * <attribute name="mapToUnit" use="required" type="{http://www.w3.org/2001/XMLSchema}positiveInteger" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </pre>
+ * <pre>
+ * &lt;complexType name="mapListType"&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;sequence&gt;
+ * &lt;element name="mapListFrom" maxOccurs="unbounded" minOccurs="0"&gt;
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;attribute name="start" use="required" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="end" use="required" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * &lt;/element&gt;
+ * &lt;element name="mapListTo" maxOccurs="unbounded" minOccurs="0"&gt;
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;attribute name="start" use="required" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="end" use="required" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * &lt;/element&gt;
+ * &lt;/sequence&gt;
+ * &lt;attribute name="mapFromUnit" use="required" type="{http://www.w3.org/2001/XMLSchema}positiveInteger" /&gt;
+ * &lt;attribute name="mapToUnit" use="required" type="{http://www.w3.org/2001/XMLSchema}positiveInteger" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * </pre>
*
*
*/
/**
* Gets the value of the mapListFrom property.
*
- * <p>
+ * <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
- * This is why there is not a <CODE>set</CODE> method for the mapListFrom property.
+ * This is why there is not a <CODE>set</CODE> method for the mapListFrom property.
*
- * <p>
+ * <p>
* For example, to add a new item, do as follows:
- * <pre>
+ * <pre>
* getMapListFrom().add(newItem);
- * </pre>
+ * </pre>
*
*
- * <p>
+ * <p>
* Objects of the following type(s) are allowed in the list
* {@link MapListType.MapListFrom }
*
/**
* Gets the value of the mapListTo property.
*
- * <p>
+ * <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
- * This is why there is not a <CODE>set</CODE> method for the mapListTo property.
+ * This is why there is not a <CODE>set</CODE> method for the mapListTo property.
*
- * <p>
+ * <p>
* For example, to add a new item, do as follows:
- * <pre>
+ * <pre>
* getMapListTo().add(newItem);
- * </pre>
+ * </pre>
*
*
- * <p>
+ * <p>
* Objects of the following type(s) are allowed in the list
* {@link MapListType.MapListTo }
*
/**
- * <p>Java class for anonymous complex type.
+ * <p>Java class for anonymous complex type.
*
- * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>The following schema fragment specifies the expected content contained within this class.
*
- * <pre>
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <attribute name="start" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="end" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </pre>
+ * <pre>
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;attribute name="start" use="required" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="end" use="required" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * </pre>
*
*
*/
/**
- * <p>Java class for anonymous complex type.
+ * <p>Java class for anonymous complex type.
*
- * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>The following schema fragment specifies the expected content contained within this class.
*
- * <pre>
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <attribute name="start" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />
- * <attribute name="end" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </pre>
+ * <pre>
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;attribute name="start" use="required" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;attribute name="end" use="required" type="{http://www.w3.org/2001/XMLSchema}int" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * </pre>
*
*
*/
//
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// This file was generated by the Eclipse Implementation of JAXB, v2.3.3
+// See https://eclipse-ee4j.github.io/jaxb-ri
// Any modifications to this file will be lost upon recompilation of the source schema.
-// Generated on: 2019.06.07 at 02:21:15 PM BST
+// Generated on: 2021.08.30 at 11:05:22 AM BST
//
* to the sequence set (which will mean they are then added to the alignment too).
*
*
- * <p>Java class for anonymous complex type.
+ * <p>Java class for anonymous complex type.
*
- * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>The following schema fragment specifies the expected content contained within this class.
*
- * <pre>
- * <complexType>
- * <complexContent>
- * <extension base="{www.vamsas.ac.uk/jalview/version2}mapListType">
- * <sequence>
- * <choice minOccurs="0">
- * <element ref="{www.vamsas.ac.uk/jalview/version2}Sequence"/>
- * <element name="dseqFor">
- * <simpleType>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}string">
- * </restriction>
- * </simpleType>
- * </element>
- * </choice>
- * </sequence>
- * <attribute name="mappingType" type="{http://www.w3.org/2001/XMLSchema}string" />
- * </extension>
- * </complexContent>
- * </complexType>
- * </pre>
+ * <pre>
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;extension base="{www.vamsas.ac.uk/jalview/version2}mapListType"&gt;
+ * &lt;sequence&gt;
+ * &lt;choice minOccurs="0"&gt;
+ * &lt;element ref="{www.vamsas.ac.uk/jalview/version2}Sequence"/&gt;
+ * &lt;element name="dseqFor"&gt;
+ * &lt;simpleType&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string"&gt;
+ * &lt;/restriction&gt;
+ * &lt;/simpleType&gt;
+ * &lt;/element&gt;
+ * &lt;/choice&gt;
+ * &lt;/sequence&gt;
+ * &lt;attribute name="mappingType" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;/extension&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * </pre>
*
*
*/
//
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// This file was generated by the Eclipse Implementation of JAXB, v2.3.3
+// See https://eclipse-ee4j.github.io/jaxb-ri
// Any modifications to this file will be lost upon recompilation of the source schema.
-// Generated on: 2019.06.07 at 02:21:15 PM BST
+// Generated on: 2021.08.30 at 11:05:22 AM BST
//
/**
- * <p>Java class for NoValueColour.
+ * <p>Java class for NoValueColour.
*
- * <p>The following schema fragment specifies the expected content contained within this class.
- * <p>
- * <pre>
- * <simpleType name="NoValueColour">
- * <restriction base="{http://www.w3.org/2001/XMLSchema}string">
- * <enumeration value="None"/>
- * <enumeration value="Min"/>
- * <enumeration value="Max"/>
- * </restriction>
- * </simpleType>
- * </pre>
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * <pre>
+ * &lt;simpleType name="NoValueColour"&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string"&gt;
+ * &lt;enumeration value="None"/&gt;
+ * &lt;enumeration value="Min"/&gt;
+ * &lt;enumeration value="Max"/&gt;
+ * &lt;/restriction&gt;
+ * &lt;/simpleType&gt;
+ * </pre>
*
*/
@XmlType(name = "NoValueColour", namespace = "www.jalview.org/colours")
//
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// This file was generated by the Eclipse Implementation of JAXB, v2.3.3
+// See https://eclipse-ee4j.github.io/jaxb-ri
// Any modifications to this file will be lost upon recompilation of the source schema.
-// Generated on: 2019.06.07 at 02:21:15 PM BST
+// Generated on: 2021.08.30 at 11:05:22 AM BST
//
* This object contains factory methods for each
* Java content interface and Java element interface
* generated in the jalview.xml.binding.jalview package.
- * <p>An ObjectFactory allows you to programatically
+ * <p>An ObjectFactory allows you to programatically
* construct new instances of the Java representation
* for XML content. The Java representation of XML
* content can consist of schema derived interfaces
@XmlRegistry
public class ObjectFactory {
- private final static QName _WebServiceParameterSet_QNAME = new QName("www.jalview.org/xml/wsparamset", "WebServiceParameterSet");
private final static QName _JalviewModel_QNAME = new QName("www.jalview.org", "JalviewModel");
private final static QName _JalviewUserColours_QNAME = new QName("www.jalview.org/colours", "JalviewUserColours");
+ private final static QName _WebServiceParameterSet_QNAME = new QName("www.jalview.org/xml/wsparamset", "WebServiceParameterSet");
/**
* Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: jalview.xml.binding.jalview
}
/**
- * Create an instance of {@link AlcodonFrame }
- *
- */
- public AlcodonFrame createAlcodonFrame() {
- return new AlcodonFrame();
- }
-
- /**
* Create an instance of {@link MapListType }
*
*/
}
/**
+ * Create an instance of {@link AlcodonFrame }
+ *
+ */
+ public AlcodonFrame createAlcodonFrame() {
+ return new AlcodonFrame();
+ }
+
+ /**
* Create an instance of {@link Annotation }
*
*/
}
/**
- * Create an instance of {@link DoubleMatrix }
- *
- */
- public DoubleMatrix createDoubleMatrix() {
- return new DoubleMatrix();
- }
-
- /**
* Create an instance of {@link AnnotationColourScheme }
*
*/
}
/**
- * Create an instance of {@link AlcodonFrame.Alcodon }
- *
- */
- public AlcodonFrame.Alcodon createAlcodonFrameAlcodon() {
- return new AlcodonFrame.Alcodon();
- }
-
- /**
- * Create an instance of {@link AlcodonFrame.AlcodMap }
- *
- */
- public AlcodonFrame.AlcodMap createAlcodonFrameAlcodMap() {
- return new AlcodonFrame.AlcodMap();
- }
-
- /**
- * Create an instance of {@link AnnotationElement }
+ * Create an instance of {@link DoubleMatrix }
*
*/
- public AnnotationElement createAnnotationElement() {
- return new AnnotationElement();
+ public DoubleMatrix createDoubleMatrix() {
+ return new DoubleMatrix();
}
/**
}
/**
+ * Create an instance of {@link AlcodonFrame.Alcodon }
+ *
+ */
+ public AlcodonFrame.Alcodon createAlcodonFrameAlcodon() {
+ return new AlcodonFrame.Alcodon();
+ }
+
+ /**
+ * Create an instance of {@link AlcodonFrame.AlcodMap }
+ *
+ */
+ public AlcodonFrame.AlcodMap createAlcodonFrameAlcodMap() {
+ return new AlcodonFrame.AlcodMap();
+ }
+
+ /**
+ * Create an instance of {@link AnnotationElement }
+ *
+ */
+ public AnnotationElement createAnnotationElement() {
+ return new AnnotationElement();
+ }
+
+ /**
* Create an instance of {@link Annotation.ThresholdLine }
*
*/
}
/**
- * Create an instance of {@link JAXBElement }{@code <}{@link WebServiceParameterSet }{@code >}}
- *
- */
- @XmlElementDecl(namespace = "www.jalview.org/xml/wsparamset", name = "WebServiceParameterSet")
- public JAXBElement<WebServiceParameterSet> createWebServiceParameterSet(WebServiceParameterSet value) {
- return new JAXBElement<WebServiceParameterSet>(_WebServiceParameterSet_QNAME, WebServiceParameterSet.class, null, value);
- }
-
- /**
- * Create an instance of {@link JAXBElement }{@code <}{@link JalviewModel }{@code >}}
+ * Create an instance of {@link JAXBElement }{@code <}{@link JalviewModel }{@code >}
*
+ * @param value
+ * Java instance representing xml element's value.
+ * @return
+ * the new instance of {@link JAXBElement }{@code <}{@link JalviewModel }{@code >}
*/
@XmlElementDecl(namespace = "www.jalview.org", name = "JalviewModel")
public JAXBElement<JalviewModel> createJalviewModel(JalviewModel value) {
}
/**
- * Create an instance of {@link JAXBElement }{@code <}{@link JalviewUserColours }{@code >}}
+ * Create an instance of {@link JAXBElement }{@code <}{@link JalviewUserColours }{@code >}
*
+ * @param value
+ * Java instance representing xml element's value.
+ * @return
+ * the new instance of {@link JAXBElement }{@code <}{@link JalviewUserColours }{@code >}
*/
@XmlElementDecl(namespace = "www.jalview.org/colours", name = "JalviewUserColours")
public JAXBElement<JalviewUserColours> createJalviewUserColours(JalviewUserColours value) {
return new JAXBElement<JalviewUserColours>(_JalviewUserColours_QNAME, JalviewUserColours.class, null, value);
}
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link WebServiceParameterSet }{@code >}
+ *
+ * @param value
+ * Java instance representing xml element's value.
+ * @return
+ * the new instance of {@link JAXBElement }{@code <}{@link WebServiceParameterSet }{@code >}
+ */
+ @XmlElementDecl(namespace = "www.jalview.org/xml/wsparamset", name = "WebServiceParameterSet")
+ public JAXBElement<WebServiceParameterSet> createWebServiceParameterSet(WebServiceParameterSet value) {
+ return new JAXBElement<WebServiceParameterSet>(_WebServiceParameterSet_QNAME, WebServiceParameterSet.class, null, value);
+ }
+
}
//
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// This file was generated by the Eclipse Implementation of JAXB, v2.3.3
+// See https://eclipse-ee4j.github.io/jaxb-ri
// Any modifications to this file will be lost upon recompilation of the source schema.
-// Generated on: 2019.06.07 at 02:21:15 PM BST
+// Generated on: 2021.08.30 at 11:05:22 AM BST
//
* The results of a PCA calculation
*
*
- * <p>Java class for PcaDataType complex type.
+ * <p>Java class for PcaDataType complex type.
*
- * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>The following schema fragment specifies the expected content contained within this class.
*
- * <pre>
- * <complexType name="PcaDataType">
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <sequence>
- * <element name="pairwiseMatrix" type="{www.jalview.org}DoubleMatrix"/>
- * <element name="tridiagonalMatrix" type="{www.jalview.org}DoubleMatrix"/>
- * <element name="eigenMatrix" type="{www.jalview.org}DoubleMatrix"/>
- * </sequence>
- * </restriction>
- * </complexContent>
- * </complexType>
- * </pre>
+ * <pre>
+ * &lt;complexType name="PcaDataType"&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;sequence&gt;
+ * &lt;element name="pairwiseMatrix" type="{www.jalview.org}DoubleMatrix"/&gt;
+ * &lt;element name="tridiagonalMatrix" type="{www.jalview.org}DoubleMatrix"/&gt;
+ * &lt;element name="eigenMatrix" type="{www.jalview.org}DoubleMatrix"/&gt;
+ * &lt;/sequence&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * </pre>
*
*
*/
//
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// This file was generated by the Eclipse Implementation of JAXB, v2.3.3
+// See https://eclipse-ee4j.github.io/jaxb-ri
// Any modifications to this file will be lost upon recompilation of the source schema.
-// Generated on: 2019.06.07 at 02:21:15 PM BST
+// Generated on: 2021.08.30 at 11:05:22 AM BST
//
/**
- * <p>Java class for pdbentry complex type.
+ * <p>Java class for pdbentry complex type.
*
- * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>The following schema fragment specifies the expected content contained within this class.
*
- * <pre>
- * <complexType name="pdbentry">
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <sequence maxOccurs="unbounded" minOccurs="0">
- * <element name="property" maxOccurs="unbounded" minOccurs="0">
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="value" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </element>
- * </sequence>
- * <attribute name="id" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="type" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="file" type="{http://www.w3.org/2001/XMLSchema}string" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </pre>
+ * <pre>
+ * &lt;complexType name="pdbentry"&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;sequence maxOccurs="unbounded" minOccurs="0"&gt;
+ * &lt;element name="property" maxOccurs="unbounded" minOccurs="0"&gt;
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="value" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * &lt;/element&gt;
+ * &lt;/sequence&gt;
+ * &lt;attribute name="id" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="type" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="file" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * </pre>
*
*
*/
/**
* Gets the value of the property property.
*
- * <p>
+ * <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
- * This is why there is not a <CODE>set</CODE> method for the property property.
+ * This is why there is not a <CODE>set</CODE> method for the property property.
*
- * <p>
+ * <p>
* For example, to add a new item, do as follows:
- * <pre>
+ * <pre>
* getProperty().add(newItem);
- * </pre>
+ * </pre>
*
*
- * <p>
+ * <p>
* Objects of the following type(s) are allowed in the list
* {@link Pdbentry.Property }
*
/**
- * <p>Java class for anonymous complex type.
- *
- * <p>The following schema fragment specifies the expected content contained within this class.
- *
- * <pre>
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="value" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </pre>
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="value" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * </pre>
*
*
*/
//
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// This file was generated by the Eclipse Implementation of JAXB, v2.3.3
+// See https://eclipse-ee4j.github.io/jaxb-ri
// Any modifications to this file will be lost upon recompilation of the source schema.
-// Generated on: 2019.06.07 at 02:21:15 PM BST
+// Generated on: 2021.08.30 at 11:05:22 AM BST
//
/**
- * <p>Java class for anonymous complex type.
+ * <p>Java class for anonymous complex type.
*
- * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>The following schema fragment specifies the expected content contained within this class.
*
- * <pre>
- * <complexType>
- * <complexContent>
- * <extension base="{www.vamsas.ac.uk/jalview/version2}SequenceType">
- * <sequence>
- * <element name="DBRef" maxOccurs="unbounded" minOccurs="0">
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <sequence>
- * <element ref="{www.vamsas.ac.uk/jalview/version2}Mapping" minOccurs="0"/>
- * </sequence>
- * <attribute name="source" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="version" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="accessionId" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="locus" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </element>
- * </sequence>
- * <attribute name="dsseqid" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="biotype" type="{http://www.w3.org/2001/XMLSchema}string" />
- * </extension>
- * </complexContent>
- * </complexType>
- * </pre>
+ * <pre>
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;extension base="{www.vamsas.ac.uk/jalview/version2}SequenceType"&gt;
+ * &lt;sequence&gt;
+ * &lt;element name="DBRef" maxOccurs="unbounded" minOccurs="0"&gt;
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;sequence&gt;
+ * &lt;element ref="{www.vamsas.ac.uk/jalview/version2}Mapping" minOccurs="0"/&gt;
+ * &lt;/sequence&gt;
+ * &lt;attribute name="source" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="version" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="accessionId" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="locus" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
+ * &lt;attribute name="canonical" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * &lt;/element&gt;
+ * &lt;/sequence&gt;
+ * &lt;attribute name="dsseqid" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="biotype" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;/extension&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * </pre>
*
*
*/
/**
* Gets the value of the dbRef property.
*
- * <p>
+ * <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
- * This is why there is not a <CODE>set</CODE> method for the dbRef property.
+ * This is why there is not a <CODE>set</CODE> method for the dbRef property.
*
- * <p>
+ * <p>
* For example, to add a new item, do as follows:
- * <pre>
+ * <pre>
* getDBRef().add(newItem);
- * </pre>
+ * </pre>
*
*
- * <p>
+ * <p>
* Objects of the following type(s) are allowed in the list
* {@link Sequence.DBRef }
*
/**
- * <p>Java class for anonymous complex type.
+ * <p>Java class for anonymous complex type.
*
- * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>The following schema fragment specifies the expected content contained within this class.
*
- * <pre>
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <sequence>
- * <element ref="{www.vamsas.ac.uk/jalview/version2}Mapping" minOccurs="0"/>
- * </sequence>
- * <attribute name="source" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="version" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="accessionId" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="locus" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </pre>
+ * <pre>
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;sequence&gt;
+ * &lt;element ref="{www.vamsas.ac.uk/jalview/version2}Mapping" minOccurs="0"/&gt;
+ * &lt;/sequence&gt;
+ * &lt;attribute name="source" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="version" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="accessionId" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="locus" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
+ * &lt;attribute name="canonical" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * </pre>
*
*
*/
protected String accessionId;
@XmlAttribute(name = "locus")
protected Boolean locus;
+ @XmlAttribute(name = "canonical")
+ protected Boolean canonical;
/**
* Gets the value of the mapping property.
this.locus = value;
}
+ /**
+ * Gets the value of the canonical property.
+ *
+ * @return
+ * possible object is
+ * {@link Boolean }
+ *
+ */
+ public boolean isCanonical() {
+ if (canonical == null) {
+ return false;
+ } else {
+ return canonical;
+ }
+ }
+
+ /**
+ * Sets the value of the canonical property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Boolean }
+ *
+ */
+ public void setCanonical(Boolean value) {
+ this.canonical = value;
+ }
+
}
}
//
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// This file was generated by the Eclipse Implementation of JAXB, v2.3.3
+// See https://eclipse-ee4j.github.io/jaxb-ri
// Any modifications to this file will be lost upon recompilation of the source schema.
-// Generated on: 2019.06.07 at 02:21:15 PM BST
+// Generated on: 2021.08.30 at 11:05:22 AM BST
//
/**
- * <p>Java class for anonymous complex type.
+ * <p>Java class for anonymous complex type.
*
- * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>The following schema fragment specifies the expected content contained within this class.
*
- * <pre>
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <sequence>
- * <element ref="{www.vamsas.ac.uk/jalview/version2}Sequence" maxOccurs="unbounded" minOccurs="0"/>
- * <element ref="{www.vamsas.ac.uk/jalview/version2}Annotation" maxOccurs="unbounded" minOccurs="0"/>
- * <element name="sequenceSetProperties" maxOccurs="unbounded" minOccurs="0">
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <attribute name="key" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="value" type="{http://www.w3.org/2001/XMLSchema}string" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </element>
- * <element ref="{www.vamsas.ac.uk/jalview/version2}AlcodonFrame" maxOccurs="unbounded" minOccurs="0"/>
- * </sequence>
- * <attribute name="gapChar" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="datasetId" type="{http://www.w3.org/2001/XMLSchema}string" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </pre>
+ * <pre>
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;sequence&gt;
+ * &lt;element ref="{www.vamsas.ac.uk/jalview/version2}Sequence" maxOccurs="unbounded" minOccurs="0"/&gt;
+ * &lt;element ref="{www.vamsas.ac.uk/jalview/version2}Annotation" maxOccurs="unbounded" minOccurs="0"/&gt;
+ * &lt;element name="sequenceSetProperties" maxOccurs="unbounded" minOccurs="0"&gt;
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;attribute name="key" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="value" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * &lt;/element&gt;
+ * &lt;element ref="{www.vamsas.ac.uk/jalview/version2}AlcodonFrame" maxOccurs="unbounded" minOccurs="0"/&gt;
+ * &lt;/sequence&gt;
+ * &lt;attribute name="gapChar" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="datasetId" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * </pre>
*
*
*/
/**
* Gets the value of the sequence property.
*
- * <p>
+ * <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
- * This is why there is not a <CODE>set</CODE> method for the sequence property.
+ * This is why there is not a <CODE>set</CODE> method for the sequence property.
*
- * <p>
+ * <p>
* For example, to add a new item, do as follows:
- * <pre>
+ * <pre>
* getSequence().add(newItem);
- * </pre>
+ * </pre>
*
*
- * <p>
+ * <p>
* Objects of the following type(s) are allowed in the list
* {@link Sequence }
*
/**
* Gets the value of the annotation property.
*
- * <p>
+ * <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
- * This is why there is not a <CODE>set</CODE> method for the annotation property.
+ * This is why there is not a <CODE>set</CODE> method for the annotation property.
*
- * <p>
+ * <p>
* For example, to add a new item, do as follows:
- * <pre>
+ * <pre>
* getAnnotation().add(newItem);
- * </pre>
+ * </pre>
*
*
- * <p>
+ * <p>
* Objects of the following type(s) are allowed in the list
* {@link Annotation }
*
/**
* Gets the value of the sequenceSetProperties property.
*
- * <p>
+ * <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
- * This is why there is not a <CODE>set</CODE> method for the sequenceSetProperties property.
+ * This is why there is not a <CODE>set</CODE> method for the sequenceSetProperties property.
*
- * <p>
+ * <p>
* For example, to add a new item, do as follows:
- * <pre>
+ * <pre>
* getSequenceSetProperties().add(newItem);
- * </pre>
+ * </pre>
*
*
- * <p>
+ * <p>
* Objects of the following type(s) are allowed in the list
* {@link SequenceSet.SequenceSetProperties }
*
/**
* Gets the value of the alcodonFrame property.
*
- * <p>
+ * <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
- * This is why there is not a <CODE>set</CODE> method for the alcodonFrame property.
+ * This is why there is not a <CODE>set</CODE> method for the alcodonFrame property.
*
- * <p>
+ * <p>
* For example, to add a new item, do as follows:
- * <pre>
+ * <pre>
* getAlcodonFrame().add(newItem);
- * </pre>
+ * </pre>
*
*
- * <p>
+ * <p>
* Objects of the following type(s) are allowed in the list
* {@link AlcodonFrame }
*
/**
- * <p>Java class for anonymous complex type.
- *
- * <p>The following schema fragment specifies the expected content contained within this class.
- *
- * <pre>
- * <complexType>
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <attribute name="key" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="value" type="{http://www.w3.org/2001/XMLSchema}string" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </pre>
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;attribute name="key" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="value" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * </pre>
*
*
*/
//
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// This file was generated by the Eclipse Implementation of JAXB, v2.3.3
+// See https://eclipse-ee4j.github.io/jaxb-ri
// Any modifications to this file will be lost upon recompilation of the source schema.
-// Generated on: 2019.06.07 at 02:21:15 PM BST
+// Generated on: 2021.08.30 at 11:05:22 AM BST
//
/**
- * <p>Java class for SequenceType complex type.
+ * <p>Java class for SequenceType complex type.
*
- * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>The following schema fragment specifies the expected content contained within this class.
*
- * <pre>
- * <complexType name="SequenceType">
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <sequence>
- * <element name="sequence" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- * <element name="name" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- * </sequence>
- * <attribute name="id" type="{http://www.w3.org/2001/XMLSchema}string" />
- * <attribute name="description" type="{http://www.w3.org/2001/XMLSchema}string" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </pre>
+ * <pre>
+ * &lt;complexType name="SequenceType"&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;sequence&gt;
+ * &lt;element name="sequence" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
+ * &lt;element name="name" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
+ * &lt;/sequence&gt;
+ * &lt;attribute name="id" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;attribute name="description" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * </pre>
*
*
*/
//
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// This file was generated by the Eclipse Implementation of JAXB, v2.3.3
+// See https://eclipse-ee4j.github.io/jaxb-ri
// Any modifications to this file will be lost upon recompilation of the source schema.
-// Generated on: 2019.06.07 at 02:21:15 PM BST
+// Generated on: 2021.08.30 at 11:05:22 AM BST
//
/**
- * <p>Java class for ThresholdType.
+ * <p>Java class for ThresholdType.
*
- * <p>The following schema fragment specifies the expected content contained within this class.
- * <p>
- * <pre>
- * <simpleType name="ThresholdType">
- * <restriction base="{http://www.w3.org/2001/XMLSchema}string">
- * <enumeration value="NONE"/>
- * <enumeration value="ABOVE"/>
- * <enumeration value="BELOW"/>
- * </restriction>
- * </simpleType>
- * </pre>
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * <pre>
+ * &lt;simpleType name="ThresholdType"&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string"&gt;
+ * &lt;enumeration value="NONE"/&gt;
+ * &lt;enumeration value="ABOVE"/&gt;
+ * &lt;enumeration value="BELOW"/&gt;
+ * &lt;/restriction&gt;
+ * &lt;/simpleType&gt;
+ * </pre>
*
*/
@XmlType(name = "ThresholdType", namespace = "www.jalview.org/colours")
//
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// This file was generated by the Eclipse Implementation of JAXB, v2.3.3
+// See https://eclipse-ee4j.github.io/jaxb-ri
// Any modifications to this file will be lost upon recompilation of the source schema.
-// Generated on: 2019.06.07 at 02:21:15 PM BST
+// Generated on: 2021.08.30 at 11:05:22 AM BST
//
/**
- * <p>Java class for VAMSAS complex type.
+ * <p>Java class for VAMSAS complex type.
*
- * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>The following schema fragment specifies the expected content contained within this class.
*
- * <pre>
- * <complexType name="VAMSAS">
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <sequence>
- * <element name="Tree" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/>
- * <element ref="{www.vamsas.ac.uk/jalview/version2}SequenceSet" maxOccurs="unbounded" minOccurs="0"/>
- * </sequence>
- * </restriction>
- * </complexContent>
- * </complexType>
- * </pre>
+ * <pre>
+ * &lt;complexType name="VAMSAS"&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;sequence&gt;
+ * &lt;element name="Tree" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt;
+ * &lt;element ref="{www.vamsas.ac.uk/jalview/version2}SequenceSet" maxOccurs="unbounded" minOccurs="0"/&gt;
+ * &lt;/sequence&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * </pre>
*
*
*/
/**
* Gets the value of the tree property.
*
- * <p>
+ * <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
- * This is why there is not a <CODE>set</CODE> method for the tree property.
+ * This is why there is not a <CODE>set</CODE> method for the tree property.
*
- * <p>
+ * <p>
* For example, to add a new item, do as follows:
- * <pre>
+ * <pre>
* getTree().add(newItem);
- * </pre>
+ * </pre>
*
*
- * <p>
+ * <p>
* Objects of the following type(s) are allowed in the list
* {@link String }
*
/**
* Gets the value of the sequenceSet property.
*
- * <p>
+ * <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
- * This is why there is not a <CODE>set</CODE> method for the sequenceSet property.
+ * This is why there is not a <CODE>set</CODE> method for the sequenceSet property.
*
- * <p>
+ * <p>
* For example, to add a new item, do as follows:
- * <pre>
+ * <pre>
* getSequenceSet().add(newItem);
- * </pre>
+ * </pre>
*
*
- * <p>
+ * <p>
* Objects of the following type(s) are allowed in the list
* {@link SequenceSet }
*
//
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// This file was generated by the Eclipse Implementation of JAXB, v2.3.3
+// See https://eclipse-ee4j.github.io/jaxb-ri
// Any modifications to this file will be lost upon recompilation of the source schema.
-// Generated on: 2019.06.07 at 02:21:15 PM BST
+// Generated on: 2021.08.30 at 11:05:22 AM BST
//
/**
- * <p>Java class for WebServiceParameterSet complex type.
+ * <p>Java class for WebServiceParameterSet complex type.
*
- * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>The following schema fragment specifies the expected content contained within this class.
*
- * <pre>
- * <complexType name="WebServiceParameterSet">
- * <complexContent>
- * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * <sequence>
- * <element name="Version" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- * <element name="description" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- * <element name="serviceURL" type="{http://www.w3.org/2001/XMLSchema}anyURI" maxOccurs="unbounded"/>
- * <element name="parameters" type="{http://www.w3.org/2001/XMLSchema}string"/>
- * </sequence>
- * <attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
- * </restriction>
- * </complexContent>
- * </complexType>
- * </pre>
+ * <pre>
+ * &lt;complexType name="WebServiceParameterSet"&gt;
+ * &lt;complexContent&gt;
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
+ * &lt;sequence&gt;
+ * &lt;element name="Version" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
+ * &lt;element name="description" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
+ * &lt;element name="serviceURL" type="{http://www.w3.org/2001/XMLSchema}anyURI" maxOccurs="unbounded"/&gt;
+ * &lt;element name="parameters" type="{http://www.w3.org/2001/XMLSchema}string"/&gt;
+ * &lt;/sequence&gt;
+ * &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
+ * &lt;/restriction&gt;
+ * &lt;/complexContent&gt;
+ * &lt;/complexType&gt;
+ * </pre>
*
*
*/
/**
* Gets the value of the serviceURL property.
*
- * <p>
+ * <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
- * This is why there is not a <CODE>set</CODE> method for the serviceURL property.
+ * This is why there is not a <CODE>set</CODE> method for the serviceURL property.
*
- * <p>
+ * <p>
* For example, to add a new item, do as follows:
- * <pre>
+ * <pre>
* getServiceURL().add(newItem);
- * </pre>
+ * </pre>
*
*
- * <p>
+ * <p>
* Objects of the following type(s) are allowed in the list
* {@link String }
*
//
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// This file was generated by the Eclipse Implementation of JAXB, v2.3.3
+// See https://eclipse-ee4j.github.io/jaxb-ri
// Any modifications to this file will be lost upon recompilation of the source schema.
-// Generated on: 2019.06.07 at 02:21:15 PM BST
+// Generated on: 2021.08.30 at 11:05:22 AM BST
//
@javax.xml.bind.annotation.XmlSchema(namespace = "www.vamsas.ac.uk/jalview/version2", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
String expectedString = "1xyz OR text:2xyz OR text:3xyz";
String outcome = PDBFTSPanel.decodeSearchTerm("1xyz:A;2xyz;3xyz",
"text");
- // System.out.println("1 >>>>>>>>>>> " + outcome);
+ System.out.println("1 >>>>>>>>>>> " + outcome);
assertEquals(expectedString, outcome);
expectedString = "1xyz";
assertTrue(!mainFrame.getTitle().equalsIgnoreCase(
"PDB Sequence Fetcher"));
}
+
+ @Test
+ public void getFTSframeTitleTest() {
+ PDBFTSPanel searchPanel = new PDBFTSPanel(null);
+ String outcome = searchPanel.getFTSFrameTitle();
+ //System.out.println("FTS Frame title :" + outcome);
+ assertEquals(outcome, "PDB Sequence Fetcher");
+ }
}
{
e1.printStackTrace();
}
+ System.out.println("wantedFields >>" + wantedFields);
+
FTSRestRequest request = new FTSRestRequest();
request.setAllowEmptySeq(false);
@Test(groups = { "External" }, expectedExceptions = Exception.class)
public void testForExpectedRuntimeException() throws Exception
{
+ // JBPNote: looks like this test fails for no good reason - what exception was supposed to be raised ?
List<FTSDataColumnI> wantedFields = new ArrayList<FTSDataColumnI>();
wantedFields.add(PDBFTSRestClient.getInstance()
.getDataColumnByNameOrCode("pdb_id"));
assertTrue(response.getSearchSummary() != null);
assertTrue(response.getNumberOfItemsFound() == 931);
assertTrue(response.getSearchSummary().size() == 14);
+ System.out.println("Search summary : " + response.getSearchSummary());
}
@Test(groups = { "Functional" })
--- /dev/null
+/tdbJson.java
+/tdbresttest2.java
--- /dev/null
+package jalview.fts.threedbeacons;
+
+import static org.testng.AssertJUnit.assertEquals;
+import static org.testng.AssertJUnit.assertTrue;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.testng.Assert;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+import jalview.fts.api.FTSDataColumnI;
+import jalview.fts.api.FTSDataColumnI.FTSDataColumnGroupI;
+import jalview.fts.core.FTSRestClient;
+import jalview.fts.core.FTSRestRequest;
+import jalview.fts.core.FTSRestResponse;
+import jalview.fts.service.pdb.PDBFTSRestClient;
+import jalview.fts.service.threedbeacons.TDBeaconsFTSRestClient;
+import jalview.gui.JvOptionPane;
+
+public class TDBeaconsFTSRestClientTest
+{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
+ private FTSRestClient ftsRestClient;
+
+ @BeforeMethod(alwaysRun = true)
+ public void setUp() throws Exception
+ {
+ ftsRestClient = new FTSRestClient()
+ {
+
+ @Override
+ public String getColumnDataConfigFileName()
+ {
+ return "/fts/tdbeacons_data_columns.txt";
+ }
+
+ @Override
+ public FTSRestResponse executeRequest(FTSRestRequest ftsRequest)
+ throws Exception
+ {
+ return null;
+ }
+ };
+ }
+
+ @AfterMethod(alwaysRun = true)
+ public void tearDown() throws Exception
+ {
+ }
+
+ @Test
+ public void getAllDefaulDisplayedDataColumns()
+ {
+ // to change when resources.tdbeacons_data_columns.txt is changed
+ Assert.assertNotNull(ftsRestClient
+ .getAllDefaultDisplayedFTSDataColumns());
+ System.out.println(ftsRestClient.getAllDefaultDisplayedFTSDataColumns());
+ Assert.assertTrue(!ftsRestClient.getAllDefaultDisplayedFTSDataColumns()
+ .isEmpty());
+ Assert.assertEquals(ftsRestClient
+ .getAllDefaultDisplayedFTSDataColumns().size(), 11);
+ }
+
+ @Test(groups = { "Functional" })
+ public void getPrimaryKeyColumIndexTest()
+ {
+ Collection<FTSDataColumnI> wantedFields = ftsRestClient
+ .getAllDefaultDisplayedFTSDataColumns();
+ int foundIndex = -1;
+ try
+ {
+ Assert.assertEquals(foundIndex, -1);
+ foundIndex = ftsRestClient.getPrimaryKeyColumIndex(wantedFields,
+ false);
+ Assert.assertEquals(foundIndex, 10);
+ foundIndex = ftsRestClient
+ .getPrimaryKeyColumIndex(wantedFields, true);
+ Assert.assertEquals(foundIndex, 11);
+ } catch (Exception e)
+ {
+ e.printStackTrace();
+ Assert.fail("Exception thrown while testing...");
+ }
+ }
+
+ @Test(groups = { "Functional" })
+ public void getDataColumnsFieldsAsCommaDelimitedString()
+ {
+ // to change when resources.tdbeacons_data_columns.txt is changed
+ Collection<FTSDataColumnI> wantedFields = ftsRestClient
+ .getAllDefaultDisplayedFTSDataColumns();
+ String actual = ftsRestClient
+ .getDataColumnsFieldsAsCommaDelimitedString(wantedFields);
+ Assert.assertEquals(actual,
+ "model_identifier,provider,model_category,uniprot_start,uniprot_end,resolution,qmean_avg_local_score,coverage,created,entry_name,model_url");
+ }
+
+ @Test(groups = { "Functional" })
+ public void getAllFTSDataColumns()
+ {
+ Collection<FTSDataColumnI> allFields = ftsRestClient
+ .getAllFTSDataColumns();
+ Assert.assertNotNull(allFields);
+ //System.out.println(allFields.size());
+ Assert.assertEquals(allFields.size(), 15);
+ }
+
+ @Test(groups = { "Functional" })
+ public void getSearchableDataColumns()
+ {
+ // to change when resources.tdbeacons_data_columns.txt is changed
+ Collection<FTSDataColumnI> searchableFields = ftsRestClient
+ .getSearchableDataColumns();
+ Assert.assertNotNull(searchableFields);
+ //System.out.println(searchableFields.size());
+ Assert.assertEquals(searchableFields.size(), 1); //only 1: uniprot accession
+ }
+
+ @Test(groups = { "Functional" })
+ public void getPrimaryKeyColumn()
+ {
+ // to change when resources.tdbeacons_data_columns.txt is changed
+ FTSDataColumnI expectedPKColumn;
+ try
+ {
+ expectedPKColumn = ftsRestClient
+ .getDataColumnByNameOrCode("Url");
+ Assert.assertNotNull(ftsRestClient.getPrimaryKeyColumn());
+ Assert.assertEquals(ftsRestClient.getPrimaryKeyColumn(),
+ expectedPKColumn);
+ } catch (Exception e)
+ {
+ e.printStackTrace();
+ Assert.fail("Exception thrown while testing...");
+ }
+ }
+
+ @Test(groups = { "Functional" })
+ public void getDataColumnByNameOrCode()
+ {
+ try
+ {
+ FTSDataColumnI foundDataCol = ftsRestClient
+ .getDataColumnByNameOrCode("uniprot_accession");
+ Assert.assertNotNull(foundDataCol);
+ Assert.assertEquals(foundDataCol.getName(), "UniProt Accession");
+ } catch (Exception e)
+ {
+ e.printStackTrace();
+ Assert.fail("Exception thrown while testing...");
+ }
+ }
+
+ @Test(groups = { "Functional" })
+ public void getDataColumnGroupById()
+ {
+ FTSDataColumnGroupI foundDataColGroup;
+ try
+ {
+ foundDataColGroup = ftsRestClient.getDataColumnGroupById("g2");
+ Assert.assertNotNull(foundDataColGroup);
+ Assert.assertEquals(foundDataColGroup.getName(), "Quality");
+ } catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ }
+
+ @Test(groups = { "Functional" })
+ public void getDefaultResponsePageSize()
+ {
+ int defaultResSize = ftsRestClient.getDefaultResponsePageSize();
+ Assert.assertEquals(defaultResSize, 100); //why 100 or 500 ? pdb is 100, uniprot 500
+ }
+
+ @Test(groups = { "Functional" })
+ public void getColumnMinWidthTest()
+ {
+ try
+ {
+ FTSDataColumnI foundDataCol = ftsRestClient
+ .getDataColumnByNameOrCode("uniprot_accession");
+ Assert.assertNotNull(foundDataCol);
+ int actualColMinWidth = foundDataCol.getMinWidth();
+ Assert.assertEquals(actualColMinWidth, 50);
+ } catch (Exception e)
+ {
+ e.printStackTrace();
+ Assert.fail("Exception thrown while testing...");
+ }
+ }
+ // could add test for MaxWidth & PreferedWith
+
+ @Test(groups = { "Functional" })
+ public void getColumnClassTest()
+ {
+ try
+ {
+ FTSDataColumnI foundDataCol = ftsRestClient
+ .getDataColumnByNameOrCode("uniprot_accession");
+ Assert.assertNotNull(foundDataCol);
+ Assert.assertEquals(foundDataCol.getDataType().getDataTypeClass(),
+ String.class);
+ foundDataCol = ftsRestClient.getDataColumnByNameOrCode("id");
+ Assert.assertNotNull(foundDataCol);
+ Assert.assertEquals(foundDataCol.getDataType().getDataTypeClass(),
+ String.class);
+ } catch (Exception e)
+ {
+ e.printStackTrace();
+ Assert.fail("Exception thrown while testing...");
+ }
+ }
+
+ @Test(groups = { "Functional" })
+ public void coverageForEqualsAndHashFunction()
+ {
+ Set<FTSDataColumnI> uniqueSet = new HashSet<FTSDataColumnI>();
+ Collection<FTSDataColumnI> searchableCols = ftsRestClient
+ .getSearchableDataColumns();
+ System.out.println(searchableCols);
+ for (FTSDataColumnI foundCol : searchableCols)
+ {
+ System.out.println(foundCol.toString());
+ uniqueSet.add(foundCol);
+ uniqueSet.add(foundCol);
+ }
+ Assert.assertTrue(!uniqueSet.isEmpty());
+ //Assert.assertEquals(uniqueSet.size(), 22); -> 1 or 2 currently for 3DB
+ }
+
+ @Test(groups = { "Functional" })
+ public void getTDBIdColumIndexTest()
+ {
+ List<FTSDataColumnI> wantedFields = new ArrayList<FTSDataColumnI>();
+ try
+ {
+ wantedFields.add(TDBeaconsFTSRestClient.getInstance()
+ .getDataColumnByNameOrCode("Model id"));
+ wantedFields.add(TDBeaconsFTSRestClient.getInstance()
+ .getDataColumnByNameOrCode("uniprot_accession"));
+ wantedFields.add(TDBeaconsFTSRestClient.getInstance()
+ .getDataColumnByNameOrCode("entry name"));
+ } catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ try
+ {
+ assertEquals(4, TDBeaconsFTSRestClient.getInstance()
+ .getPrimaryKeyColumIndex(wantedFields, true));
+// assertEquals(3, TDBeaconsFTSRestClient.getInstance()
+// .getPrimaryKeyColumIndex(wantedFields, true));
+ } catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ }
+
+
+ @Test(groups = { "External", "Network" })
+ public void executeRequestTest()
+ {
+ List<FTSDataColumnI> wantedFields = new ArrayList<FTSDataColumnI>();
+ try
+ {
+ wantedFields.add(TDBeaconsFTSRestClient.getInstance()
+ .getDataColumnByNameOrCode("Model Id"));
+ wantedFields.add(TDBeaconsFTSRestClient.getInstance()
+ .getDataColumnByNameOrCode("model_url"));
+ wantedFields.add(TDBeaconsFTSRestClient.getInstance()
+ .getDataColumnByNameOrCode("provider"));
+ wantedFields.add(TDBeaconsFTSRestClient.getInstance()
+ .getDataColumnByNameOrCode("model_category"));
+ wantedFields.add(TDBeaconsFTSRestClient.getInstance()
+ .getDataColumnByNameOrCode("qmean_avg_local_score"));
+ wantedFields.add(TDBeaconsFTSRestClient.getInstance()
+ .getDataColumnByNameOrCode("uniprot_start"));
+ wantedFields.add(TDBeaconsFTSRestClient.getInstance()
+ .getDataColumnByNameOrCode("uniprot_end"));
+ } catch (Exception e1)
+ {
+ e1.printStackTrace();
+ }
+ System.out.println("wantedFields >>" + wantedFields);
+
+ FTSRestRequest request = new FTSRestRequest();
+ request.setResponseSize(100);
+ request.setFieldToSearchBy("");
+ request.setSearchTerm("P01318.json");
+ request.setWantedFields(wantedFields);
+ System.out.println("request : " + request.getFieldToSearchBy());
+ //System.out.println(request.toString());
+
+ FTSRestResponse response;
+ try
+ {
+ response = TDBeaconsFTSRestClient.getInstance().executeRequest(request);
+ } catch (Exception e)
+ {
+ e.printStackTrace();
+ Assert.fail("Couldn't execute webservice call!");
+ return;
+ }
+ assertTrue(response.getSearchSummary() != null);
+ assertTrue(response.getNumberOfItemsFound() > 3); //4 atm
+ System.out.println("Search summary : \n" + response.getSearchSummary());
+ //System.out.println(response.getSearchSummary().size());
+ }
+}
--- /dev/null
+package jalview.fts.threedbeacons;
+
+
+import static org.testng.AssertJUnit.assertEquals;
+import static org.testng.AssertJUnit.assertTrue;
+
+import jalview.fts.service.pdb.PDBFTSPanel;
+import jalview.fts.service.threedbeacons.TDBeaconsFTSPanel;
+import jalview.gui.JvOptionPane;
+
+import javax.swing.JComboBox;
+import javax.swing.JInternalFrame;
+
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+import junit.extensions.PA;
+
+
+public class TDBeaconsPanelTest
+{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
+ @BeforeMethod(alwaysRun = true)
+ public void setUp() throws Exception
+ {
+ }
+
+ @AfterMethod(alwaysRun = true)
+ public void tearDown() throws Exception
+ {
+ }
+
+ @Test(groups = { "Functional" })
+ public void populateCmbSearchTargetOptionsTest()
+ {
+ TDBeaconsFTSPanel searchPanel = new TDBeaconsFTSPanel(null);
+ assertTrue(searchPanel.getCmbSearchTarget().getItemCount() > 0);
+ searchPanel.populateCmbSearchTargetOptions();
+ }
+
+ @Test
+ public void getFTSframeTitleTest() {
+ TDBeaconsFTSPanel searchPanel = new TDBeaconsFTSPanel(null);
+ System.out.println(searchPanel.getFTSFrameTitle());
+ }
+
+ @Test
+ public void testgetUNIPROTid() {
+ String outcome = TDBeaconsFTSPanel.decodeSearchTerm("P01308");
+ System.out.println(outcome);
+ }
+//
+// @Test
+// public void queryTest() {
+// int outcome = TDBeaconsFTSPanel.executeParse("P01308");
+// //System.out.println("query outcome :" + outcome);
+// int expected_length = 110;
+// assertEquals(outcome, expected_length);
+// }
+}
import jalview.datamodel.Sequence;
import jalview.datamodel.SequenceI;
import jalview.fts.api.FTSData;
+import jalview.gui.structurechooser.PDBStructureChooserQuerySource;
+import jalview.gui.structurechooser.StructureChooserQuerySource;
import jalview.jbgui.GStructureChooser.FilterOption;
import jalview.ws.params.InvalidArgumentException;
seq = null;
}
+ @SuppressWarnings("deprecation")
@Test(groups = { "Functional" })
public void buildQueryTest()
{
- String query = StructureChooser.buildQuery(seq);
- assertEquals("pdb_id:1tim", query);
System.out.println("seq >>>> " + seq);
+ StructureChooserQuerySource scquery = StructureChooserQuerySource.getPDBfts();
+ String query = scquery.buildQuery(seq);
+ assertEquals("pdb_id:1tim", query);
seq.getAllPDBEntries().clear();
- query = StructureChooser.buildQuery(seq);
+ query = scquery.buildQuery(seq);
assertEquals(
"text:XYZ_1 OR text:XYZ_2 OR text:XYZ_3 OR text:XYZ_4 OR text:4kqy",
query);
- seq.setDBRefs(null);
- query = StructureChooser.buildQuery(seq);
+ seq.setDBRefs(null);
+ query = scquery.buildQuery(seq);
+ System.out.println(query);
assertEquals("text:4kqy", query);
DBRefEntry uniprotDBRef = new DBRefEntry();
dbRef.setAccessionId("XYZ_" + x);
seq.addDBRef(dbRef);
}
- query = StructureChooser.buildQuery(seq);
+ System.out.println("");
+ System.out.println(seq.getDBRefs());
+ System.out.println(query);
+ query = scquery.buildQuery(seq);
assertEquals(
"uniprot_accession:P12345 OR uniprot_id:P12345 OR pdb_id:1xyz",
query);
public void sanitizeSeqNameTest()
{
String name = "ab_cdEF|fwxyz012349";
- assertEquals(name, StructureChooser.sanitizeSeqName(name));
+ assertEquals(name, PDBStructureChooserQuerySource.sanitizeSeqName(name));
// remove a [nn] substring
name = "abcde12[345]fg";
- assertEquals("abcde12fg", StructureChooser.sanitizeSeqName(name));
+ assertEquals("abcde12fg", PDBStructureChooserQuerySource.sanitizeSeqName(name));
// remove characters other than a-zA-Z0-9 | or _
name = "ab[cd],.\t£$*!- \\\"@:e";
- assertEquals("abcde", StructureChooser.sanitizeSeqName(name));
+ assertEquals("abcde", PDBStructureChooserQuerySource.sanitizeSeqName(name));
name = "abcde12[345a]fg";
- assertEquals("abcde12345afg", StructureChooser.sanitizeSeqName(name));
+ assertEquals("abcde12345afg", PDBStructureChooserQuerySource.sanitizeSeqName(name));
}
}
*/
package jalview.ws.dbsources;
+import static org.testng.Assert.assertFalse;
import static org.testng.AssertJUnit.assertEquals;
import static org.testng.AssertJUnit.assertNotNull;
import static org.testng.AssertJUnit.assertNull;
import static org.testng.AssertJUnit.assertTrue;
+import jalview.datamodel.DBRefEntry;
+import jalview.datamodel.DBRefSource;
import jalview.datamodel.SequenceI;
import jalview.gui.JvOptionPane;
+import jalview.util.DBRefUtils;
import jalview.xml.binding.uniprot.DbReferenceType;
import jalview.xml.binding.uniprot.Entry;
import jalview.xml.binding.uniprot.FeatureType;
assertEquals(6, seq.getDBRefs().size()); // 2*Uniprot, PDB, PDBsum, 2*EMBL
assertEquals(seq.getSequenceAsString(),
seq.createDatasetSequence().getSequenceAsString());
+ assertEquals(2,seq.getPrimaryDBRefs().size());
+ List<DBRefEntry> res = DBRefUtils.searchRefs(seq.getPrimaryDBRefs(), "A9CKP4");
+ assertEquals(1,res.size());
+ assertTrue(res.get(0).isCanonical());
+ res = DBRefUtils.searchRefsForSource(seq.getDBRefs(), DBRefSource.UNIPROT);
+ assertEquals(2,res.size());
+ /*
+ * NB this test fragile - relies on ordering being preserved
+ */
+ assertTrue(res.get(0).isCanonical());
+ assertFalse(res.get(1).isCanonical());
}
/**