Vector headers;\r
long start;\r
long end;\r
+ boolean dbPrefix = false;\r
+ boolean jvSuffix = true;\r
\r
/**\r
* Creates a new AlignFile object.\r
* Print out in alignment file format the Sequences in the seqs Vector.\r
*/\r
public abstract String print();\r
+\r
+ public void addDBPrefix(boolean b)\r
+ {\r
+ dbPrefix = b;\r
+ }\r
+\r
+ public void addJVSuffix(boolean b)\r
+ {\r
+ jvSuffix = b;\r
+ }\r
+\r
+ /**\r
+ * A general parser for ids. Will look for dbrefs in\r
+ * Uniprot format source|id\r
+ * And also Jalview /start-end\r
+ *\r
+ * @String id Id to be parsed\r
+ */\r
+ Sequence parseId(String id)\r
+ {\r
+ Sequence seq = new Sequence("","");\r
+ int space = id.indexOf(" ");\r
+ if(space>-1)\r
+ {\r
+ seq.setDescription(id.substring(space+1));\r
+ id = id.substring(0, space);\r
+ }\r
+\r
+ // Read in any DB refs first\r
+ StringTokenizer st;\r
+ st = new StringTokenizer(id, "|");\r
+\r
+ while (st.countTokens()>2)\r
+ {\r
+ seq.addDBRef( new DBRefEntry( st.nextToken(), "0", st.nextToken()));\r
+ }\r
+\r
+ if(st.hasMoreTokens())\r
+ id = st.nextToken();\r
+\r
+\r
+ // Remove /start-end from sequence\r
+ if (id.indexOf("/") > 0)\r
+ {\r
+ st = new StringTokenizer(id, "/");\r
+\r
+ if (st.countTokens() == 2)\r
+ {\r
+ id = st.nextToken();\r
+\r
+ String tmp = st.nextToken();\r
+\r
+ st = new StringTokenizer(tmp, "-");\r
+\r
+ if (st.countTokens() == 2)\r
+ {\r
+ seq.setStart( Integer.valueOf(st.nextToken()).intValue() );\r
+ seq.setEnd( Integer.valueOf(st.nextToken()).intValue() );\r
+ }\r
+ }\r
+ }\r
+ seq.setName(id);\r
+ return seq;\r
+ }\r
+\r
+ /**\r
+ * Creates the output id.\r
+ * Adds prefix Uniprot format source|id\r
+ * And suffix Jalview /start-end\r
+ *\r
+ * @String id Id to be parsed\r
+ */\r
+ String printId(SequenceI seq)\r
+ {\r
+ StringBuffer result = new StringBuffer();\r
+ if(dbPrefix && seq.getDBRef()!=null)\r
+ {\r
+ Vector dbrefs = seq.getDBRef();\r
+ for(int i=0; i<dbrefs.size(); i++)\r
+ {\r
+ DBRefEntry entry = (DBRefEntry)dbrefs.elementAt(i);\r
+ result.append(entry.getSource()+"|"+entry.getAccessionId()+"|");\r
+ }\r
+ }\r
+\r
+ result.append(seq.getName());\r
+\r
+ if(jvSuffix)\r
+ {\r
+ result.append("/"+seq.getStart()+"-"+seq.getEnd());\r
+ }\r
+\r
+ return result.toString();\r
+ }\r
+\r
}\r