X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fanalysis%2FParseProperties.java;h=4b68d93a666340d0fd6539fc3f1f2f0bcae26464;hb=d465aa924dae06b94ecaa229c74dc7ee6404df45;hp=211f4e294285d4377aa1b7a95a9c7c418b5ed6b8;hpb=506d60f0e188723ddc91c26824b41ac7034df3fe;p=jalview.git diff --git a/src/jalview/analysis/ParseProperties.java b/src/jalview/analysis/ParseProperties.java index 211f4e2..4b68d93 100644 --- a/src/jalview/analysis/ParseProperties.java +++ b/src/jalview/analysis/ParseProperties.java @@ -1,26 +1,30 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4) - * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors * - * 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 file is part of Jalview. * - * 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. + * 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 this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + * along with Jalview. If not, see . + * The Jalview Authors are detailed in the 'AUTHORS' file. */ package jalview.analysis; -import com.stevesoft.pat.Regex; +import jalview.datamodel.AlignmentAnnotation; +import jalview.datamodel.AlignmentI; +import jalview.datamodel.SequenceI; -import jalview.datamodel.*; +import com.stevesoft.pat.Regex; public class ParseProperties { @@ -53,9 +57,9 @@ public class ParseProperties public int getScoresFromDescription(String ScoreName, String ScoreDescriptions, String regex, boolean repeat) { - return getScoresFromDescription(new String[] - { ScoreName }, new String[] - { ScoreDescriptions }, regex, repeat); + return getScoresFromDescription(new String[] { ScoreName }, + new String[] + { ScoreDescriptions }, regex, repeat); } public int getScoresFromDescription(String[] ScoreNames, @@ -69,22 +73,21 @@ public class ParseProperties * Extract scores for sequences by applying regex to description string. * * @param seqs - * seuqences to extract annotation from. + * seuqences to extract annotation from. * @param ScoreNames - * labels for each numeric field in regex match + * labels for each numeric field in regex match * @param ScoreDescriptions - * description for each numeric field in regex match + * description for each numeric field in regex match * @param regex - * Regular Expression string for passing to - * new com.stevesoft.patt.Regex(regex) + * Regular Expression string for passing to + * new com.stevesoft.patt.Regex(regex) * @param repeat - * true means the regex will be applied multiple times along - * the description string of each sequence + * true means the regex will be applied multiple times along the + * description string of each sequence * @return total number of sequences that matched the regex */ - public int getScoresFromDescription(SequenceI[] seqs, - String[] ScoreNames, String[] ScoreDescriptions, String regex, - boolean repeat) + public int getScoresFromDescription(SequenceI[] seqs, String[] ScoreNames, + String[] ScoreDescriptions, String regex, boolean repeat) { int count = 0; Regex pattern = new Regex(regex); @@ -99,7 +102,9 @@ public class ParseProperties ScoreNames = tnames; String descrbase = ScoreDescriptions[onamelen - 1]; if (descrbase == null) + { descrbase = "Score parsed from (" + regex + ")"; + } tnames = new String[pattern.numSubs() + 1]; System.arraycopy(ScoreDescriptions, 0, tnames, 0, ScoreDescriptions.length); @@ -114,7 +119,9 @@ public class ParseProperties { String descr = seqs[i].getDescription(); if (descr == null) + { continue; + } int pos = 0; boolean added = false; int reps = 0; @@ -127,18 +134,19 @@ public class ParseProperties double score = Double.NaN; try { - score = new Double(sstring).doubleValue(); + score = Double.valueOf(sstring).doubleValue(); } catch (Exception e) { // don't try very hard to parse if regex was wrong. continue; } // add score to sequence annotation. - AlignmentAnnotation an = new AlignmentAnnotation(ScoreNames[cols] - + ((reps > 0) ? "_" + reps : ""), + AlignmentAnnotation an = new AlignmentAnnotation( + ScoreNames[cols] + ((reps > 0) ? "_" + reps : ""), ScoreDescriptions[cols], null); an.setScore(score); - System.out.println("Score: " + ScoreNames[cols] + "=" + score); // DEBUG + System.out.println(seqs[i].getName() + " score: '" + + ScoreNames[cols] + "' = " + score); // DEBUG an.setSequenceRef(seqs[i]); seqs[i].addAlignmentAnnotation(an); al.addAnnotation(an); @@ -153,29 +161,4 @@ public class ParseProperties } return count; } - - public static void main(String argv[]) - { - SequenceI[] seqs = new SequenceI[] - { new Sequence("sq1", "THISISAPLACEHOLDER"), - new Sequence("sq2", "THISISAPLACEHOLDER"), - new Sequence("sq3", "THISISAPLACEHOLDER"), - new Sequence("sq4", "THISISAPLACEHOLDER") }; - seqs[0].setDescription("1 mydescription1"); - seqs[1].setDescription("mydescription2"); - seqs[2].setDescription("2. 0.1 mydescription3"); - seqs[3].setDescription("3 0.01 mydescription4"); - // seqs[4].setDescription("5 mydescription5"); - Alignment al = new Alignment(seqs); - ParseProperties pp = new ParseProperties(al); - String regex = ".*([-0-9.+]+)"; - System.out.println("Matched " - + pp.getScoresFromDescription("my Score", - "my Score Description", regex, true) + " for " + regex); - regex = ".*([-0-9.+]+).+([-0-9.+]+).*"; - System.out.println("Matched " - + pp.getScoresFromDescription("my Score", - "my Score Description", regex, true) + " for " + regex); - System.out.println("Finished."); - } }