X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FStructureChooser.java;h=33d8c33e5bdec1a5cbd7165f50296b495e82e5e2;hb=6effa918f9de7e545ca3860d96d723e9a6eef2e3;hp=d4d077fce545adf568147134cd02d76eeeb9f96e;hpb=fc895e8dacdbb7f49df0ec5c9f475b841082e9b3;p=jalview.git diff --git a/src/jalview/gui/StructureChooser.java b/src/jalview/gui/StructureChooser.java index d4d077f..33d8c33 100644 --- a/src/jalview/gui/StructureChooser.java +++ b/src/jalview/gui/StructureChooser.java @@ -322,6 +322,11 @@ public class StructureChooser extends GStructureChooser boolean isUniProtRefsFound = false; StringBuilder queryBuilder = new StringBuilder(); Set seqRefs = new LinkedHashSet<>(); + + /* + * note PDBs as DBRefEntry so they are not duplicated in query + */ + Set pdbids = new HashSet<>(); if (seq.getAllPDBEntries() != null && queryBuilder.length() < MAX_QLENGTH) @@ -330,17 +335,20 @@ public class StructureChooser extends GStructureChooser { if (isValidSeqName(entry.getId())) { - queryBuilder.append("pdb_id:").append(entry.getId().toLowerCase()) - .append(" OR "); + String id = entry.getId().toLowerCase(); + queryBuilder.append("pdb_id:").append(id).append(" OR "); isPDBRefsFound = true; + pdbids.add(id); } } } - if (seq.getDBRefs() != null && seq.getDBRefs().length != 0) + List refs = seq.getDBRefs(); + if (refs != null && refs.size() != 0) { - for (DBRefEntry dbRef : seq.getDBRefs()) + for (int ib = 0, nb = refs.size(); ib < nb; ib++) { + DBRefEntry dbRef = refs.get(ib); if (isValidSeqName(getDBRefId(dbRef)) && queryBuilder.length() < MAX_QLENGTH) { @@ -355,9 +363,13 @@ public class StructureChooser extends GStructureChooser else if (dbRef.getSource().equalsIgnoreCase(DBRefSource.PDB)) { - queryBuilder.append("pdb_id:") - .append(getDBRefId(dbRef).toLowerCase()).append(" OR "); - isPDBRefsFound = true; + String id = getDBRefId(dbRef).toLowerCase(); + if (!pdbids.contains(id)) + { + queryBuilder.append("pdb_id:").append(id).append(" OR "); + isPDBRefsFound = true; + pdbids.add(id); + } } else {