Example #1
0
 def test_nondegenerates_gap_mixed_case(self):
     exp = [
         NucleotideSequence('-A.a'),
         NucleotideSequence('-A.c'),
         NucleotideSequence('-C.a'),
         NucleotideSequence('-C.c')
     ]
     obs = sorted(NucleotideSequence('-M.m').nondegenerates(), key=str)
     self.assertEqual(obs, exp)
Example #2
0
    def test_eq(self):
        self.assertTrue(self.b1 == self.b1)
        self.assertTrue(self.b2 == self.b2)
        self.assertTrue(self.b3 == self.b3)

        self.assertTrue(self.b1 != self.b3)
        self.assertTrue(self.b1 != self.b2)
        self.assertTrue(self.b2 != self.b3)

        # identicial sequences of the same type are equal, even if they have
        # different ids and/or descriptions
        self.assertTrue(
            BiologicalSequence('ACGT') == BiologicalSequence('ACGT'))
        self.assertTrue(
            BiologicalSequence('ACGT', id='a') == BiologicalSequence('ACGT',
                                                                     id='b'))
        self.assertTrue(
            BiologicalSequence('ACGT', description='c') == BiologicalSequence(
                'ACGT', description='d'))
        self.assertTrue(
            BiologicalSequence('ACGT', id='a', description='c') ==
            BiologicalSequence('ACGT', id='b', description='d'))

        # different type causes sequences to not be equal
        self.assertFalse(
            BiologicalSequence('ACGT') == NucleotideSequence('ACGT'))
Example #3
0
 def test_nondegenerates_mixed_degens(self):
     exp = [
         NucleotideSequence('AGC'),
         NucleotideSequence('AGT'),
         NucleotideSequence('AGU'),
         NucleotideSequence('GGC'),
         NucleotideSequence('GGT'),
         NucleotideSequence('GGU')
     ]
     obs = sorted(NucleotideSequence('RGY').nondegenerates(), key=str)
     self.assertEqual(obs, exp)
Example #4
0
    def test_sequence_collection_to_fastq_kwargs_passed(self):
        for components, kwargs_expected_fp in self.valid_files:
            for kwargs, expected_fp in kwargs_expected_fp:
                obj = SequenceCollection([
                    NucleotideSequence(c[2],
                                       id=c[0],
                                       description=c[1],
                                       quality=c[3]) for c in components
                ])

                fh = StringIO()
                _sequence_collection_to_fastq(obj, fh, **kwargs)
                observed = fh.getvalue()
                fh.close()

                with open(expected_fp, 'U') as f:
                    expected = f.read()

                self.assertEqual(observed, expected)
Example #5
0
    def test_nondegenerates_all_degens(self):
        # Same chars.
        exp = [
            NucleotideSequence('CC'),
            NucleotideSequence('CG'),
            NucleotideSequence('GC'),
            NucleotideSequence('GG')
        ]
        # Sort based on sequence string, as order is not guaranteed.
        obs = sorted(NucleotideSequence('SS').nondegenerates(), key=str)
        self.assertEqual(obs, exp)

        # Different chars.
        exp = [
            NucleotideSequence('AC'),
            NucleotideSequence('AG'),
            NucleotideSequence('GC'),
            NucleotideSequence('GG')
        ]
        obs = sorted(NucleotideSequence('RS').nondegenerates(), key=str)
        self.assertEqual(obs, exp)

        # Odd number of chars.
        obs = list(NucleotideSequence('NNN').nondegenerates())
        self.assertEqual(len(obs), 5**3)
Example #6
0
 def test_nondegenerates_invalid(self):
     with self.assertRaises(BiologicalSequenceError):
         list(NucleotideSequence('AZA').nondegenerates())
Example #7
0
 def setUp(self):
     self.empty = NucleotideSequence('')
     self.b1 = NucleotideSequence('GATTACA')
     self.b2 = NucleotideSequence('ACCGGUACC',
                                  id="test-seq-2",
                                  description="A test sequence")
Example #8
0
 def test_lower(self):
     b = NucleotideSequence('GAt.ACa-', id='x', description='42')
     expected = NucleotideSequence('gat.aca-', id='x', description='42')
     self.assertEqual(b.lower(), expected)
Example #9
0
 def test_upper(self):
     b = NucleotideSequence('GAt.ACa-', id='x', description='42')
     expected = NucleotideSequence('GAT.ACA-', id='x', description='42')
     self.assertEqual(b.upper(), expected)