- tbl_local_pdb.setModel(tableModel);
- }
-
- /**
- * Update the PDBEntry for a given sequence with values retrieved from
- * PDBResponseSummary
- *
- * @param seq
- * the Sequence to update its DBRef entry
- * @param responseSummaries
- * a collection of PDBResponseSummary
- */
- public void updateSequencePDBEntries(SequenceI seq,
- Collection<PDBResponseSummary> responseSummaries)
- {
- for (PDBResponseSummary response : responseSummaries)
- {
- String pdbIdStr = response.getPdbId();
- PDBEntry pdbEntry = cachedEntryMap.get(pdbIdStr.toLowerCase());
- if (pdbEntry == null)
- {
- pdbEntry = new PDBEntry();
- pdbEntry.setId(pdbIdStr);
- pdbEntry.setType(PDBEntry.Type.PDB);
- }
- seq.getDatasetSequence().addPDBId(pdbEntry);
- }
- }
-
- /**
- * 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 static String buildQuery(SequenceI seq)
- {
- HashSet<String> seqRefs = new LinkedHashSet<String>();
- String seqName = seq.getName();
- String[] names = seqName.toLowerCase().split("\\|");
- for (String name : names)
- {
- // System.out.println("Found name : " + name);
- name.trim();
- if (isValidSeqName(name))
- {
- seqRefs.add(name);
- }
- }
-
- if (seq.getPDBId() != null)
- {
- for (PDBEntry entry : seq.getPDBId())
- {
- if (isValidSeqName(entry.getId()))
- {
- seqRefs.add(entry.getId());
- }
- }
- }
-
- if (seq.getDBRef() != null && seq.getDBRef().length != 0)
- {
- int count = 0;
- for (DBRefEntry dbRef : seq.getDBRef())
- {
- if (isValidSeqName(getDBRefId(dbRef)))
- {
- seqRefs.add(getDBRefId(dbRef));
- }
- ++count;
- if (count > 10)
- {
- break;
- }
- }
- }
-
- StringBuilder queryBuilder = new StringBuilder();
- for (String seqRef : seqRefs)
- {
- queryBuilder.append("text:").append(seqRef).append(" OR ");
- }
- int endIndex = queryBuilder.lastIndexOf(" OR ");
- String query = queryBuilder.toString().substring(5, endIndex);
- return query;
- }
-
- /**
- * Ensures sequence ref names are not less than 3 characters and does not
- * contain a database name
- *
- * @param seqName
- * @return
- */
- public 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;
- }
-
- public static String getDBRefId(DBRefEntry dbRef)
- {
- String ref = dbRef.getAccessionId().replaceAll("GO:", "");
- return ref;