pdbRequest.setFieldToSearchBy("(text:");
pdbRequest.setWantedFields(wantedFields);
pdbRequest.setSearchTerm(buildQuery(seq) + ")");
- pdbRequest.setAssociatedSequence(seq.getName());
+ pdbRequest.setAssociatedSequence(seq);
pdbRestCleint = new PDBRestClient();
PDBRestResponse resultList;
try
resultList = pdbRestCleint.executeRequest(pdbRequest);
} catch (Exception e)
{
+ e.printStackTrace();
errors.add(e.getMessage());
continue;
}
if (errors.size() > 0)
{
StringBuilder errorMsg = new StringBuilder();
- // "Operation was unsucessful due to the following: \n");
+ // "Operation was unsuccessful due to the following: \n");
for (String error : errors)
{
errorMsg.append(error).append("\n");
public void loadLocalCachedPDBEntries()
{
- DefaultTableModel tableModel = new DefaultTableModel();
- tableModel.addColumn("Sequence");
+ DefaultTableModel tableModel = new DefaultTableModel()
+ {
+ @Override
+ public boolean isCellEditable(int row, int column)
+ {
+ return false;
+ }
+ };
+ tableModel.addColumn("Ref Sequence");
tableModel.addColumn("PDB Id");
tableModel.addColumn("Chain");
tableModel.addColumn("Type");
String chain = pdbEntry.getChainCode() == null ? "_" : pdbEntry
.getChainCode();
- String[] pdbEntryRowData = new String[]
- { seq.getDisplayId(false), pdbEntry.getId(),
+ Object[] pdbEntryRowData = new Object[]
+ { seq, pdbEntry.getId(),
chain,
pdbEntry.getType(),
pdbEntry.getFile() };
{
for (PDBEntry entry : seq.getPDBId())
{
- seqRefs.add(entry.getId());
+ if (isValidSeqName(entry.getId()))
+ {
+ seqRefs.add(entry.getId());
+ }
}
}
int count = 0;
for (DBRefEntry dbRef : seq.getDBRef())
{
- seqRefs.add(getDBRefId(dbRef));
+ if (isValidSeqName(getDBRefId(dbRef)))
+ {
+ seqRefs.add(getDBRefId(dbRef));
+ }
++count;
if (count > 10)
{
*/
public static boolean isValidSeqName(String seqName)
{
- String ignoreList = "pdb,uniprot";
+ // 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.equalsIgnoreCase(ignoredEntry))
+ if (seqName.contains(ignoredEntry))
{
return false;
}
!chk_invertFilter.isSelected());
pdbRequest.setSearchTerm(buildQuery(seq) + ")");
pdbRequest.setWantedFields(wantedFields);
- pdbRequest.setAssociatedSequence(seq.getName());
+ pdbRequest.setAssociatedSequence(seq);
pdbRestCleint = new PDBRestClient();
PDBRestResponse resultList;
try
resultList = pdbRestCleint.executeRequest(pdbRequest);
} catch (Exception e)
{
+ e.printStackTrace();
errors.add(e.getMessage());
continue;
}
String currentView = selectedFilterOpt.getView();
if (currentView == VIEWS_FILTER)
{
- int pdbIdCol = PDBRestClient.getPDBIdColumIndex(
- lastPdbRequest.getWantedFields(), true);
+ int pdbIdColIndex = tbl_summary.getColumn(
+ PDBRestClient.PDBDocField.PDB_ID.getName()).getModelIndex();
+ int refSeqColIndex = tbl_summary.getColumn("Ref Sequence")
+ .getModelIndex();
int[] selectedRows = tbl_summary.getSelectedRows();
PDBEntry[] pdbEntriesToView = new PDBEntry[selectedRows.length];
int count = 0;
+ ArrayList<SequenceI> selectedSeqsToView = new ArrayList<SequenceI>();
for (int summaryRow : selectedRows)
{
- String pdbIdStr = tbl_summary.getValueAt(summaryRow, pdbIdCol)
+ String pdbIdStr = tbl_summary.getValueAt(summaryRow, pdbIdColIndex)
.toString();
-
+ SequenceI selectedSeq = (SequenceI) tbl_summary.getValueAt(
+ summaryRow, refSeqColIndex);
+ selectedSeqsToView.add(selectedSeq);
PDBEntry pdbEntry = cachedEntryMap.get(pdbIdStr.toLowerCase());
if (pdbEntry == null)
{
}
pdbEntriesToView[count++] = pdbEntry;
}
+ SequenceI[] selectedSeqs = selectedSeqsToView
+ .toArray(new SequenceI[selectedSeqsToView.size()]);
launchStructureViewer(ap.getStructureSelectionManager(),
- pdbEntriesToView, ap, selectedSequences);
+ pdbEntriesToView, ap, selectedSeqs);
}
else if(currentView == VIEWS_LOCAL_PDB){
int[] selectedRows = tbl_local_pdb.getSelectedRows();
PDBEntry[] pdbEntriesToView = new PDBEntry[selectedRows.length];
int count = 0;
+ int pdbIdColIndex = tbl_local_pdb.getColumn(
+ PDBRestClient.PDBDocField.PDB_ID.getName()).getModelIndex();
+ int refSeqColIndex = tbl_local_pdb.getColumn("Ref Sequence")
+ .getModelIndex();
+ ArrayList<SequenceI> selectedSeqsToView = new ArrayList<SequenceI>();
for (int row : selectedRows)
{
- String entryKey = tbl_local_pdb.getValueAt(row, 1).toString()
+ String entryKey = tbl_local_pdb.getValueAt(row, pdbIdColIndex)
+ .toString()
.toLowerCase();
pdbEntriesToView[count++] = cachedEntryMap.get(entryKey);
+ SequenceI selectedSeq = (SequenceI) tbl_local_pdb.getValueAt(row,
+ refSeqColIndex);
+ selectedSeqsToView.add(selectedSeq);
+
}
+ SequenceI[] selectedSeqs = selectedSeqsToView
+ .toArray(new SequenceI[selectedSeqsToView.size()]);
launchStructureViewer(ap.getStructureSelectionManager(),
- pdbEntriesToView, ap, selectedSequences);
+ pdbEntriesToView, ap, selectedSeqs);
}
else if (currentView == VIEWS_ENTER_ID)
{
private void launchStructureViewer(StructureSelectionManager ssm,
PDBEntry[] pdbEntriesToView, AlignmentPanel alignPanel,
- SequenceI[] selectedSequences)
+ SequenceI[] sequences)
{
StructureViewer sViewer = new StructureViewer(ssm);
if (pdbEntriesToView.length > 1)
{
- sViewer.viewStructures(alignPanel, pdbEntriesToView,
- alignPanel.av.collateForPDB(pdbEntriesToView));
+ ArrayList<SequenceI[]> seqsMap = new ArrayList<SequenceI[]>();
+ for (SequenceI seq : sequences)
+ {
+ seqsMap.add(new SequenceI[]
+ { seq });
+ }
+ SequenceI[][] collatedSeqs = seqsMap.toArray(new SequenceI[0][0]);
+ sViewer.viewStructures(pdbEntriesToView, collatedSeqs,
+ alignPanel);
+ // sViewer.viewStructures(pdbEntriesToView,
+ // alignPanel.av.collateForPDB(pdbEntriesToView),
+ // alignPanel);
}
else
{
- sViewer.viewStructures(pdbEntriesToView[0], selectedSequences, null,
+ sViewer.viewStructures(pdbEntriesToView[0], sequences,
alignPanel);
}
}
pdbRequest.setFieldToSearchBy("(pdb_id:");
pdbRequest.setWantedFields(wantedFields);
pdbRequest.setSearchTerm(txt_search.getText() + ")");
- pdbRequest.setAssociatedSequence(selectedSequence.getName());
+ pdbRequest.setAssociatedSequence(selectedSequence);
pdbRestCleint = new PDBRestClient();
PDBRestResponse resultList;
try