X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2FTCoffeeScoreFile.java;h=c020d990d3ed0de148623cda879bbed1b6312438;hb=ac1d5169b86af13d4f06152a09cb125309ddf76f;hp=ac5f8d6096a6f1a59ebf42b98da468ab657d9ea9;hpb=b57a02c25e335d033c97f8a6bacd6b54f62bd2b6;p=jalview.git diff --git a/src/jalview/io/TCoffeeScoreFile.java b/src/jalview/io/TCoffeeScoreFile.java index ac5f8d6..c020d99 100644 --- a/src/jalview/io/TCoffeeScoreFile.java +++ b/src/jalview/io/TCoffeeScoreFile.java @@ -1,3 +1,20 @@ +/* + * 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 + * + * 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. + * + * 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 . + */ package jalview.io; import jalview.analysis.SequenceIdMatcher; @@ -7,17 +24,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 @@ -72,9 +86,7 @@ import java.util.Map; * @author Paolo Di Tommaso * */ -public class TCoffeeScoreFile extends AlignFile -{ - +public class TCoffeeScoreFile extends AlignFile { public TCoffeeScoreFile(String inFile, String type) throws IOException { super(inFile, type); @@ -126,7 +138,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() @@ -381,6 +393,8 @@ 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. * @@ -440,6 +454,11 @@ 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); @@ -528,7 +547,8 @@ 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;