Function insert_parent

Source
pub fn insert_parent(tree: &mut Tree, id: &NodeId) -> NodeId
Expand description

Insert a node in the middle of the desired node and its parent

use phylotree::tree::Tree;

let newick = "((A,B),C);";
let mut tree = Tree::from_newick(newick).unwrap();
let id = tree.get_by_name("B").unwrap().id;

nwr::insert_parent(&mut tree, &id);

assert_eq!(tree.to_newick().unwrap(), "((A,(B)),C);".to_string());

let newick = "((A:1,B:1):1,C:1);";
let mut tree = Tree::from_newick(newick).unwrap();
let id = tree.get_by_name("B").unwrap().id;

nwr::insert_parent(&mut tree, &id);

assert_eq!(tree.to_newick().unwrap(), "((A:1,(B:0.5):0.5):1,C:1);".to_string());