X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fio%2FAnnotationReader.java;fp=src%2Fjalview%2Fio%2FAnnotationReader.java;h=0000000000000000000000000000000000000000;hb=e894eb87d40be6e8452d19032ddffe80dad5f804;hp=4325dae83149061842fcd5996ad870dfaa386c4b;hpb=0f71bfca98457c30f1051f142c31b6aaa3e23ead;p=jalview.git diff --git a/src/jalview/io/AnnotationReader.java b/src/jalview/io/AnnotationReader.java deleted file mode 100755 index 4325dae..0000000 --- a/src/jalview/io/AnnotationReader.java +++ /dev/null @@ -1,275 +0,0 @@ -package jalview.io; - -import java.io.*; -import jalview.datamodel.*; -import java.util.StringTokenizer; -import jalview.schemes.UserColourScheme; -import java.net.URL; - -public class AnnotationReader -{ - public boolean readAnnotationFile(AlignmentI al, String file) - { - - try - { - BufferedReader in = null; - java.io.InputStream is = getClass().getResourceAsStream("/" + file); - if (is != null) - { - in = new BufferedReader(new java.io.InputStreamReader(is)); - } - else - { - try - { - URL url = new URL(file); - in = new BufferedReader(new InputStreamReader(url.openStream())); - } - catch (java.net.MalformedURLException ex) - { - in = new BufferedReader(new FileReader(file)); - } - } - - String line, label, description, token; - int graphStyle, index; - SequenceI refSeq = null; - int refSeqIndex = 0; - int existingAnnotations = 0; - if(al.getAlignmentAnnotation()!=null) - existingAnnotations = al.getAlignmentAnnotation().length; - - StringTokenizer st; - Annotation[] annotations; - AlignmentAnnotation annotation = null; - - // First confirm this is an Annotation file - boolean jvAnnotationFile = false; - while ( (line = in.readLine()) != null) - { - if (line.indexOf("#") == 0 ) - continue; - - if (line.indexOf("JALVIEW_ANNOTATION") > -1) - { - jvAnnotationFile = true; - break; - } - } - - if(!jvAnnotationFile) - { - in.close(); - return false; - } - - while ( (line = in.readLine()) != null) - { - if(line.indexOf("#")==0 - || line.indexOf("JALVIEW_ANNOTATION")>-1 - || line.length()==0) - continue; - - st = new StringTokenizer(line, "\t"); - token = st.nextToken(); - if(token.equalsIgnoreCase("COLOUR")) - { - colourAnnotations(al, st.nextToken(), st.nextToken()); - continue; - } - - if(token.equalsIgnoreCase("COMBINE") ) - { - combineAnnotations(al, st); - continue; - } - - if (token.equalsIgnoreCase("GRAPHLINE")) - { - addLine(al, st); - continue; - } - - - if(token.equalsIgnoreCase("SEQUENCE_REF") ) - { - refSeq = al.findName(st.nextToken()); - try{ - refSeqIndex = Integer.parseInt(st.nextToken()); - } - catch(Exception ex) - { - refSeqIndex = 0; - } - - continue; - } - - graphStyle = AlignmentAnnotation.getGraphValueFromString(token); - label = description = st.nextToken(); - - line = st.nextToken(); - st = new StringTokenizer(line, "|", true); - annotations = new Annotation[st.countTokens()+refSeqIndex]; - index = refSeqIndex; - boolean emptyColumn = true; - while (st.hasMoreElements()) - { - token = st.nextToken().trim(); - - if(token.equals("|")) - { - if(emptyColumn) - annotations[index++] = parseAnnotation(""); - - emptyColumn = true; - } - else - { - annotations[index++] = parseAnnotation(token); - emptyColumn = false; - } - } - - annotation = new AlignmentAnnotation(label, - description, - annotations, - 0, - 0, - graphStyle); - - annotation = al.addAnnotation(annotation, refSeq); - al.setAnnotationIndex(annotation, al.getAlignmentAnnotation().length - existingAnnotations-1); - } - - al.adjustSequenceAnnotations(); - - - }catch(Exception ex) - { - ex.printStackTrace(); - System.out.println("Problem reading annotation file: "+ex); - return false; - } - return true; - } - - Annotation parseAnnotation(String string) - { - String desc = "", displayChar=""; - char ss = ' '; // secondaryStructure - float value = 0; - StringTokenizer st = new StringTokenizer(string, ","); - String token; - while(st.hasMoreTokens()) - { - token = st.nextToken().trim(); - if(token.length()==0) - continue; - - if(value==0) - { try{ - value = new Float(token).floatValue(); - }catch(NumberFormatException ex){} - } - - if(token.length()==1) - { - // Either this character represents a helix or sheet - // or an integer which can be displayed - if(token.equals("H") || token.equals("E")) - { - ss = token.charAt(0); - } - else //if(value!=0) - { - displayChar = token; - } - } - else if(desc.length()<1) - desc = token; - else - displayChar = token; - } - - return new Annotation(displayChar, desc, ss, value); - } - - void colourAnnotations(AlignmentI al, String label, String colour) - { - UserColourScheme ucs = new UserColourScheme(colour); - Annotation[] annotations; - for(int i=0; i