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.api.AlignViewportI
28 import jalview.util.Comparison
31 * Closure that defines a colour scheme where non-consensus residues are pink,
32 * other residues (and gaps) are white
38 * name shown in the colour menu
40 getSchemeName: { -> 'Unconserved' },
43 * to make a new instance for each alignment view
45 getInstance: { view, coll -> unconserved() },
48 * method only needed if colour scheme has to recalculate
49 * values when an alignment is modified
51 alignmentChanged: { AnnotatedCollectionI coll, Map<SequenceI, SequenceCollectionI> map -> },
54 * determine colour for a residue at an aligned position of a
55 * sequence, given consensus residue(s) for the column and the
56 * consensus percentage identity score for the column
58 findColour: { char res, int col, SequenceI seq, String consensus, float pid ->
59 if ('a' <= res && res <= 'z')
63 if (Comparison.isGap(res) || consensus.contains(String.valueOf(res)))
73 * true means applicable to nucleotide or peptide data
75 isApplicableTo: {AnnotatedCollectionI coll -> true},
78 * simple colour schemes are those that depend on the residue
79 * only (these are also available to colour structure viewers)
85 ColourSchemes.instance.registerColourScheme(unconserved())