X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=examples%2Fgroovy%2FcolourSchemes.groovy;fp=examples%2Fgroovy%2FcolourSchemes.groovy;h=0000000000000000000000000000000000000000;hb=4f77328104498504339216829abf5ea87e2791ec;hp=eb40cc627dd9cb8b29277127b3ef47382a38dcee;hpb=2b8c0785318a3528e1876e8e2dd48b7d831eae69;p=jalview.git diff --git a/examples/groovy/colourSchemes.groovy b/examples/groovy/colourSchemes.groovy deleted file mode 100644 index eb40cc6..0000000 --- a/examples/groovy/colourSchemes.groovy +++ /dev/null @@ -1,156 +0,0 @@ -import java.awt.Color; -import jalview.schemes.ColourSchemeI; -import jalview.schemes.ColourSchemes; -import jalview.datamodel.AnnotatedCollectionI; -import jalview.datamodel.SequenceI; -import jalview.datamodel.SequenceCollectionI; -import jalview.api.AlignViewportI - -/* - * Example script that registers two new alignment colour schemes - */ - -/* - * Closure that defines a colour scheme where consensus residues are pink, - * other residues are red in odd columns and blue in even columns, and - * gaps are yellow - */ -def candy -candy = { -> - [ - /* - * name shown in the colour menu - */ - getSchemeName: { -> 'candy' }, - - /* - * to make a new instance for each alignment view - */ - getInstance: { view, coll -> candy() }, - - /* - * method only needed if colour scheme has to recalculate - * values when an alignment is modified - */ - alignmentChanged: { AnnotatedCollectionI coll, Map map -> }, - - /* - * determine colour for a residue at an aligned position of a - * sequence, given consensus residue(s) for the column and the - * consensus percentage identity score for the column - */ - findColour: { char res, int col, SequenceI seq, String consensus, float pid -> - if (res == ' ' || res == '-' || res == '.') - { - Color.yellow - } else if (consensus.contains(String.valueOf(res))) - { - Color.pink - } else if (col % 2 == 0) - { - Color.blue - } else - { - Color.red - } - }, - - /* - * true means applicable to nucleotide or peptide data - */ - isApplicableTo: {AnnotatedCollectionI coll -> true}, - - /* - * simple colour schemes are those that depend on the residue - * only (these are also available to colour structure viewers) - */ - isSimple: { false } - ] as ColourSchemeI -} - -/* - * A closure that defines a colour scheme graduated - * (approximately) by amino acid weight - * here from lightest (G) Blue, to heaviest (W) Red - */ -def makeColour = { weight -> - minWeight = 75 // Glycine - maxWeight = 204 // Tryptophan - int i = 255 * (weight - minWeight) / (maxWeight - minWeight); - new Color(i, 0, 255-i); -} -def byWeight -byWeight = { -> - [ - getSchemeName: { 'By Weight' }, - // this colour scheme is peptide-specific: - isApplicableTo: { coll -> !coll.isNucleotide() }, - alignmentChanged: { coll, map -> }, - getInstance: { view, coll -> byWeight() }, - isSimple: { true }, - findColour: {res, col, seq, consensus, pid -> - switch (res) { - case ' ': - case '-': - case '.': - Color.white - break - case 'A': - makeColour(89) - break - case 'R': - makeColour(174) - break - case 'N': - case 'D': - case 'B': - case 'I': - case 'L': - makeColour(132) - break - case 'C': - makeColour(121) - break - case 'Q': - case 'E': - case 'Z': - case 'K': - case 'M': - makeColour(146) - break - case 'G': - makeColour(75) - break - case 'H': - makeColour(155) - break - case 'F': - makeColour(165) - break - case 'P': - makeColour(115) - break - case 'S': - makeColour(105) - break - case 'T': - makeColour(119) - break - case 'W': - makeColour(204) - break - case 'Y': - makeColour(181) - break - case 'V': - makeColour(117) - break - default: - makeColour(150) - } - } - ] as ColourSchemeI -} - -ColourSchemes.instance.registerColourScheme(candy()) -ColourSchemes.instance.registerColourScheme(byWeight())