bio-pv
Version:
WebGL protein viewer
77 lines (63 loc) • 2.09 kB
JavaScript
var pv = require("bio-pv");
var viewer = pv.Viewer(document.getElementById('gl'),
{ quality : 'high', width: 'auto', height : 'auto',
antialias : true, outline : true});
var structure;
function lines() {
viewer.clear();
viewer.lines('structure', structure);
}
function cartoon() {
viewer.clear();
viewer.cartoon('structure', structure, { color: pv.color.ssSuccession() });
}
function lineTrace() {
viewer.clear();
viewer.lineTrace('structure', structure);
}
function sline() {
viewer.clear();
viewer.sline('structure', structure);
}
function tube() {
viewer.clear();
viewer.tube('structure', structure);
}
function trace() {
viewer.clear();
viewer.trace('structure', structure);
}
function preset() {
viewer.clear();
var ligand = structure.select({rnames : ['RVP', 'SAH']});
viewer.ballsAndSticks('ligand', ligand);
viewer.cartoon('protein', structure);
}
function loadTransferase() {
document.getElementById('status').innerHTML ='loading transferase';
pv.io.fetchPdb('../pdbs/1r6a.pdb', function(molecule) {
structure = molecule;
preset();
// set camera orientation to pre-determined rotation, zoom and
// center values that are optimal for this very molecule
var rotation = [
0.1728139370679855, 0.1443438231945038, 0.974320650100708,
0.0990324765443802, 0.9816440939903259, -0.162993982434272,
-0.9799638390541077, 0.1246569454669952, 0.155347332358360
];
var center = [6.514, -45.571, 2.929];
viewer.setCamera(rotation, center, 73);
document.getElementById('status').innerHTML = ' ';
});
}
document.getElementById('cartoon').onclick = cartoon;
document.getElementById('line-trace').onclick = lineTrace;
document.getElementById('preset').onclick = preset;
document.getElementById('lines').onclick = lines;
document.getElementById('trace').onclick = trace;
document.getElementById('sline').onclick = sline;
document.getElementById('tube').onclick = tube;
window.onresize = function(event) {
viewer.fitParent();
}
viewer.on('viewerReady', loadTransferase);