Skip to content

Commit 1cf5fec

Browse files
committed
Color MSA sequence like 3D
1 parent 59b5a7c commit 1cf5fec

File tree

1 file changed

+18
-5
lines changed

1 file changed

+18
-5
lines changed

src/main/resources/templates/cesymm_multi.html.hbs

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -74,22 +74,35 @@ document.addEventListener( "DOMContentLoaded", function() {
7474
<p><a href="/cesymm/{{structureId}}">CE-Symm Alignment</a></p>
7575

7676
<script src="https://s3.eu-central-1.amazonaws.com/cdn.bio.sh/msa/latest/msa.min.gz.js"></script>
77-
<div id="msa">press "Run with JS"</div>
77+
<div id="msa">Loading Multiple Alignment...</div>
7878

7979
<script>
8080
var opts = {
8181
el: document.getElementById("msa"),
8282
vis: {
8383
conserv: false,
8484
overviewbox: false
85-
},
86-
// smaller menu for JSBin
87-
menu: "small",
88-
bootstrapMenu: true
85+
}
8986
};
9087
9188
var m = new msa.msa(opts);
9289
m.u.file.importURL("/cesymm/{{structureId}}/fasta", function(){
90+
/* Returns a dynamic color scheme function that colors letters by their row
91+
*/
92+
function repeatScheme(numrows){
93+
var colors = palette('cb-Dark2', numrows);
94+
return function(letter,opts) {
95+
if(/[A-Z]/.exec(letter) && /[^a-z]/.exec(m.g.seqs.models[opts.y].attributes.seq[opts.pos]) ){
96+
return "#"+colors[opts.y];
97+
//return "#0f0";
98+
} else {
99+
return "#fff";
100+
}
101+
}
102+
}
103+
var numrows = m.g.seqs.length;
104+
m.g.colorscheme.addDynScheme("Repeats", repeatScheme(numrows) );
105+
m.g.colorscheme.set("scheme", "Repeats");
93106
m.render();
94107
});
95108
</script>

0 commit comments

Comments
 (0)