Example of how to re-root a tree on an internal node in TnT Tree. Click on an internal node to re-root the tree in that node. Click on the "Full Tree" button to get the full tree again
Built with blockbuilder.org
Example of how to re-root a tree on an internal node in TnT Tree. Click on an internal node to re-root the tree in that node. Click on the "Full Tree" button to get the full tree again
Built with blockbuilder.org
<!DOCTYPE html> | |
<head> | |
<link rel="stylesheet" href="http://tntvis.github.io/tnt.tree/build/tnt.tree.css" type="text/css" /> | |
<script src="http://d3js.org/d3.v3.min.js"></script> | |
<script src="http://tntvis.github.io/tnt.tree/build/tnt.tree.min.js"></script> | |
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script> | |
</head> | |
<body> | |
<button>Full Tree</button> | |
<div id="mydiv"></div> | |
<script> | |
// newick tree | |
var newick = "((((((((PATIENT_D:1.0,PATIENT_F:1.0):0.8,PATIENT_H:1.0):0.50,(((Local_Control_4:1.0,Local_Control_3:1.0):1.0,Local\ | |
_Control_1:1.0):0.60,(Local_Control_5:1.0,Local_Control_2:1.0):0.9):0.40):0.70,DENTIST_WIFE:1.0):0.70,(PATIENT_E:1.0,PATIENT_B:1.0):\ | |
0.9):1.0,PATIENT_G:1.0):0.8,(DENTIST:1.0,PATIENT_C:1.0):0.70):1.0,PATIENT_A:1.0);"; | |
var tree = tnt.tree(); | |
tree | |
.data(tnt.tree.parse_newick(newick)) | |
.node_display(tree.node_display() | |
.size(4) | |
.fill("#888888") | |
) | |
.label (tnt.tree.label.text() | |
.fontsize(12) | |
.height(24) | |
) | |
.layout(tnt.tree.layout.vertical() | |
.width(650) | |
.scale(false) | |
); | |
tree(document.getElementById("mydiv")); | |
var root = tree.root(); | |
// Reroot when clicking a subnode | |
tree.on("click", function (node) { | |
var subtree = root.subtree(node.get_all_leaves()); | |
tree.data(subtree.data()); | |
tree.update(); | |
}); | |
// Getting the full tree back | |
$('button').on('click', function() { | |
tree.data(root.data()); | |
tree.update(); | |
}); | |
</script> | |
</body> |