Skip to content

Commit 7bbb383

Browse files
committed
Adjust tests and test data for newick parser
Adjusted tests and test data for newick parser to never use number-only IDs for nodes and to use internal node id generator for comparison.
1 parent 29302e2 commit 7bbb383

6 files changed

Lines changed: 44 additions & 36 deletions

File tree

phylo/data/p105.msa.fa

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
1-
>284813
1+
>s284813
22
--------------------------------------------QRLIL-----------
33
---------------------------------
4-
>284811
4+
>s284811
55
-MSDL--E----HESVPK--IPNESVWPDIVYLPDFKPTFPKWQ----------------
66
---------------------------------
7-
>284593
7+
>s284593
88
MSSELPGE----HESIPK--IPSEAVWPDIVYLPDFKPSFPQWR----------------
99
---------------------------------
10-
>237561
10+
>s237561
1111
-MVET--E----HESIPQ--MPNEEIWPDVNYLPDFKSSFPQWK----------------
1212
----------NDDRDHNNYNEDNIGIDKHQNM-
13-
>284591
13+
>s284591
1414
-MVDT--E----HESISP--MPTEETWPGVTALPDYKPTFPQWS-----VGTNMKSGYNA
1515
AAGPGLMMST-----------------------
16-
>284812
16+
>s284812
1717
-------ERSNC-DRISETGLPNEEVWPGVTLLQDYKSTFPRWK----------------
1818
--------------------------------F

phylo/data/p105.newick

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
((284811:0.0000000000000002220446049250313,(284593:0.09695146373489569,(237561:0.3249811214954128,(284812:0.2932969786389556,(284813:4183.274915114282,284591:0.16527960508898415):0.16533876806006598):0.04817830194688745):0.10198380019982661):0.041663718143987165):0);
1+
((s284811:0.0000000000000002220446049250313,(s284593:0.09695146373489569,(s237561:0.3249811214954128,(s284812:0.2932969786389556,(s284813:4183.274915114282,s284591:0.16527960508898415):0.16533876806006598):0.04817830194688745):0.10198380019982661):0.041663718143987165):0);

phylo/src/optimisers/blen_optimiser_tests.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -143,10 +143,10 @@ fn repeated_optimisation_limit() {
143143

144144
#[test]
145145
fn only_gap_sequence() {
146-
let tree = tree!("((5207:0.8699783346462397,284812:226000000):0);");
146+
let tree = tree!("((l5207:0.8699783346462397,l284812:226000000):0);");
147147
let msa: MSA = Alignment::from_aligned(
148148
Sequences::with_alphabet(
149-
vec![record!("284812", b"-"), record!("5207", b"V")],
149+
vec![record!("l284812", b"-"), record!("l5207", b"V")],
150150
Alphabet::protein(),
151151
),
152152
&tree,

phylo/src/pip_model/tests.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -830,16 +830,16 @@ fn blen_leading_to_small_probs() {
830830

831831
#[test]
832832
fn blen_leading_to_minusinf() {
833-
let tree = tree!("((284811:0.0000000000000002,(284593:0.1,(237561:0.3,(284812:0.3,(284813:400.9,284591:0.2):40000000000000.2):0.05):0.1):0.04):0);");
833+
let tree = tree!("((s284811:0.0000000000000002,(s284593:0.1,(s237561:0.3,(s284812:0.3,(s284813:400.9,s284591:0.2):40000000000000.2):0.05):0.1):0.04):0);");
834834
let msa = MSA::from_aligned(
835835
Sequences::with_alphabet(
836836
vec![
837-
record!("284813", b"-"),
838-
record!("284811", b"W"),
839-
record!("284593", b"W"),
840-
record!("237561", b"W"),
841-
record!("284591", b"W"),
842-
record!("284812", b"W"),
837+
record!("s284813", b"-"),
838+
record!("s284811", b"W"),
839+
record!("s284593", b"W"),
840+
record!("s237561", b"W"),
841+
record!("s284591", b"W"),
842+
record!("s284812", b"W"),
843843
],
844844
Alphabet::protein(),
845845
),

phylo/src/tree/nj_builder.rs

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -272,8 +272,8 @@ mod tests {
272272
LevenshteinDNACorrected as LDNACorr, LevenshteinProteinCorrected,
273273
};
274274
use crate::random::{FakeGenerator, FakeRng};
275-
use crate::tree::Node;
276275
use crate::tree::NodeIdx::{self, Internal as I, Leaf as L};
276+
use crate::tree::{generate_internal_node_id as gen_id, Node};
277277
use crate::{record_wo_desc as record, tree};
278278

279279
use super::*;
@@ -338,13 +338,17 @@ mod tests {
338338
17.0, 14.0, 11.0, 12.0, 10.0, 13.0, 8.0, 0.0;
339339
],
340340
};
341-
let sequences = Sequences::new((1..=8).map(|i| record!(&i.to_string(), b"")).collect());
341+
let sequences = Sequences::new(
342+
(1..=8)
343+
.map(|i| record!(format!("s{}", i).as_str(), b""))
344+
.collect(),
345+
);
342346
let mut rng = FakeGenerator::default();
343347
let nj_tree = NJTreeBuilder::new(LDNACorr {})
344348
.build_from_distances(nj_distances, &sequences, &mut rng)
345349
.unwrap();
346350
let correct_tree =
347-
tree!("((8:6,7:2):0.5,((5:1,6:4):2,(4:3,(3:1,(1:5,2:2):2):1):2):0.5):0.0;");
351+
tree!("((s8:6,s7:2):0.5,((s5:1,s6:4):2,(s4:3,(s3:1,(s1:5,s2:2):2):1):2):0.5):0.0;");
348352
assert_eq!(nj_tree.length, correct_tree.length);
349353
for leaf in nj_tree.leaves() {
350354
assert_eq!(leaf.blen, correct_tree.by_id(&leaf.id).blen);
@@ -480,10 +484,10 @@ mod tests {
480484
Node::new_leaf(2, Some(I(7)), 4.0, "C2".to_string()),
481485
Node::new_leaf(3, Some(I(6)), 2.0, "D3".to_string()),
482486
Node::new_leaf(4, Some(I(6)), 1.0, "E4".to_string()),
483-
Node::new_internal(5, Some(I(7)), vec![L(1), L(0)], 3.0, "".to_string()),
484-
Node::new_internal(6, Some(I(8)), vec![L(4), L(3)], 1.0, "".to_string()),
485-
Node::new_internal(7, Some(I(8)), vec![I(5), L(2)], 1.0, "".to_string()),
486-
Node::new_internal(8, None, vec![I(7), I(6)], 0.0, "".to_string()),
487+
Node::new_internal(5, Some(I(7)), vec![L(1), L(0)], 3.0, gen_id(&5)),
488+
Node::new_internal(6, Some(I(8)), vec![L(4), L(3)], 1.0, gen_id(&6)),
489+
Node::new_internal(7, Some(I(8)), vec![I(5), L(2)], 1.0, gen_id(&7)),
490+
Node::new_internal(8, None, vec![I(7), I(6)], 0.0, gen_id(&8)),
487491
];
488492
assert_eq!(nj_tree.root, I(8));
489493
assert_eq!(nj_tree.nodes, nodes);
@@ -514,9 +518,9 @@ mod tests {
514518
Node::new_leaf(1, Some(I(4)), 3.0, "B1".to_string()),
515519
Node::new_leaf(2, Some(I(5)), 2.0, "C2".to_string()),
516520
Node::new_leaf(3, Some(I(5)), 7.0, "D3".to_string()),
517-
Node::new_internal(4, Some(I(6)), vec![L(0), L(1)], 1.0, "".to_string()),
518-
Node::new_internal(5, Some(I(6)), vec![L(3), L(2)], 1.0, "".to_string()),
519-
Node::new_internal(6, None, vec![I(4), I(5)], 0.0, "".to_string()),
521+
Node::new_internal(4, Some(I(6)), vec![L(0), L(1)], 1.0, gen_id(&4)),
522+
Node::new_internal(5, Some(I(6)), vec![L(3), L(2)], 1.0, gen_id(&5)),
523+
Node::new_internal(6, None, vec![I(4), I(5)], 0.0, gen_id(&6)),
520524
];
521525

522526
assert_eq!(nj_tree.root, I(6));
@@ -671,7 +675,11 @@ mod tests {
671675
17.0, 14.0, 11.0, 12.0, 10.0, 13.0, 8.0, 0.0;
672676
],
673677
};
674-
let sequences = Sequences::new((1..=8).map(|i| record!(&i.to_string(), b"")).collect());
678+
let sequences = Sequences::new(
679+
(1..=8)
680+
.map(|i| record!(format!("s{}", i).as_str(), b""))
681+
.collect(),
682+
);
675683

676684
// FakeRng will return values that will select the same pairs as in the original paper
677685
let mut rng = RandomGenerator::from_rng(FakeRng::from_f64_values(vec![
@@ -681,7 +689,7 @@ mod tests {
681689
.build_from_distances(nj_distances, &sequences, &mut rng)
682690
.unwrap();
683691
let correct_tree =
684-
tree!("((8:6,7:2):0.5,((5:1,6:4):2,(4:3,(3:1,(1:5,2:2):2):1):2):0.5):0.0;");
692+
tree!("((s8:6,s7:2):0.5,((s5:1,s6:4):2,(s4:3,(s3:1,(s1:5,s2:2):2):1):2):0.5):0.0;");
685693
assert_eq!(nj_tree.length, correct_tree.length);
686694
for leaf in nj_tree.leaves() {
687695
assert_eq!(leaf.blen, correct_tree.by_id(&leaf.id).blen);

phylo/src/tree/tests.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -213,10 +213,10 @@ fn newick_ladder_big_correct() {
213213
fn newick_complex_tree_correct() {
214214
// tree from file samplefraction_0.99_taxa_16_treeheight_0.8_tree1_leaves.nwk
215215
let trees = from_newick(
216-
"(((15:0.0334274,4:0.0334274):0.38581,7:0.419237):0.380763,(((6:0.0973428,14:0.0973428):0.0773821,\
217-
(1:0.000738004,3:0.000738004):0.173987):0.548192,(((13:0.0799156,16:0.0799156):0.0667553,(5:0.123516,\
218-
10:0.123516):0.0231551):0.0716431,((8:0.0571164,2:0.0571164):0.0539283,(12:0.0631742,(11:0.00312848,\
219-
9:0.00312848):0.0600458):0.0478705):0.107269):0.504603):0.0770827);
216+
"(((s15:0.0334274,s4:0.0334274):0.38581,s7:0.419237):0.380763,(((s6:0.0973428,s14:0.0973428):0.0773821,\
217+
(s1:0.000738004,s3:0.000738004):0.173987):0.548192,(((s13:0.0799156,s16:0.0799156):0.0667553,(s5:0.123516,\
218+
s10:0.123516):0.0231551):0.0716431,((s8:0.0571164,s2:0.0571164):0.0539283,(s12:0.0631742,(s11:0.00312848,\
219+
s9:0.00312848):0.0600458):0.0478705):0.107269):0.504603):0.0770827);
220220
",
221221
)
222222
.unwrap();
@@ -719,12 +719,12 @@ fn partitions() {
719719
#[test]
720720
fn rf_distance_web_example() {
721721
// Examples from https://cs.hmc.edu/~hadas/mitcompbio/treedistance.html
722-
let tree1 = tree!("(0, (1, (2, (3, 4))));");
723-
let tree2 = tree!("(0, (1, (3, (2, 4))));");
722+
let tree1 = tree!("(s0, (s1, (s2, (s3, s4))));");
723+
let tree2 = tree!("(s0, (s1, (s3, (s2, s4))));");
724724
assert_eq!(tree1.robinson_foulds(&tree2), 2);
725725

726-
let tree1 = tree!("(0, ((1, (2, 3)), (7, (6, (4, 5)))));");
727-
let tree2 = tree!("(0, ((2, (1, 3)), (6, (4, (5, 7)))));");
726+
let tree1 = tree!("(s0, ((s1, (s2, s3)), (s7, (s6, (s4, s5)))));");
727+
let tree2 = tree!("(s0, ((s2, (s1, s3)), (s6, (s4, (s5, s7)))));");
728728
assert_eq!(tree1.robinson_foulds(&tree2), 6);
729729
}
730730

0 commit comments

Comments
 (0)