Beispiel #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)
Beispiel #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)
Beispiel #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)
Beispiel #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)
Beispiel #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)
Beispiel #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)
Beispiel #7
0
 def test_empty_sequences(self):
     seq1 = Sequence('')
     seq2 = Sequence('')
     obs = kmer_distance(seq1, seq2, 3)
     npt.assert_equal(obs, np.nan)
Beispiel #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)
Beispiel #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)
Beispiel #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)
Beispiel #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)
Beispiel #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)
Beispiel #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)
Beispiel #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)
Beispiel #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)
Beispiel #16
0
 def test_empty_sequences(self):
     seq1 = Sequence('')
     seq2 = Sequence('')
     obs = kmer_distance(seq1, seq2, 3)
     npt.assert_equal(obs, np.nan)
Beispiel #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)
Beispiel #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)
Beispiel #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)
Beispiel #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)
Beispiel #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)
Beispiel #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)
Beispiel #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)
Beispiel #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)
Beispiel #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)
Beispiel #26
0
 def test_non_sequence_error(self):
     seq1 = Sequence('ATCG')
     seq2 = 'ATCG'
     with self.assertRaisesRegex(TypeError, "not 'str'"):
         kmer_distance(seq1, seq2, 3)
Beispiel #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)
Beispiel #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)
Beispiel #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)
Beispiel #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)