1 package jalview.analysis.scoremodels;
3 import jalview.api.analysis.ScoreModelI;
4 import jalview.schemes.ResidueProperties;
7 import java.util.TreeMap;
10 * A class that can register and serve instances of ScoreModelI
12 public class ScoreModels
14 private static ScoreModels instance = new ScoreModels();
16 private Map<String, ScoreModelI> models;
18 public static ScoreModels getInstance()
24 * Private constructor to enforce use of singleton. Registers Jalview's
25 * "built-in" score models:
30 * <li>Sequence Feature Similarity</li>
31 * <li>Percentage Identity</li>
37 * using TreeMap keeps models ordered alphabetically by name
39 models = new TreeMap<String, ScoreModelI>(String.CASE_INSENSITIVE_ORDER);
40 registerScoreModel(new ScoreMatrix("BLOSUM62",
41 ResidueProperties.BLOSUM62, 0));
42 registerScoreModel(new ScoreMatrix("PAM250", ResidueProperties.PAM250,
44 registerScoreModel(new ScoreMatrix("DNA", ResidueProperties.DNA, 1));
45 registerScoreModel(new FeatureScoreModel());
46 registerScoreModel(new PIDScoreModel());
49 public Iterable<String> getModelNames()
51 return models.keySet();
54 public ScoreModelI forName(String s)
59 public void registerScoreModel(ScoreModelI sm)
61 ScoreModelI sm2 = models.get(sm.getName());
64 System.err.println("Warning: replacing score model " + sm2.getName());
66 models.put(sm.getName(), sm);