def test_within_length(self):
      """within_length checks whether a flowgram is within a given length."""

      flow1 = Flowgram("0 1.2 2.1 3.4 0.02 0.01 1.02 0.08") # len 7
      flow2 = Flowgram('0.5 1.0 4.1 0.0 0.0 1.23 0.0 3.1')  # len 10

      self.assertTrue(within_length(flow1, 0,10))
      self.assertFalse(within_length(flow1, 10,20))
      self.assertFalse(within_length(flow2, 0,5))
      self.assertTrue(within_length(flow2, 5,20))
      self.assertTrue(within_length(flow2, 5,11))
Exemple #2
0
    def test_within_length(self):
        """within_length checks whether a flowgram is within a given length."""

        flow1 = Flowgram("0 1.2 2.1 3.4 0.02 0.01 1.02 0.08")  # len 7
        flow2 = Flowgram('0.5 1.0 4.1 0.0 0.0 1.23 0.0 3.1')  # len 10

        self.assertTrue(within_length(flow1, 0, 10))
        self.assertFalse(within_length(flow1, 10, 20))
        self.assertFalse(within_length(flow2, 0, 5))
        self.assertTrue(within_length(flow2, 5, 20))
        self.assertTrue(within_length(flow2, 5, 11))
    def test_filter_sff_file(self):
        """filter_sff_file filters out bad reads."""

        try:
            fh = open(self.tiny_test)
        except IOError:
            self.fail(
                "Could not open test file %s. Skipping test" %
                self.tiny_test)

        # With no filters all flowgram should be in out file
        flowgrams, header = lazy_parse_sff_handle(fh)
        filter_list = []
        fd, out_file_name = mkstemp(
            prefix="test_filter_sff_file",
            suffix=".sff.txt")
        close(fd)
        out_fh = open(out_file_name, "w")
        l = filter_sff_file(flowgrams, header, filter_list, out_fh)
        remove(out_file_name)
        fh.close()
        self.assertEqual(l, 114)

        # With good filters some should survive
        fh = open(self.tiny_test)
        flowgrams, header = lazy_parse_sff_handle(fh)
        filter_list = [lambda f:within_length(f, 100, 300)]
        fd, out_file_name = mkstemp(
            prefix="test_filter_sff_file",
            suffix=".sff.txt")
        close(fd)
        out_fh = open(out_file_name, "w")
        l = filter_sff_file(flowgrams, header, filter_list, out_fh)
        remove(out_file_name)
        fh.close()
        self.assertEqual(l, 112)

        # With strong filters nothing should be in
        fh = open(self.tiny_test)
        flowgrams, header = lazy_parse_sff_handle(fh)
        filter_list = [lambda f:within_length(f, 0, 0)]
        fd, out_file_name = mkstemp(
            prefix="test_filter_sff_file",
            suffix=".sff.txt")
        close(fd)
        out_fh = open(out_file_name, "w")
        l = filter_sff_file(flowgrams, header, filter_list, out_fh)
        remove(out_file_name)
        self.assertEqual(l, 0)