Exemple #1
0
 def test_nondefault_k(self):
     seq1 = Sequence('GCTTATGGAGAGAGA')
     seq2 = Sequence('CTCGAACTCCAGCCA')
     obs = kmer_distance(seq1, seq2, 2)
     exp = 0.7333333333333333
     self.assertAlmostEqual(obs, exp)
     seq1 = Sequence('EADDECAEECDEACD')
     seq2 = Sequence('DCBCBADADABCCDA')
     obs = kmer_distance(seq1, seq2, 1)
     exp = 0.4
     self.assertAlmostEqual(obs, exp)
Exemple #2
0
 def test_nondefault_k(self):
     seq1 = Sequence('GCTTATGGAGAGAGA')
     seq2 = Sequence('CTCGAACTCCAGCCA')
     obs = kmer_distance(seq1, seq2, 2)
     exp = 0.7333333333333333
     self.assertAlmostEqual(obs, exp)
     seq1 = Sequence('EADDECAEECDEACD')
     seq2 = Sequence('DCBCBADADABCCDA')
     obs = kmer_distance(seq1, seq2, 1)
     exp = 0.4
     self.assertAlmostEqual(obs, exp)
Exemple #3
0
 def test_with_metadata_sanity(self):
     seq1 = Sequence('AACCTAGCAATGGAT',
                     metadata={'Name': 'Kestrel Gorlick'},
                     positional_metadata={'seq': list('ACTCAAGCTACGAAG')})
     seq2 = Sequence('CAGGCAGTTCTCACC')
     obs = kmer_distance(seq1, seq2, 3)
     exp = 0.9130434782608695
     self.assertAlmostEqual(obs, exp)
Exemple #4
0
 def test_with_metadata_sanity(self):
     seq1 = Sequence('AACCTAGCAATGGAT',
                     metadata={'Name': 'Kestrel Gorlick'},
                     positional_metadata={'seq': list('ACTCAAGCTACGAAG')})
     seq2 = Sequence('CAGGCAGTTCTCACC')
     obs = kmer_distance(seq1, seq2, 3)
     exp = 0.9130434782608695
     self.assertAlmostEqual(obs, exp)
Exemple #5
0
 def test_type_mismatch_error(self):
     seq1 = Sequence('ABC')
     seq2 = DNA('ATC')
     with self.assertRaisesRegex(TypeError, r"Type 'Sequence'.*type 'DNA'"):
         kmer_distance(seq1, seq2, 3)
Exemple #6
0
 def test_no_kmers_found(self):
     seq1 = Sequence('ATCG')
     seq2 = Sequence('ACGT')
     obs = kmer_distance(seq1, seq2, 5)
     npt.assert_equal(obs, np.nan)
Exemple #7
0
 def test_empty_sequences(self):
     seq1 = Sequence('')
     seq2 = Sequence('')
     obs = kmer_distance(seq1, seq2, 3)
     npt.assert_equal(obs, np.nan)
Exemple #8
0
 def test_differing_length_seqs(self):
     seq1 = Sequence('AGAAATCTGAGCAAGGATCA')
     seq2 = Sequence('TTAGTGCGTAATCCG')
     obs = kmer_distance(seq1, seq2, 3)
     exp = 0.9285714285714286
     self.assertAlmostEqual(obs, exp)
Exemple #9
0
 def test_entirely_different_sequences(self):
     seq1 = Sequence('CCGTGGTCGTATAAG')
     seq2 = Sequence('CGCCTTCCACATCAG')
     obs = kmer_distance(seq1, seq2, 3)
     exp = 1.0
     self.assertEqual(obs, exp)
Exemple #10
0
 def test_return_type(self):
     seq1 = Sequence('ATCG')
     seq2 = Sequence('ATCG')
     obs = kmer_distance(seq1, seq2, 3)
     self.assertIsInstance(obs, float)
     self.assertEqual(obs, 0.0)
Exemple #11
0
 def test_with_sequence_subclass(self):
     seq1 = DNA('GATGGTACTGTAGGT')
     seq2 = DNA('AGGGTGAAGGTATCA')
     obs = kmer_distance(seq1, seq2, 3)
     exp = 0.8421052631578947
     self.assertAlmostEqual(obs, exp)
Exemple #12
0
 def test_differing_length_seqs(self):
     seq1 = Sequence('AGAAATCTGAGCAAGGATCA')
     seq2 = Sequence('TTAGTGCGTAATCCG')
     obs = kmer_distance(seq1, seq2, 3)
     exp = 0.9285714285714286
     self.assertAlmostEqual(obs, exp)
Exemple #13
0
 def test_same_sequence(self):
     seq1 = Sequence('CTGCGACAGTTGGTA')
     seq2 = Sequence('CTGCGACAGTTGGTA')
     obs = kmer_distance(seq1, seq2, 3)
     exp = 0.0
     self.assertEqual(obs, exp)
Exemple #14
0
 def test_entirely_different_sequences(self):
     seq1 = Sequence('CCGTGGTCGTATAAG')
     seq2 = Sequence('CGCCTTCCACATCAG')
     obs = kmer_distance(seq1, seq2, 3)
     exp = 1.0
     self.assertEqual(obs, exp)
Exemple #15
0
 def test_overlap_false(self):
     seq1 = Sequence('CGTTATGTCTGTGAT')
     seq2 = Sequence('CTGAATCGGTAGTGT')
     obs = kmer_distance(seq1, seq2, 3, overlap=False)
     exp = 0.8888888888888888
     self.assertAlmostEqual(obs, exp)
Exemple #16
0
 def test_empty_sequences(self):
     seq1 = Sequence('')
     seq2 = Sequence('')
     obs = kmer_distance(seq1, seq2, 3)
     npt.assert_equal(obs, np.nan)
Exemple #17
0
 def test_overlap_false(self):
     seq1 = Sequence('CGTTATGTCTGTGAT')
     seq2 = Sequence('CTGAATCGGTAGTGT')
     obs = kmer_distance(seq1, seq2, 3, overlap=False)
     exp = 0.8888888888888888
     self.assertAlmostEqual(obs, exp)
Exemple #18
0
 def test_one_empty_sequence(self):
     seq1 = Sequence('')
     seq2 = Sequence('CGGGCAGCTCCTACCTGCTA')
     obs = kmer_distance(seq1, seq2, 3)
     exp = 1.0
     self.assertAlmostEqual(obs, exp)
Exemple #19
0
 def test_same_sequence(self):
     seq1 = Sequence('CTGCGACAGTTGGTA')
     seq2 = Sequence('CTGCGACAGTTGGTA')
     obs = kmer_distance(seq1, seq2, 3)
     exp = 0.0
     self.assertEqual(obs, exp)
Exemple #20
0
 def test_no_kmers_found(self):
     seq1 = Sequence('ATCG')
     seq2 = Sequence('ACGT')
     obs = kmer_distance(seq1, seq2, 5)
     npt.assert_equal(obs, np.nan)
Exemple #21
0
 def test_with_sequence_subclass(self):
     seq1 = DNA('GATGGTACTGTAGGT')
     seq2 = DNA('AGGGTGAAGGTATCA')
     obs = kmer_distance(seq1, seq2, 3)
     exp = 0.8421052631578947
     self.assertAlmostEqual(obs, exp)
Exemple #22
0
 def test_k_less_than_one_error(self):
     seq1 = Sequence('ATCG')
     seq2 = Sequence('ACTG')
     with self.assertRaisesRegex(ValueError, 'k must be greater than 0.'):
         kmer_distance(seq1, seq2, 0)
Exemple #23
0
 def test_return_type(self):
     seq1 = Sequence('ATCG')
     seq2 = Sequence('ATCG')
     obs = kmer_distance(seq1, seq2, 3)
     self.assertIsInstance(obs, float)
     self.assertEqual(obs, 0.0)
Exemple #24
0
 def test_type_mismatch_error(self):
     seq1 = Sequence('ABC')
     seq2 = DNA('ATC')
     with self.assertRaisesRegex(TypeError, "Type 'Sequence'.*type 'DNA'"):
         kmer_distance(seq1, seq2, 3)
Exemple #25
0
 def test_one_empty_sequence(self):
     seq1 = Sequence('')
     seq2 = Sequence('CGGGCAGCTCCTACCTGCTA')
     obs = kmer_distance(seq1, seq2, 3)
     exp = 1.0
     self.assertAlmostEqual(obs, exp)
Exemple #26
0
 def test_non_sequence_error(self):
     seq1 = Sequence('ATCG')
     seq2 = 'ATCG'
     with self.assertRaisesRegex(TypeError, "not 'str'"):
         kmer_distance(seq1, seq2, 3)
Exemple #27
0
 def test_k_less_than_one_error(self):
     seq1 = Sequence('ATCG')
     seq2 = Sequence('ACTG')
     with self.assertRaisesRegex(ValueError, r'k must be greater than 0.'):
         kmer_distance(seq1, seq2, 0)
Exemple #28
0
 def test_default_kwargs(self):
     seq1 = Sequence('AACCTAGCAATGGAT')
     seq2 = Sequence('CAGGCAGTTCTCACC')
     obs = kmer_distance(seq1, seq2, 3)
     exp = 0.9130434782608695
     self.assertAlmostEqual(obs, exp)
Exemple #29
0
 def test_non_sequence_error(self):
     seq1 = Sequence('ATCG')
     seq2 = 'ATCG'
     with self.assertRaisesRegex(TypeError, r"not 'str'"):
         kmer_distance(seq1, seq2, 3)
Exemple #30
0
 def test_default_kwargs(self):
     seq1 = Sequence('AACCTAGCAATGGAT')
     seq2 = Sequence('CAGGCAGTTCTCACC')
     obs = kmer_distance(seq1, seq2, 3)
     exp = 0.9130434782608695
     self.assertAlmostEqual(obs, exp)