X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fio%2FTCoffeeScoreFile.java;h=c3ec9514f77a99b68700071947b5d6be16d236ca;hb=46f8b484bb166375423eab4387dca05b48a9a8ff;hp=1455c63cdf13c0716166d81c09811e863255ee05;hpb=59d682209891099d46b960509907c79e3fb276fe;p=jalview.git diff --git a/src/jalview/io/TCoffeeScoreFile.java b/src/jalview/io/TCoffeeScoreFile.java index 1455c63..c3ec951 100644 --- a/src/jalview/io/TCoffeeScoreFile.java +++ b/src/jalview/io/TCoffeeScoreFile.java @@ -1,19 +1,22 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8) - * Copyright (C) 2012 J Procter, AM Waterhouse, LM Lui, J Engelhardt, G Barton, M Clamp, S Searle + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors * * This file is part of Jalview. * * Jalview 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 3 of the License, or (at your option) any later version. + * as published by the Free Software Foundation, either version 3 + * of the License, or (at your option) any later version. * * Jalview 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 Jalview. If not, see . + * You should have received a copy of the GNU General Public License + * along with Jalview. If not, see . + * The Jalview Authors are detailed in the 'AUTHORS' file. */ package jalview.io; @@ -24,17 +27,14 @@ import jalview.datamodel.Annotation; import jalview.datamodel.SequenceI; import java.awt.Color; -import java.io.BufferedReader; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileReader; import java.io.IOException; -import java.io.Reader; import java.util.ArrayList; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; /** * A file parse for T-Coffee score ascii format. This file contains the @@ -91,10 +91,10 @@ import java.util.Map; */ public class TCoffeeScoreFile extends AlignFile { - - public TCoffeeScoreFile(String inFile, String type) throws IOException + public TCoffeeScoreFile(String inFile, DataSourceType fileSourceType) + throws IOException { - super(inFile, type); + super(inFile, fileSourceType); } @@ -143,7 +143,7 @@ public class TCoffeeScoreFile extends AlignFile /** * @return The 'width' of the score matrix i.e. the number of columns. Since - * teh score value are supposd to be calculated for an 'aligned' MSA, + * the score value are supposed to be calculated for an 'aligned' MSA, * all the entries have to have the same width. */ public int getWidth() @@ -214,6 +214,7 @@ public class TCoffeeScoreFile extends AlignFile return result; } + @Override public void parse() throws IOException { /* @@ -398,6 +399,9 @@ public class TCoffeeScoreFile extends AlignFile } } + static Pattern SCORES_WITH_RESIDUE_NUMS = Pattern + .compile("^\\d+\\s([^\\s]+)\\s+\\d+$"); + /** * Read a scores block ihe provided stream. * @@ -457,6 +461,12 @@ public class TCoffeeScoreFile extends AlignFile String id = line.substring(0, p).trim(); String val = line.substring(p + 1).trim(); + Matcher m = SCORES_WITH_RESIDUE_NUMS.matcher(val); + if (m.matches()) + { + val = m.group(1); + } + result.items.put(id, val); } while ((line = reader.nextLine()) != null); @@ -517,8 +527,7 @@ public class TCoffeeScoreFile extends AlignFile /** * TCOFFEE score colourscheme */ - static final Color[] colors = - { new Color(102, 102, 255), // #6666FF + static final Color[] colors = { new Color(102, 102, 255), // #6666FF new Color(0, 255, 0), // #00FF00 new Color(102, 255, 0), // #66FF00 new Color(204, 255, 0), // #CCFF00 @@ -545,7 +554,11 @@ public class TCoffeeScoreFile extends AlignFile { if (al.getHeight() != getHeight() || al.getWidth() != getWidth()) { - warningMessage = "Alignment shape does not match T-Coffee score file shape."; + String info = String.format( + "align w: %s, h: %s; score: w: %s; h: %s ", al.getWidth(), + al.getHeight(), getWidth(), getHeight()); + warningMessage = "Alignment shape does not match T-Coffee score file shape -- " + + info; return false; } boolean added = false; @@ -632,7 +645,7 @@ public class TCoffeeScoreFile extends AlignFile } @Override - public String print() + public String print(SequenceI[] sqs, boolean jvsuffix) { // TODO Auto-generated method stub return "Not valid.";