-\r
-\r
-\r
- Provenance getVamsasProvenance(jalview.datamodel.Provenance jprov)\r
- {\r
- jalview.datamodel.ProvenanceEntry [] entries = null;\r
-\r
-\r
- Provenance prov = new Provenance();\r
- org.exolab.castor.types.Date date = new org.exolab.castor.types.Date(\r
- new java.util.Date());\r
- Entry provEntry;\r
-\r
- if(jprov!=null)\r
- {\r
- entries = jprov.getEntries();\r
- for (int i = 0; i < entries.length; i++)\r
- {\r
- provEntry = new Entry();\r
- try\r
- {\r
- date = new org.exolab.castor.types.Date(entries[i].getDate());\r
- }\r
- catch (Exception ex)\r
- {\r
- ex.printStackTrace();\r
-\r
- date = new org.exolab.castor.types.Date(entries[i].getDate());\r
- }\r
- provEntry.setDate(date);\r
- provEntry.setUser(entries[i].getUser());\r
- provEntry.setAction(entries[i].getAction());\r
- prov.addEntry(provEntry);\r
- }\r
- }\r
- else\r
- {\r
- provEntry = new Entry();\r
- provEntry.setDate(date);\r
- provEntry.setUser(System.getProperty("user.name"));\r
- provEntry.setAction("Jalview");\r
- prov.addEntry(provEntry);\r
- }\r
-\r
- return prov;\r
- }\r
-\r
- jalview.datamodel.Provenance getJalviewProvenance(Provenance prov)\r
- {\r
-\r
- jalview.datamodel.Provenance jprov = new jalview.datamodel.Provenance();\r
- for (int i = 0; i < prov.getEntryCount(); i++)\r
- {\r
- jprov.addEntry(\r
- prov.getEntry(i).getUser(),\r
- prov.getEntry(i).getAction(),\r
- prov.getEntry(i).getDate().toDate(),\r
- prov.getEntry(i).getId()\r
- );\r
- }\r
-\r
- return jprov;\r
- }\r
-\r
- Provenance dummyProvenance()\r
- {\r
- Provenance prov = new Provenance();\r
- Entry entry = new Entry();\r
- entry.setAction("Jalview");\r
- entry.setDate(new org.exolab.castor.types.Date(new java.util.Date()));\r
- entry.setUser(System.getProperty("user.name"));\r
- prov.addEntry(entry);\r
- return prov;\r
- }\r
-\r
-}\r
+ \r
+ \r
+ \r
+ public void updateJalview()\r
+ {\r
+ VAMSAS root = cdoc.getVamsasRoots()[0];\r
+ try\r
+ {\r
+ boolean newds=false;\r
+ for (int _ds=0,_nds=root.getDataSetCount(); _ds<_nds; _ds++) {\r
+ /////////////////////////////////////\r
+ /////LOAD DATASET\r
+ DataSet dataset = vamsas.getDataSet(_ds);\r
+ int i, iSize = dataset.getSequenceCount();\r
+ jalview.datamodel.Alignment jdataset = (jalview.datamodel.Alignment) vobj2jv(dataset);\r
+ if (jdataset!=null) {\r
+ // recover\r
+ } else {\r
+ newds=true;\r
+ // construct new dataset\r
+ jalview.datamodel.Sequence [] seqs = new jalview.datamodel.Sequence[iSize];\r
+ DbRef [] dbref;\r
+ for (i = 0; i < iSize ; i++)\r
+ {\r
+ seqs[i] = new jalview.datamodel.Sequence(\r
+ dataset.getSequence(i).getName(),\r
+ dataset.getSequence(i).getSequence(),\r
+ dataset.getSequence(i).getStart(),\r
+ dataset.getSequence(i).getEnd() );\r
+ bindjvvobj(seqs[i], dataset.getSequence(i));\r
+ seqs[i].setVamsasId(dataset.getSequence(i).getVorbaId().getId());\r
+ \r
+ if (dataset.getDataSetAnnotations() != null)\r
+ {\r
+ for (int dsa = 0; dsa < dataset.getDataSetAnnotationsCount(); dsa++)\r
+ {\r
+ // could be optimised\r
+ if (dataset.getDataSetAnnotations(dsa).getSeqRef() ==\r
+ dataset.getSequence(i))\r
+ {\r
+ jalview.datamodel.SequenceFeature sf;\r
+ seqs[i].addSequenceFeature(sf=new jalview.datamodel.\r
+ SequenceFeature(\r
+ dataset.getDataSetAnnotations(dsa).getType(),\r
+ dataset.getDataSetAnnotations(dsa).getDescription(),\r
+ dataset.getDataSetAnnotations(dsa).getStatus(),\r
+ dataset.getDataSetAnnotations(dsa).getBegin(),\r
+ dataset.getDataSetAnnotations(dsa).getEnd(),\r
+ "vamsas"));\r
+ bindjvvobj(sf, dataset.getDataSetAnnotations(dsa));\r
+ }\r
+ }\r
+ }\r
+ dbref = dataset.getSequence(i).getDbRef();\r
+ \r
+ if(dbref.length>0)\r
+ {\r
+ for(int db=0; db<dbref.length; db++)\r
+ {\r
+ jalview.datamodel.DBRefEntry dbr;\r
+ seqs[i].addDBRef(dbr= new jalview.datamodel.DBRefEntry\r
+ (\r
+ dbref[db].getSource().toString(),\r
+ dbref[db].getVersion().toString(),\r
+ dbref[db].getAccessionId().toString()));\r
+ bindjvvobj(dbr, dvref[db]);\r
+ }\r
+ }\r
+ }\r
+ jdataset = jalview.datamodel.Alignment(seqs); // complete construction\r
+ bindjvvobj(jdataset, dataset);\r
+ }\r
+ ////////////////////////////////////////////////\r
+ }\r
+ for (int _al=0,_nal=dataset.getAlignmentCount(); _al<_nal; _al++) {\r
+ //////////////////////////////////////\r
+ ////LOAD ALIGNMENT\r
+ Alignment alignment = dataset.getAlignment(_al);\r
+ iSize = alignment.getAlignmentSequenceCount();\r
+ jalview.datamodel.Alignment jal = getvObj2jv(alignment); \r
+ if (jal!=null) {\r
+ // merge/update\r
+ } else {\r
+ seqs = new jalview.datamodel.Sequence[iSize];\r
+ String id;\r
+ int j, jSize = jdataset.getHeight();\r
+ for (i = 0; i < iSize; i++)\r
+ {\r
+ seqs[i] = new jalview.datamodel.Sequence(\r
+ alignment.getAlignmentSequence(i).getName(),\r
+ alignment.getAlignmentSequence(i).getSequence(),\r
+ alignment.getAlignmentSequence(i).getStart(),\r
+ alignment.getAlignmentSequence(i).getEnd());\r
+ bindjvvobj(seqs[i], alignment.getAlignmentSequence(i));\r
+ id = ( (Sequence) alignment.getAlignmentSequence(i).getRefid()).getVorbaId().getId();\r
+ \r
+ for(j=0; j<jSize; j++)\r
+ {\r
+ if(jdataset.getSequenceAt(j).getVamsasId().equals(id))\r
+ {\r
+ seqs[i].setDatasetSequence( jdataset.getSequenceAt(j) );\r
+ break;\r
+ }\r
+ }\r
+ }\r
+ jalview.datamodel.Alignment jal = new jalview.datamodel.Alignment(seqs);\r
+ bindjvvobj(jal, alignment);\r
+ jal.setDataset(jdataset);\r
+ /*jal.getDataset().setProvenance(\r
+ getJalviewProvenance(dataset.getProvenance()));\r
+ jal.setProvenance(\r
+ getJalviewProvenance(alignment.getProvenance()));\r
+ */\r
+ //////////////////////////////////////////////\r
+ \r
+ \r
+ ////////////////////////////////////////////\r
+ ////LOAD ANNOTATIONS\r
+ ////////////////////\r
+ if (alignment.getAlignmentAnnotationsCount()>0)\r
+ {\r
+ AlignmentAnnotations[] an = alignment.getAlignmentAnnotations();\r
+ \r
+ for (j = 0; j < an.length; j++)\r
+ {\r
+ boolean topaliBreakpoint = false;\r
+ \r
+ AnnotationElement[] ae = an[j].getAnnotationElement();\r
+ jalview.datamodel.Annotation[] anot = getvObj2jv(ae);\r
+ if (anot!=null) {\r
+ // update or stay the same.\r
+ } else {\r
+ // new one\r
+ anot=new jalview.datamodel.Annotation[jal.\r
+ getWidth()];\r
+ bindjvvobj(anot, ae);\r
+ try{\r
+ for (int aa = 0; aa < ae.length; aa++)\r
+ {\r
+ String dc = ae[aa].getDisplayCharacter()==null ? "dc" : ae[aa].getDisplayCharacter();\r
+ String desc = ae[aa].getDescription()==null ? "desc" : ae[aa].getDescription();\r
+ String ss = ae[aa].getSecondaryStructure()==null ? "ss" : ae[aa].getSecondaryStructure();\r
+ float value = ae[aa].getValue();\r
+ if(an[j].getGraph())\r
+ {\r
+ dc = value+"";\r
+ desc = value + "";\r
+ }\r
+ anot[ae[aa].getPosition()-1] = new jalview.datamodel.\r
+ Annotation(dc,desc,ss.charAt(0),value);\r
+ \r
+ if(desc.equals("TOPALi Partition Breakpoint"))\r
+ topaliBreakpoint = true;\r
+ \r
+ }\r
+ }catch(Exception ex)\r
+ {\r
+ ex.printStackTrace();\r
+ System.out.println("problem parsing annotations\n"+ex);}\r
+ }\r
+ jalview.datamodel.AlignmentAnnotation jaa = null;\r
+ if (an[j].getGraph())\r
+ {\r
+ jaa = new jalview.datamodel.AlignmentAnnotation(an[j].getLabel(),\r
+ an[j].getDescription(), anot, 0, 0, 1);\r
+ }\r
+ else\r
+ {\r
+ String label = an[j].getLabel();\r
+ if(topaliBreakpoint)\r
+ label = "TOPALi Partition Breakpoint";\r
+ jaa = new jalview.datamodel.AlignmentAnnotation(label,\r
+ an[j].getDescription(), anot);\r
+ }\r
+ \r
+ jal.addAnnotation(jaa);\r
+ }\r
+ }\r
+ /////////////////////////////////\r
+ \r
+ AlignFrame alignFrame = new AlignFrame(jal);\r
+ jalview.gui.Desktop.addInternalFrame(alignFrame, "VAMSAS LOAD",\r
+ AlignFrame.NEW_WINDOW_WIDTH,\r
+ AlignFrame.NEW_WINDOW_HEIGHT);\r
+ \r
+ //LOAD TREES\r
+ ///////////////////////////////////////\r
+ if (alignment.getTreeCount() > 0)\r
+ {\r
+ for (int t = 0; t < alignment.getTreeCount(); t++)\r
+ {\r
+ Tree tree = alignment.getTree(t);\r
+ \r
+ alignFrame.ShowNewickTree(\r
+ new jalview.io.NewickFile(tree.getNewick(0).getContent()),\r
+ tree.getNewick(0).getTitle(),\r
+ 600, 500,\r
+ t * 20 + 50, t * 20 + 50);\r
+ }\r
+ }\r
+ \r
+ \r
+ in.close();\r
+ jin.close();\r
+ }\r
+ catch (Exception ex)\r
+ {\r
+ ex.printStackTrace();\r
+ }\r
+ \r
+ \r
+ }\r
+ \r
+ \r
+ \r
+ Provenance getVamsasProvenance(jalview.datamodel.Provenance jprov)\r
+ {\r
+ jalview.datamodel.ProvenanceEntry [] entries = null;\r
+ \r
+ \r
+ Provenance prov = new Provenance();\r
+ org.exolab.castor.types.Date date = new org.exolab.castor.types.Date(\r
+ new java.util.Date());\r
+ Entry provEntry;\r
+ \r
+ if(jprov!=null)\r
+ {\r
+ entries = jprov.getEntries();\r
+ for (int i = 0; i < entries.length; i++)\r
+ {\r
+ provEntry = new Entry();\r
+ try\r
+ {\r
+ date = new org.exolab.castor.types.Date(entries[i].getDate());\r
+ }\r
+ catch (Exception ex)\r
+ {\r
+ ex.printStackTrace();\r
+ \r
+ date = new org.exolab.castor.types.Date(entries[i].getDate());\r
+ }\r
+ provEntry.setDate(date);\r
+ provEntry.setUser(entries[i].getUser());\r
+ provEntry.setAction(entries[i].getAction());\r
+ prov.addEntry(provEntry);\r
+ }\r
+ }\r
+ else\r
+ {\r
+ provEntry = new Entry();\r
+ provEntry.setDate(date);\r
+ provEntry.setUser(System.getProperty("user.name"));\r
+ provEntry.setAction("Jalview");\r
+ prov.addEntry(provEntry);\r
+ }\r
+ \r
+ return prov;\r
+ }\r
+ \r
+ jalview.datamodel.Provenance getJalviewProvenance(Provenance prov)\r
+ {\r
+ \r
+ jalview.datamodel.Provenance jprov = new jalview.datamodel.Provenance();\r
+ for (int i = 0; i < prov.getEntryCount(); i++)\r
+ {\r
+ jprov.addEntry(\r
+ prov.getEntry(i).getUser(),\r
+ prov.getEntry(i).getAction(),\r
+ prov.getEntry(i).getDate().toDate(),\r
+ prov.getEntry(i).getId()\r
+ );\r
+ }\r
+ \r
+ return jprov;\r
+ }\r
+ \r
+ Provenance dummyProvenance()\r
+ {\r
+ Provenance prov = new Provenance();\r
+ Entry entry = new Entry();\r
+ entry.setAction("Jalview");\r
+ entry.setDate(new org.exolab.castor.types.Date(new java.util.Date()));\r
+ entry.setUser(System.getProperty("user.name"));\r
+ prov.addEntry(entry);\r
+ return prov;\r
+ }\r
+ \r
+ }\r