X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2FAlignFile.java;h=0691d82d47e10dd93bb8721fb3866f8ce860a917;hb=fbb18baad3919cbf94fcb5159bbd5269d6af18b4;hp=04ddff3fe9599a277032650e50a69df81312db6c;hpb=588042b69abf8e60bcc950b24c283933c7dd422f;p=jalview.git diff --git a/src/jalview/io/AlignFile.java b/src/jalview/io/AlignFile.java index 04ddff3..0691d82 100755 --- a/src/jalview/io/AlignFile.java +++ b/src/jalview/io/AlignFile.java @@ -1,6 +1,6 @@ /* * Jalview - A Sequence Alignment Editor and Viewer -* Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle +* Copyright (C) 2006 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -25,33 +25,37 @@ import java.io.*; import java.util.*; -public abstract class AlignFile extends FileParse { +/** + * DOCUMENT ME! + * + * @author $author$ + * @version $Revision$ + */ +public abstract class AlignFile extends FileParse +{ int noSeqs = 0; int maxLength = 0; Vector seqs; Vector headers; long start; long end; + boolean jvSuffix = true; - public AlignFile() { + /** + * Creates a new AlignFile object. + */ + public AlignFile() + { } - public AlignFile(String inStr) { - initData(); - System.out.println("is this ever called??"); - - try { - parse(); - } catch (Exception ex) { - } - } /** * Constructor which parses the data from a file of some specified type. * @param inFile Filename to read from. * @param type What type of file to read from (File, URL) */ - public AlignFile(String inFile, String type) throws IOException { + public AlignFile(String inFile, String type) throws IOException + { super(inFile, type); initData(); @@ -62,17 +66,20 @@ public abstract class AlignFile extends FileParse { /** * Return the seqs Vector */ - public Vector getSeqs() { + public Vector getSeqs() + { return seqs; } /** * Return the Sequences in the seqs Vector as an array of Sequences */ - public SequenceI[] getSeqsAsArray() { + public SequenceI[] getSeqsAsArray() + { SequenceI[] s = new SequenceI[seqs.size()]; - for (int i = 0; i < seqs.size(); i++) { + for (int i = 0; i < seqs.size(); i++) + { s[i] = (SequenceI) seqs.elementAt(i); } @@ -82,30 +89,42 @@ public abstract class AlignFile extends FileParse { /** * Initialise objects to store sequence data in. */ - protected void initData() { + protected void initData() + { seqs = new Vector(); headers = new Vector(); } - protected void setSeqs(SequenceI[] s) { + /** + * DOCUMENT ME! + * + * @param s DOCUMENT ME! + */ + protected void setSeqs(SequenceI[] s) + { seqs = new Vector(); - for (int i = 0; i < s.length; i++) { + for (int i = 0; i < s.length; i++) + { seqs.addElement(s[i]); } } // Checks whether sequence is valid aa characters - protected boolean isValidProteinSequence(String sequence) { + protected boolean isValidProteinSequence(String sequence) + { for (int i = 0; i < sequence.length(); i++) - if (!jalview.schemes.ResidueProperties.aaHash.containsKey( - String.valueOf(sequence.charAt(i)))) { + if (jalview.schemes.ResidueProperties.aaIndex[sequence.charAt(i)]==-1) + { + invalidCharacter = sequence.charAt(i); return false; } return true; } + char invalidCharacter; + /** * This method must be implemented to parse the contents of the file. */ @@ -115,4 +134,45 @@ public abstract class AlignFile extends FileParse { * Print out in alignment file format the Sequences in the seqs Vector. */ public abstract String print(); + + public void addJVSuffix(boolean b) + { + jvSuffix = b; + } + + /** + * A general parser for ids. + * + * @String id Id to be parsed + */ + Sequence parseId(String id) + { + Sequence seq = null; + id = id.trim(); + int space = id.indexOf(" "); + if(space>-1) + { + seq = new Sequence(id.substring(0, space),""); + seq.setDescription(id.substring(space+1)); + } + else + { + seq = new Sequence(id, ""); + } + + return seq; + } + + /** + * Creates the output id. + * Adds prefix Uniprot format source|id + * And suffix Jalview /start-end + * + * @String id Id to be parsed + */ + String printId(SequenceI seq) + { + return seq.getDisplayId(jvSuffix); + } + }