Response to bug mantis?id=8187 - some quick hacks to read and write david's MSF file...
[jalview.git] / src / jalview / io / IdentifyFile.java
1 /********************\r
2  * 2004 Jalview Reengineered\r
3  * Barton Group\r
4  * Dundee University\r
5  *\r
6  * AM Waterhouse\r
7  *******************/\r
8 \r
9 package jalview.io;\r
10 \r
11 import java.io.*;\r
12 import java.net.*;\r
13 \r
14 public class IdentifyFile\r
15 {\r
16   public static String Identify(String file, String protocol)\r
17   {\r
18     String reply = "PFAM";\r
19     try{\r
20 \r
21       BufferedReader reader = null;\r
22 \r
23       if(protocol.equals("File"))\r
24         reader = new BufferedReader(new FileReader(file));\r
25 \r
26       else if (protocol.equals("URL"))\r
27       {\r
28         reply = "URL NOT FOUND";\r
29         URL url = new URL(file);\r
30         reader = new BufferedReader(new InputStreamReader( url.openStream() ) );\r
31         reply = "error";\r
32       }\r
33       else if( protocol.equals("Paste"))\r
34         reader = new BufferedReader( new StringReader(file) );\r
35 \r
36 \r
37       String data;\r
38       while( (data=reader.readLine())!=null)\r
39       {\r
40         data = data.toUpperCase();\r
41         if(data.indexOf("#")==0 || data.length()<1)\r
42           continue;\r
43 \r
44         if(data.indexOf("PILEUP")>-1)\r
45         {\r
46           reply = "PileUp";\r
47           break;\r
48         }\r
49         if((data.indexOf("!!")>-1)\r
50            && (data.indexOf("!!")<data.indexOf("_MULTIPLE_ALIGNMENT ")))\r
51         {\r
52           reply = "MSF";\r
53           break;\r
54         }\r
55         else if(data.indexOf("CLUSTAL")>-1)\r
56         {\r
57           reply = "CLUSTAL";\r
58           break;\r
59         }\r
60         else if(data.indexOf(">P1;")>-1 || data.indexOf(">DL;")>-1)\r
61         {\r
62           reply = "PIR";\r
63           break;\r
64         }\r
65         else if(data.indexOf(">")>-1)\r
66         {\r
67           // could be BLC file, read next line to confirm\r
68           data = reader.readLine();\r
69           if(data.indexOf(">")>-1)\r
70             reply = "BLC";\r
71           else\r
72             reply = "FASTA";\r
73 \r
74             break;\r
75         }\r
76       }\r
77       reader.close();\r
78     }\r
79     catch(Exception ex){\r
80       System.err.println("File Identification failed!"); ex.printStackTrace();}\r
81 \r
82     return reply;\r
83   }\r
84 \r
85 \r
86 }\r