X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2FJPredFile.java;h=7daee5518c9c3a956f7322496d7516fc53335105;hb=49685e6426d5ac136dce4907196751680c667670;hp=dabd47aa83ea04bb904a2f4299850331c03c0c44;hpb=712d1fca4bfa7e91d667e9931fb67fbc99a5f369;p=jalview.git diff --git a/src/jalview/io/JPredFile.java b/src/jalview/io/JPredFile.java index dabd47a..7daee55 100755 --- a/src/jalview/io/JPredFile.java +++ b/src/jalview/io/JPredFile.java @@ -1,22 +1,21 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer - * Copyright (C) 2007 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle - * + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4) + * Copyright (C) 2008 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 * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. - * + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ - /** * PredFile.java * JalviewX / Vamsas Project @@ -30,9 +29,15 @@ import java.util.*; import jalview.datamodel.*; /** - * DOCUMENT ME! - * - * @author $author$ + * Parser for the JPred/JNet concise format. This is a series of CSV lines, + * each line is either a sequence (QUERY), a sequence profile (align;), or + * jnet prediction annotation (anything else). + * Automagic translation happens for annotation called 'JNETPRED' (translated to Secondary Structure Prediction), or 'JNETCONF' (translates to 'Prediction Confidence'). + * Numeric scores are differentiated from symbolic by being parseable into a float vector. They are put in Scores. + * Symscores gets the others. + * JNetAnnotationMaker translates the data parsed by this object into annotation on an alignment. It is automatically called + * but can be used to transfer the annotation onto a sequence in another alignment (and insert gaps where necessary) + * @author jprocter * @version $Revision$ */ public class JPredFile @@ -57,7 +62,10 @@ public class JPredFile { super(inFile, type); } - + public JPredFile(FileParse source) throws IOException + { + super(source); + } /** * DOCUMENT ME! * @@ -287,6 +295,25 @@ public class JPredFile seqs.addElement(newSeq); } + if (seqs.size()>0) + { + // try to make annotation for a prediction only input (default if no alignment is given) + Alignment tal = new Alignment(this.getSeqsAsArray()); + try { + JnetAnnotationMaker.add_annotation(this, tal, QuerySeqPosition, true); + } catch (Exception e) + { + tal = null; + IOException ex = new IOException("Couldn't parse concise annotation for prediction profile.\n"+e); + throw ex; + } + this.annotations = new Vector(); + AlignmentAnnotation[] aan = tal.getAlignmentAnnotation(); + for (int aai = 0; aan!=null && aai