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.jbgui.GStructureChooser;
import jalview.structure.StructureSelectionManager;
import jalview.util.MessageManager;
+import jalview.ws.DBRefFetcher;
import jalview.ws.sifts.SiftsSettings;
import java.awt.event.ItemEvent;
public void fetchStructuresMetaData()
{
long startTime = System.currentTimeMillis();
- Collection<FTSDataColumnI> wantedFields = FTSDataColumnPreferences
- .getStructureSummaryFields();
+ pdbRestCleint = PDBFTSRestClient.getInstance();
+ Collection<FTSDataColumnI> wantedFields = pdbRestCleint
+ .getAllDefaulDisplayedDataColumns();
discoveredStructuresSet = new LinkedHashSet<FTSData>();
HashSet<String> errors = new HashSet<String>();
pdbRequest.setWantedFields(wantedFields);
pdbRequest.setSearchTerm(buildQuery(seq) + ")");
pdbRequest.setAssociatedSequence(seq);
- pdbRestCleint = PDBFTSRestClient.getInstance();
FTSRestResponse resultList;
try
{
}
/**
- * Remove the following special characters from input string +, -, &, |, !, (,
- * ), {, }, [, ], ^, ", ~, *, ?, :, \
+ * Remove the following special characters from input string +, -, &, !, (, ),
+ * {, }, [, ], ^, ", ~, *, ?, :, \
*
* @param seqName
* @return
{
Objects.requireNonNull(seqName);
return seqName.replaceAll("\\[\\d*\\]", "")
- .replaceAll("[^\\dA-Za-z|]", "").replaceAll("\\s+", "+");
+ .replaceAll("[^\\dA-Za-z|_]", "").replaceAll("\\s+", "+");
}
public void run()
{
long startTime = System.currentTimeMillis();
+ pdbRestCleint = PDBFTSRestClient.getInstance();
lbl_loading.setVisible(true);
- Collection<FTSDataColumnI> wantedFields = FTSDataColumnPreferences
- .getStructureSummaryFields();
+ Collection<FTSDataColumnI> wantedFields = pdbRestCleint
+ .getAllDefaulDisplayedDataColumns();
Collection<FTSData> filteredResponse = new HashSet<FTSData>();
HashSet<String> errors = new HashSet<String>();
pdbRequest.setWantedFields(wantedFields);
pdbRequest.setAssociatedSequence(seq);
}
- pdbRestCleint = PDBFTSRestClient.getInstance();
FTSRestResponse resultList;
try
{
{
int pdbIdColIndex = tbl_summary.getColumn("PDB Id")
.getModelIndex();
- int refSeqColIndex = tbl_summary.getColumn("Ref Sequence")
+ int refSeqColIndex = tbl_summary.getColumn("Ref Sequence")
.getModelIndex();
- int[] selectedRows = tbl_summary.getSelectedRows();
+ int[] selectedRows = tbl_summary.getSelectedRows();
PDBEntry[] pdbEntriesToView = new PDBEntry[selectedRows.length];
int count = 0;
ArrayList<SequenceI> selectedSeqsToView = new ArrayList<SequenceI>();
for (int row : selectedRows)
{
- String pdbIdStr = tbl_summary.getValueAt(row, pdbIdColIndex)
+ String pdbIdStr = tbl_summary.getValueAt(row, pdbIdColIndex)
.toString();
- SequenceI selectedSeq = (SequenceI) tbl_summary.getValueAt(row,
+ SequenceI selectedSeq = (SequenceI) tbl_summary.getValueAt(row,
refSeqColIndex);
selectedSeqsToView.add(selectedSeq);
PDBEntry pdbEntry = selectedSeq.getPDBEntry(pdbIdStr);
if (pdbEntry == null)
{
pdbEntry = new PDBEntry();
+ if (pdbIdStr.split(":").length > 1)
+ {
+ pdbEntry.setChainCode(pdbIdStr.split(":")[1]);
+ }
pdbEntry.setId(pdbIdStr);
pdbEntry.setType(PDBEntry.Type.PDB);
selectedSequence.getDatasetSequence().addPDBId(pdbEntry);
if (SiftsSettings.isMapWithSifts())
{
+ ArrayList<SequenceI> seqsWithoutSourceDBRef = new ArrayList<SequenceI>();
for (SequenceI seq : sequences)
{
if (seq.getSourceDBRef() == null)
{
- ssm.setProgressBar(null);
- ssm.setProgressBar("Fetching Database refs..");
- new jalview.ws.DBRefFetcher(sequences, null, null, null, false)
- .fetchDBRefs(true);
- break;
+ if (seq.getDBRefs() == null)
+ {
+ seqsWithoutSourceDBRef.add(seq);
+ continue;
+ }
+ for (DBRefEntry dbRef : seq.getDBRefs())
+ {
+ if (dbRef.getSource().equalsIgnoreCase("uniprot"))
+ {
+ seq.setSourceDBRef(dbRef);
+ break;
+ }
+ }
+ for (DBRefEntry dbRef : seq.getDBRefs())
+ {
+ if (dbRef.getSource().equalsIgnoreCase("pdb"))
+ {
+ seq.setSourceDBRef(dbRef);
+ break;
+ }
+ }
+ if (seq.getSourceDBRef() == null)
+ {
+ seqsWithoutSourceDBRef.add(seq);
+ }
}
}
- }
- if (pdbEntriesToView.length > 1)
+ if (!seqsWithoutSourceDBRef.isEmpty())
+ {
+ int y = seqsWithoutSourceDBRef.size();
+ ssm.setProgressBar(null);
+ ssm.setProgressBar(">>>>> Fetching Database refs for " + y
+ + " sequence" + (y > 1 ? "s" : "")
+ + " with no valid uniprot or pdb ref for SIFTS mapping");
+ System.out.println(">>>>> Fetching Database refs for " + y
+ + " sequence" + (y > 1 ? "s" : "")
+ + " with no valid uniprot or pdb ref for SIFTS mapping");
+ SequenceI[] seqWithoutSrcDBRef = new SequenceI[y];
+ int x = 0;
+ for (SequenceI fSeq : seqsWithoutSourceDBRef)
{
- ArrayList<SequenceI[]> seqsMap = new ArrayList<SequenceI[]>();
- for (SequenceI seq : sequences)
- {
- seqsMap.add(new SequenceI[] { seq });
- }
- SequenceI[][] collatedSeqs = seqsMap.toArray(new SequenceI[0][0]);
+ seqWithoutSrcDBRef[x++] = fSeq;
+ }
+ new DBRefFetcher(seqWithoutSrcDBRef).fetchDBRefs(true);
+ }
+ }
+ if (pdbEntriesToView.length > 1)
+ {
+ ArrayList<SequenceI[]> seqsMap = new ArrayList<SequenceI[]>();
+ for (SequenceI seq : sequences)
+ {
+ seqsMap.add(new SequenceI[] { seq });
+ }
+ SequenceI[][] collatedSeqs = seqsMap.toArray(new SequenceI[0][0]);
ssm.setProgressBar(null);
ssm.setProgressBar("Fetching PDB Structures for selected entries..");
- sViewer.viewStructures(pdbEntriesToView, collatedSeqs, alignPanel);
- }
- else
- {
+ sViewer.viewStructures(pdbEntriesToView, collatedSeqs, alignPanel);
+ }
+ else
+ {
ssm.setProgressBar(null);
ssm.setProgressBar("Fetching PDB Structure for "
+ pdbEntriesToView[0].getId());
- sViewer.viewStructures(pdbEntriesToView[0], sequences, alignPanel);
- }
+ sViewer.viewStructures(pdbEntriesToView[0], sequences, alignPanel);
+ }
}
/**
isValidPBDEntry = false;
if (txt_search.getText().length() > 0)
{
+ String searchTerm = txt_search.getText().toLowerCase();
+ searchTerm = searchTerm.split(":")[0];
+ System.out.println(">>>>> search term : " + searchTerm);
List<FTSDataColumnI> wantedFields = new ArrayList<FTSDataColumnI>();
FTSRestRequest pdbRequest = new FTSRestRequest();
pdbRequest.setAllowEmptySeq(false);
pdbRequest.setFieldToSearchBy("(pdb_id:");
pdbRequest.setWantedFields(wantedFields);
pdbRequest
- .setSearchTerm(txt_search.getText().toLowerCase() + ")");
+.setSearchTerm(searchTerm + ")");
pdbRequest.setAssociatedSequence(selectedSequence);
pdbRestCleint = PDBFTSRestClient.getInstance();
wantedFields.add(pdbRestCleint.getPrimaryKeyColumn());