2 * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
3 * Copyright (C) $$Year-Rel$$ The Jalview Authors
5 * This file is part of Jalview.
7 * Jalview is free software: you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation, either version 3
10 * of the License, or (at your option) any later version.
12 * Jalview is distributed in the hope that it will be useful, but
13 * WITHOUT ANY WARRANTY; without even the implied warranty
14 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15 * PURPOSE. See the GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
19 * The Jalview Authors are detailed in the 'AUTHORS' file.
22 import jalview.schemes.ColourSchemeI
23 import jalview.schemes.ColourSchemes
24 import jalview.datamodel.AnnotatedCollectionI
25 import jalview.datamodel.SequenceI
26 import jalview.datamodel.SequenceCollectionI
27 import jalview.util.Comparison
30 * Closure that defines a colour scheme where non-consensus residues are pink,
31 * other residues (and gaps) are white
37 * name shown in the colour menu
39 getSchemeName: { -> 'Unconserved' },
42 * to make a new instance for each alignment view
44 getInstance: { AnnotatedCollectionI coll, Map<SequenceI, SequenceCollectionI> map -> unconserved() },
47 * method only needed if colour scheme has to recalculate
48 * values when an alignment is modified
50 alignmentChanged: { AnnotatedCollectionI coll, Map<SequenceI, SequenceCollectionI> map -> },
53 * determine colour for a residue at an aligned position of a
54 * sequence, given consensus residue(s) for the column and the
55 * consensus percentage identity score for the column
57 findColour: { char res, int col, SequenceI seq, String consensus, float pid ->
58 if ('a' <= res && res <= 'z')
62 if (Comparison.isGap(res) || consensus.contains(String.valueOf(res)))
72 * true means applicable to nucleotide or peptide data
74 isApplicableTo: {AnnotatedCollectionI coll -> true},
77 * simple colour schemes are those that depend on the residue
78 * only (these are also available to colour structure viewers)
84 ColourSchemes.instance.registerColourScheme(unconserved())