X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2FTCoffeeScoreFile.java;h=fc0c9131294edcd2bc5d93492724b05984cb3d55;hb=3d0101179759ef157b088ea135423cd909512d9f;hp=d500b8046210b4fca627e163dc83668533241077;hpb=a8f483d04205bb8273ee311c12968b7e86d205fa;p=jalview.git diff --git a/src/jalview/io/TCoffeeScoreFile.java b/src/jalview/io/TCoffeeScoreFile.java index d500b80..fc0c913 100644 --- a/src/jalview/io/TCoffeeScoreFile.java +++ b/src/jalview/io/TCoffeeScoreFile.java @@ -1,19 +1,21 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2) - * Copyright (C) 2014 The Jalview Authors + * 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; @@ -35,10 +37,10 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; /** - * A file parse for T-Coffee score ascii format. This file contains the - * alignment consensus for each resude in any sequence. + * A file parser for T-Coffee score ascii format. This file contains the + * alignment consensus for each residue in any sequence. *

- * This file is procuded by t_coffee providing the option + * This file is produced by t_coffee providing the option * -output=score_ascii to the program command line * * An example file is the following @@ -87,17 +89,28 @@ import java.util.regex.Pattern; * @author Paolo Di Tommaso * */ -public class TCoffeeScoreFile extends AlignFile { - public TCoffeeScoreFile(String inFile, String type) throws IOException - { - super(inFile, type); +public class TCoffeeScoreFile extends AlignFile +{ - } + /** + * TCOFFEE score colourscheme + */ + static final Color[] colors = { new Color(102, 102, 255), // 0: lilac #6666FF + new Color(0, 255, 0), // 1: green #00FF00 + new Color(102, 255, 0), // 2: lime green #66FF00 + new Color(204, 255, 0), // 3: greeny yellow #CCFF00 + new Color(255, 255, 0), // 4: yellow #FFFF00 + new Color(255, 204, 0), // 5: orange #FFCC00 + new Color(255, 153, 0), // 6: deep orange #FF9900 + new Color(255, 102, 0), // 7: ochre #FF6600 + new Color(255, 51, 0), // 8: red #FF3300 + new Color(255, 34, 0) // 9: redder #FF2000 + }; - public TCoffeeScoreFile(FileParse source) throws IOException - { - super(source); - } + public final static String TCOFFEE_SCORE = "TCoffeeScore"; + + static Pattern SCORES_WITH_RESIDUE_NUMS = Pattern + .compile("^\\d+\\s([^\\s]+)\\s+\\d+$"); /** The {@link Header} structure holder */ Header header; @@ -110,6 +123,18 @@ public class TCoffeeScoreFile extends AlignFile { Integer fWidth; + public TCoffeeScoreFile(String inFile, DataSourceType fileSourceType) + throws IOException + { + super(inFile, fileSourceType); + + } + + public TCoffeeScoreFile(FileParse source) throws IOException + { + super(source); + } + /** * Parse the provided reader for the T-Coffee scores file format * @@ -157,8 +182,9 @@ public class TCoffeeScoreFile extends AlignFile { */ public String getScoresFor(String id) { - return scores != null && scores.containsKey(id) ? scores.get(id) - .toString() : ""; + return scores != null && scores.containsKey(id) + ? scores.get(id).toString() + : ""; } /** @@ -210,6 +236,7 @@ public class TCoffeeScoreFile extends AlignFile { return result; } + @Override public void parse() throws IOException { /* @@ -248,9 +275,9 @@ public class TCoffeeScoreFile extends AlignFile { if (scoreStringBuilder == null) { error = true; - errormessage = String - .format("Invalid T-Coffee score file: Sequence ID '%s' is not declared in header section", - entry.getKey()); + errormessage = String.format( + "Invalid T-Coffee score file: Sequence ID '%s' is not declared in header section", + entry.getKey()); return; } @@ -394,8 +421,6 @@ 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. * @@ -456,10 +481,11 @@ public class TCoffeeScoreFile extends AlignFile { String val = line.substring(p + 1).trim(); Matcher m = SCORES_WITH_RESIDUE_NUMS.matcher(val); - if( m.matches() ) { - val = m.group(1); + if (m.matches()) + { + val = m.group(1); } - + result.items.put(id, val); } while ((line = reader.nextLine()) != null); @@ -518,24 +544,6 @@ public class TCoffeeScoreFile extends AlignFile { } /** - * TCOFFEE score colourscheme - */ - 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 - new Color(255, 255, 0), // #FFFF00 - new Color(255, 204, 0), // #FFCC00 - new Color(255, 153, 0), // #FF9900 - new Color(255, 102, 0), // #FF6600 - new Color(255, 51, 0), // #FF3300 - new Color(255, 34, 0) // #FF2000 - }; - - public final static String TCOFFEE_SCORE = "TCoffeeScore"; - - /** * generate annotation for this TCoffee score set on the given alignment * * @param al @@ -548,8 +556,11 @@ public class TCoffeeScoreFile extends AlignFile { { if (al.getHeight() != getHeight() || al.getWidth() != getWidth()) { - 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; + 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; @@ -574,9 +585,9 @@ public class TCoffeeScoreFile extends AlignFile { i++; if (s == null && i != scores.size() && !id.getKey().equals("cons")) { - System.err.println("No " - + (matchids ? "match " : " sequences left ") - + " for TCoffee score set : " + id.getKey()); + System.err + .println("No " + (matchids ? "match " : " sequences left ") + + " for TCoffee score set : " + id.getKey()); continue; } int jSize = al.getWidth() < srow.length ? al.getWidth() : srow.length; @@ -589,16 +600,16 @@ public class TCoffeeScoreFile extends AlignFile { annotations[j] = null; if (val > 0) { - System.err - .println("Warning: non-zero value for positional T-COFFEE score for gap at " + System.err.println( + "Warning: non-zero value for positional T-COFFEE score for gap at " + j + " in sequence " + s.getName()); } } else { annotations[j] = new Annotation(s == null ? "" + val : null, - s == null ? "" + val : null, '\0', val * 1f, val >= 0 - && val < colors.length ? colors[val] + s == null ? "" + val : null, '\0', val * 1f, + val >= 0 && val < colors.length ? colors[val] : Color.white); } } @@ -636,7 +647,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.";