import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.List;
+import java.util.Objects;
+import java.util.Vector;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
if (!isPDBRefsFound && !isUniProtRefsFound)
{
String seqName = seq.getName();
+ seqName = sanitizeSeqName(seqName);
String[] names = seqName.toLowerCase().split("\\|");
for (String name : names)
{
}
/**
+ * Remove the following special characters from input string +, -, &, |, !, (,
+ * ), {, }, [, ], ^, ", ~, *, ?, :, \
+ *
+ * @param seqName
+ * @return
+ */
+ private 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
*
.getStructureSummaryFields();
Collection<PDBResponseSummary> filteredResponse = new HashSet<PDBResponseSummary>();
HashSet<String> errors = new HashSet<String>();
- // try
- // {
- // PDBDocField fiterField = PDBRestClient
- // .getPDBDocFieldByCode(fieldToFilterBy);
- // if (!wantedFields.contains(fiterField))
- // {
- // wantedFields.add(fiterField);
- // }
- // } catch (Exception e)
- // {
- // e.printStackTrace();
- // }
for (SequenceI seq : selectedSequences)
{
SequenceI selectedSeq = (SequenceI) tbl_summary.getValueAt(row,
refSeqColIndex);
selectedSeqsToView.add(selectedSeq);
- PDBEntry pdbEntry = selectedSeq.getPDBEntry(pdbIdStr);
+ PDBEntry pdbEntry = selectedSeq.getPDBEntry(pdbIdStr);
+ if (pdbEntry == null)
+ {
+ pdbEntry = getFindEntry(pdbIdStr,
+ selectedSeq.getAllPDBEntries());
+ }
if (pdbEntry == null)
{
pdbEntry = new PDBEntry();
}).start();
}
+ 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;
+ }
+
private void launchStructureViewer(StructureSelectionManager ssm,
final PDBEntry[] pdbEntriesToView,
final AlignmentPanel alignPanel, SequenceI[] sequences)
pdbRequest.setResponseSize(1);
pdbRequest.setFieldToSearchBy("(pdb_id:");
pdbRequest.setWantedFields(wantedFields);
- pdbRequest.setSearchTerm(txt_search.getText() + ")");
+ pdbRequest
+ .setSearchTerm(txt_search.getText().toLowerCase() + ")");
pdbRequest.setAssociatedSequence(selectedSequence);
pdbRestCleint = new PDBRestClient();
PDBRestResponse resultList;