Skip to content

Commit

Permalink
PIP test for with and wo model optimisation
Browse files Browse the repository at this point in the history
  • Loading branch information
junniest committed Sep 10, 2024
1 parent f5e23cb commit 74a4138
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 33 deletions.
Original file line number Diff line number Diff line change
@@ -1 +1 @@
((Rhes_cDNA:0.005270697439151051,((((DLangur:0.0067324631560195265,Colobus:0.00521530524332267):0.002427192075502467,(((((Chimp:0.004062536454896269,Human:0.01066970288442119):0.0042616661126785435,Gorilla:0.003799987371551049):0.00939396737272837,Orangutan:0.020925588919919923):0.0042656572453531995,Gibbon:0.04549271228044225):0.025773788804886694,(((Woolly:0.02982911938015733,Spider:0.022092190400064618):0.011455489526599595,Howler:0.07603516089516084):0.10366013657195779,(((Tamarin:0.03164671167745268,PMarmoset:0.014916060359693298):0.026753727600658195,Squirrel:0.06705296485480587):0.007093494673525226,(Saki:0.03143866735106935,Titi:0.02058319641790653):0.01626675366805705):0.004670562059845509):0.17980011911442895):0.033267957441090075):0.007258518763365157,Patas:0.020042200482060055):0.01042259615650974,(Baboon:0.005263494182438327,(Tant_cDNA:0.0037526472256948387,AGM_cDNA:0.006482057922501004):0.03573474143751188):0.000016573653357281707):0.002646554869484882):0);
(((((((DLangur:0.006732880841436957,Colobus:0.005214806977094613):0.0024340906034660886,(((((Chimp:0.004062419833263965,Human:0.010669701875989026):0.004261179231123746,Gorilla:0.0038043702055759036):0.009395538726800535,Orangutan:0.020921360504658804):0.0042643181241420035,Gibbon:0.04549261878778109):0.02578313057177958,(((Woolly:0.029826023533889006,Spider:0.02209261902142928):0.011456021427509205,Howler:0.07602540570740167):0.10366328945738926,(((Tamarin:0.03164595108869005,PMarmoset:0.014916289795188737):0.02675640841721116,Squirrel:0.06705509822414533):0.007091452972410337,(Saki:0.0314388204770326,Titi:0.02058165720385792):0.016269147438729346):0.0046703006741814265):0.17979153285943641):0.03326509120365565):0.007269228341816191,Patas:0.020029824527423162):0.010415085915914956,(Tant_cDNA:0.0037505054805588058,AGM_cDNA:0.006484466019234013):0.03572907974312781):0.000013788531579927086,Baboon:0.005263540667196228):0.005353785776377924,Rhes_cDNA:0.0025763149117727746):0);
Original file line number Diff line number Diff line change
@@ -1 +1 @@
(((Tant_cDNA:0.0048018833811211675,AGM_cDNA:0.008339926875757585):0.04534128950416323,((((DLangur:0.008610868011143124,Colobus:0.006650819970918761):0.0031357126228166673,(((((Chimp:0.005215728948279252,Human:0.013682329995014232):0.005375585838951918,Gorilla:0.004959685843646604):0.012277692848934589,Orangutan:0.026495869011378525):0.005123154657377931,Gibbon:0.05895426364325162):0.032567290566178554,(((Woolly:0.03832426472150371,Spider:0.028961294295631365):0.014783978988486978,Howler:0.10023618083180653):0.13718895712242302,((Saki:0.04156451712084586,Titi:0.02555269910901685):0.020523346478912786,((Tamarin:0.04001931431119561,PMarmoset:0.019981458986083438):0.03338174082271472,Squirrel:0.08828899905103033):0.009173650693663014):0.004952774943586081):0.24177792859569436):0.04399012471581886):0.009241754766755407,Patas:0.025643509869867926):0.013364539018112975,(Rhes_cDNA:0.010134761142363087,Baboon:0.006736993384623528):0.000016088731852021455):0.0007497685155102595):0);
(((((((DLangur:0.008611178670556949,Colobus:0.006650686950490801):0.0031340698424978165,(((((Chimp:0.005215611942285593,Human:0.01368393257120765):0.005375498380155762,Gorilla:0.0049595197871362484):0.01227891762243146,Orangutan:0.026493490760655852):0.005122514866804101,Gibbon:0.0589505963002577):0.032570537890510315,(((Woolly:0.038328041327952145,Spider:0.028960903527824294):0.014783389061736155,Howler:0.1002364084678354):0.1371857989006686,(((Tamarin:0.04002296075953043,PMarmoset:0.019980371705359184):0.033380372431847,Squirrel:0.08828815517426074):0.009170588430615825,(Saki:0.041562257630968824,Titi:0.025552562266624713):0.020521941341723277):0.004953597538554208):0.24177254452511115):0.04398721101791317):0.009242507085150746,Patas:0.025644061865054066):0.013365810180372839,(Tant_cDNA:0.0048018317266126775,AGM_cDNA:0.008339605484310094):0.046091682489638686):0.000013788531579927086,Baboon:0.006736970009715715):0.005348682295887778,Rhes_cDNA:0.004785673342643444):0);
66 changes: 35 additions & 31 deletions phylo/src/optimisers/topo_optimiser_tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -300,48 +300,52 @@ fn pip_vs_subst_protein_tree_nogaps() {

#[test]
fn protein_optimise_model_tree() {
// let info = PhyloInfoBuilder::new(PathBuf::from("./data/phyml_protein_example/seqs.fasta"))
let fldr = Path::new("./data/phyml_protein_example/");
let out_tree = fldr.join("optimisation_pip_nj_start_gaps.newick");
let out_tree_model_optim = fldr.join("optimisation_pip_nj_start_model_optim_gaps.newick");

// use crate::io::write_newick_to_file;
// use crate::optimisers::{EvoModelOptimiser, FrequencyOptimisation::Empirical, ModelOptimiser};
// let info = PhyloInfoBuilder::new(fldr.join("seqs.fasta"))
// .build()
// .unwrap();
// let model = PIPModel::<ProteinSubstModel>::new(WAG, &[1.4, 0.5]).unwrap();
// let unopt_logl = model.cost(&info);
// let o = ModelOptimiser::new(&model, &info, Empirical).run().unwrap();
// let pip = PIPModel::<ProteinSubstModel>::new(WAG, &[1.4, 0.5]).unwrap();
// let unopt_logl = pip.cost(&info);

// let o = ModelOptimiser::new(&pip, &info, Empirical).run().unwrap();
// let model_opt_logl = o.final_logl;
// assert!(model_opt_logl >= unopt_logl);
// let o = TopologyOptimiser::new(&o.model, &info).run().unwrap();
// assert!(model_opt_logl >= unopt_logl);
// assert!(o.final_logl >= unopt_logl);
// // The above ran in 703.87s
// let _ = write_newick_to_file(&[o.i.tree.clone()], out_tree_model_optim);
// let with_model_optim = o.i;
// The above ran in 1189.44s

// let info = PhyloInfoBuilder::new(PathBuf::from("./data/phyml_protein_example/seqs.fasta"))
// let info = PhyloInfoBuilder::new(fldr.join("seqs.fasta"))
// .build()
// .unwrap();
// let model = PIPModel::<ProteinSubstModel>::new(WAG, &[1.4, 0.5]).unwrap();
// let unopt_logl = model.cost(&info);
// let o = TopologyOptimiser::new(&model, &info).run().unwrap();
// let pip = PIPModel::<ProteinSubstModel>::new(WAG, &[1.4, 0.5]).unwrap();
// let unopt_logl = pip.cost(&info);
// let o = TopologyOptimiser::new(&pip, &info).run().unwrap();
// assert!(o.final_logl >= unopt_logl);
// The above ran in 497.22s

let optim_model = PIPModel::<ProteinSubstModel>::new(WAG, &[49.56941, 0.09352]).unwrap();
let with_model_optim = PhyloInfoBuilder::with_attrs(
PathBuf::from("./data/phyml_protein_example/seqs.fasta"),
PathBuf::from(
"./data/phyml_protein_example/optimisation_pip_nj_start_model_optim_gaps.newick",
),
)
.build()
.unwrap();
// let _ = write_newick_to_file(&[o.i.tree.clone()], out_tree);
// let wo_model_optim = o.i;
// The above ran in 1109.95s

let model = ProteinSubstModel::new(WAG, &[1.4, 0.5]).unwrap();
let wo_model_optim = PhyloInfoBuilder::with_attrs(
PathBuf::from("./data/phyml_protein_example/seqs.fasta"),
PathBuf::from(
"./data/phyml_protein_example/optimisation_pip_nj_start_model_optim_gaps.newick",
),
)
.build()
.unwrap();
let pip_optim = PIPModel::<ProteinSubstModel>::new(WAG, &[49.56941, 0.09352]).unwrap();
let pip = ProteinSubstModel::new(WAG, &[1.4, 0.5]).unwrap();
let with_model_optim =
PhyloInfoBuilder::with_attrs(fldr.join("seqs.fasta"), out_tree_model_optim)
.build()
.unwrap();
let wo_model_optim = PhyloInfoBuilder::with_attrs(fldr.join("seqs.fasta"), out_tree)
.build()
.unwrap();

assert!(with_model_optim.tree.robinson_foulds(&wo_model_optim.tree) == 0);
assert!(optim_model.cost(&with_model_optim) > model.cost(&wo_model_optim));
assert_eq!(
with_model_optim.tree.robinson_foulds(&wo_model_optim.tree),
0
);
assert!(pip_optim.cost(&with_model_optim) > pip.cost(&wo_model_optim));
}

0 comments on commit 74a4138

Please sign in to comment.