def test_primer_provided(self):
     res = quality_filter.parse_barcode_file(self.fp, primer='CATTGCCTATG')
     self.assertEqual(9, len(res.keys()))
     self.assertEqual('p1d1bc210', res['TACAGTCGCATTGCCTATG'])
     self.assertEqual(None, triefind.match('TACAGTCGCATTGCCTAT', res))
     self.assertEqual('TACAGTCGCATTGCCTATG',
                      triefind.match('TACAGTCGCATTGCCTATGCTACCTA', res))
 def test_primer_provided(self):
     res = quality_filter.parse_barcode_file(self.fp, primer='CATTGCCTATG')
     self.assertEqual(9, len(list(res.keys())))
     self.assertEqual('p1d1bc210', res['TACAGTCGCATTGCCTATG'])
     self.assertEqual(None, triefind.match('TACAGTCGCATTGCCTAT', res))
     self.assertEqual('TACAGTCGCATTGCCTATG',
                      triefind.match('TACAGTCGCATTGCCTATGCTACCTA', res))
    def test_primer_in_file(self):
        res = quality_filter.parse_barcode_file(self.fp, primer=None)
        self.assertEqual(13, len(res.keys()))

        # Test ambiguities
        self.assertEqual('p1d1bc212', res['TACGTCTCCATGGCTA'])
        self.assertEqual('p1d1bc212', res['TACGTCTCCACGGCTA'])
        self.assertIsNone(res.get('TACGTCTCCAAGGCTA'))
        self.assertIsNone(res.get('TACGTCTCCAGGGCTA'))
    def test_primer_in_file(self):
        res = quality_filter.parse_barcode_file(self.fp, primer=None)
        self.assertEqual(13, len(res.keys()))

        # Test ambiguities
        self.assertEqual('p1d1bc212', res['TACGTCTCCATGGCTA'])
        self.assertEqual('p1d1bc212', res['TACGTCTCCACGGCTA'])
        self.assertIsNone(res.get('TACGTCTCCAAGGCTA'))
        self.assertIsNone(res.get('TACGTCTCCAGGGCTA'))
    def setUp(self):
        self.sequences = [SeqRecord(Seq('ACCGTTACGAT'), 'seq1'),
                          SeqRecord(Seq('ACTGTTACGCT'), 'seq2'),
                          SeqRecord(Seq('AACTGTTA'), 'seq3'), # Homopolymer in bc
                          SeqRecord(Seq('ACCGTA'), 'seq4'),   # Error in primer
                          ]

        barcode_str = """Sample1,ACC\nSample2,ACT\n"""
        self.primer = 'GTTA'
        self.trie = quality_filter.parse_barcode_file(StringIO(barcode_str), primer=self.primer)
        self.outfile = StringIO()
        self.instance = quality_filter.PrimerBarcodeFilter(self.trie, self.outfile)
    def setUp(self):
        self.sequences = [
            SeqRecord(Seq('ACCGTTACGAT'), 'seq1'),
            SeqRecord(Seq('ACTGTTACGCT'), 'seq2'),
            SeqRecord(Seq('AACTGTTA'), 'seq3'),  # Homopolymer in bc
            SeqRecord(Seq('ACCGTA'), 'seq4'),  # Error in primer
        ]

        barcode_str = """Sample1,ACC\nSample2,ACT\n"""
        self.primer = 'GTTA'
        self.trie = quality_filter.parse_barcode_file(StringIO(barcode_str),
                                                      primer=self.primer)
        self.outfile = StringIO()
        self.instance = quality_filter.PrimerBarcodeFilter(
            self.trie, self.outfile)