ArrayList unknownSequences;\r
CutAndPasteTransfer output = new CutAndPasteTransfer();\r
StringBuffer sbuffer = new StringBuffer();\r
+ boolean uniprotFlag = false;\r
\r
- Vector getUniprotEntries(File file)\r
+ public SequenceFeatureFetcher()\r
+ {}\r
+\r
+ public Vector getUniprotEntries(File file)\r
{\r
\r
UniprotFile uni = new UniprotFile();\r
for (int i = 0; (seqIndex < sequences.size()) && (i < 50);\r
seqIndex++, i++)\r
{\r
- SequenceI sequence = (SequenceI) sequences.get(seqIndex);\r
- if(!ids.contains(sequence.getName()))\r
+ Sequence sequence = (Sequence) sequences.get(seqIndex);\r
+ if(sequence.getSequenceFeatures()==null)\r
{\r
- ids.add(sequence.getName());\r
- unknownSequences.add(sequence.getName());\r
+ if (!ids.contains(sequence.getName()))\r
+ {\r
+ ids.add(sequence.getName());\r
+ unknownSequences.add(sequence);\r
+ }\r
}\r
}\r
\r
StringBuffer remainingIds = new StringBuffer("uniprot:");\r
for (int i = 0; i < ids.size(); i++)\r
{\r
+ if(ids.get(i).toString().indexOf("|")>-1)\r
+ {\r
+ remainingIds.append(ids.get(i).toString().substring(\r
+ ids.get(i).toString().lastIndexOf("|") + 1));\r
+ uniprotFlag = true;\r
+ }\r
remainingIds.append(ids.get(i) + ";");\r
}\r
EBIFetchClient ebi = new EBIFetchClient();\r
File file = ebi.fetchDataAsFile(remainingIds.toString(),\r
- "xml", null);\r
+ "xml", "raw");\r
\r
\r
\r
if(reply == javax.swing.JOptionPane.YES_OPTION)\r
new WSWUBlastClient(ap, align, unknownSequences);\r
}\r
- else\r
- ((Alignment)dataset).featuresAdded = true;\r
\r
\r
ap.repaint();\r
return;\r
\r
SequenceI sequence = null;\r
- // String pdb = null;\r
\r
Vector entries = getUniprotEntries(file);\r
\r
if (sequence == null)\r
{\r
//Sequence maybe Name, not Accession\r
- idmatch = entry.getName().elementAt(0).toString();;\r
+ idmatch = entry.getName().elementAt(0).toString();\r
sequence = dataset.findName(idmatch);\r
}\r
\r
- if (sequence == null)\r
+ if(sequence!=null)\r
+ ids.remove(sequence.getName());\r
+\r
+ else if (sequence == null && uniprotFlag)\r
{\r
- System.out.println("not found");\r
+ sequence = dataset.findName("UniProt/Swiss-Prot|"+entry.getAccession().elementAt(0)+"|"+idmatch);\r
+ ids.remove(idmatch);\r
+ }\r
+\r
+ if(sequence ==null)\r
+ {\r
+ System.out.println(idmatch+" not found");\r
continue;\r
}\r
\r
- ids.remove(sequence.getName());\r
- unknownSequences.remove(sequence.getName());\r
+ unknownSequences.remove(sequence);\r
\r
String nonGapped = AlignSeq.extractGaps("-. ", sequence.getSequence());\r
\r
int absStart = entry.getUniprotSequence().getContent().indexOf(\r
nonGapped.toString());\r
\r
- int residueOffset = 0;\r
if (absStart == -1)\r
{\r
// Is UniprotSequence contained in dataset sequence?\r
}\r
else\r
{\r
- if(entry.getFeatures()!=null)\r
+ if(entry.getFeature()!=null)\r
{\r
- Enumeration e = entry.getFeatures().elements();\r
+ Enumeration e = entry.getFeature().elements();\r
while (e.hasMoreElements())\r
{\r
SequenceFeature sf = (SequenceFeature) e.nextElement();\r
int absEnd = absStart + nonGapped.toString().length();\r
absStart += 1;\r
\r
- sequence.setSequenceFeatures(entry.getFeatures());\r
+ Enumeration e = entry.getDbReference().elements();\r
+ Vector onlyPdbEntries = new Vector();\r
+ while(e.hasMoreElements())\r
+ {\r
+ PDBEntry pdb = (PDBEntry)e.nextElement();\r
+ if(!pdb.getType().equals("PDB"))\r
+ continue;\r
+\r
+ onlyPdbEntries.addElement(pdb);\r
+ }\r
+\r
+ sequence.setPDBId(onlyPdbEntries);\r
+ sequence.setSequenceFeatures(entry.getFeature());\r
sequence.setStart(absStart);\r
sequence.setEnd(absEnd);\r
\r