Example #1
0
    def test_prep_sffs_in_dir_no_trim(self):
        """test_prep_sffs_in_dir should use the no_trim option only if sffinfo exists."""
        output_dir = tempfile.mkdtemp()
        gz_output_dir = tempfile.mkdtemp()

        try:
            check_sffinfo()
            perform_test = True
        except:
            perform_test = False

        if perform_test:
            prep_sffs_in_dir(self.sff_dir, output_dir, make_flowgram=False,
                             convert_to_flx=False, use_sfftools=True,
                             no_trim=True)

            fna_fp = os.path.join(output_dir, 'test.fna')

            self.assertEqual(open(fna_fp).read(), fna_notrim_txt)

            qual_fp = os.path.join(output_dir, 'test.qual')
            self.assertEqual(open(qual_fp).read(), qual_notrim_txt)

            self.assertRaises(TypeError, "gzipped SFF", prep_sffs_in_dir,
                              self.gz_sff_dir, gz_output_dir, make_flowgram=False,
                              convert_to_flx=False, use_sfftools=True,
                              no_trim=True)

            shutil.rmtree(output_dir)
            shutil.rmtree(gz_output_dir)
Example #2
0
def main():
    option_parser, opts, args = parse_command_line_parameters(**script_info)

    output_dir = opts.output_dir

    if output_dir:
        create_dir(output_dir)
    else:
        if isfile(opts.input_dir):
            # if output_dir is empty after the split, then a relative path was
            # passed, and the input file is in the current directory
            output_dir = split(opts.input_dir)[0] or '.'

        else:  # opts.input_dir is a directory
            output_dir = opts.input_dir

    if opts.no_trim and not opts.use_sfftools:
        raise ValueError(
            "When using the --no_trim option you must have the sfftools installed and must also pass the --use_sfftools option"
        )

    prep_sffs_in_dir(opts.input_dir,
                     output_dir,
                     make_flowgram=opts.make_flowgram,
                     convert_to_flx=opts.convert_to_FLX,
                     use_sfftools=opts.use_sfftools,
                     no_trim=opts.no_trim)
Example #3
0
    def test_prep_sffs_in_dir_FLX(self):
        """test_prep_sffs_in_dir should convert to FLX read lengths."""
        output_dir = tempfile.mkdtemp()
        gz_output_dir = tempfile.mkdtemp()

        prep_sffs_in_dir(
            self.sff_dir, output_dir, make_flowgram=True, convert_to_flx=True)
        prep_sffs_in_dir(
            self.gz_sff_dir, gz_output_dir, make_flowgram=True, convert_to_flx=True)

        fna_fp = os.path.join(output_dir, 'test_FLX.fna')
        fna_gz_fp = os.path.join(gz_output_dir, 'test_gz_FLX.fna')
        self.assertEqual(open(fna_fp).read(), fna_txt)
        self.assertEqual(open(fna_gz_fp).read(), fna_txt)

        qual_fp = os.path.join(output_dir, 'test_FLX.qual')
        qual_gz_fp = os.path.join(gz_output_dir, 'test_gz_FLX.qual')
        self.assertEqual(open(qual_fp).read(), qual_txt)
        self.assertEqual(open(qual_gz_fp).read(), qual_txt)

        flow_fp = os.path.join(output_dir, 'test_FLX.txt')
        flow_gz_fp = os.path.join(gz_output_dir, 'test_gz_FLX.txt')
        self.assertEqual(open(flow_fp).read(), flx_flow_txt)
        self.assertEqual(open(flow_gz_fp).read(), flx_flow_txt)

        shutil.rmtree(output_dir)
        shutil.rmtree(gz_output_dir)
Example #4
0
    def test_prep_sffs_in_dir_FLX(self):
        """test_prep_sffs_in_dir should convert to FLX read lengths."""
        output_dir = mkdtemp()
        gz_output_dir = mkdtemp()

        prep_sffs_in_dir(self.sff_dir,
                         output_dir,
                         make_flowgram=True,
                         convert_to_flx=True)
        prep_sffs_in_dir(self.gz_sff_dir,
                         gz_output_dir,
                         make_flowgram=True,
                         convert_to_flx=True)

        fna_fp = os.path.join(output_dir, 'test_FLX.fna')
        fna_gz_fp = os.path.join(gz_output_dir, 'test_gz_FLX.fna')
        self.assertEqual(open(fna_fp).read(), fna_txt)
        self.assertEqual(open(fna_gz_fp).read(), fna_txt)

        qual_fp = os.path.join(output_dir, 'test_FLX.qual')
        qual_gz_fp = os.path.join(gz_output_dir, 'test_gz_FLX.qual')
        self.assertEqual(open(qual_fp).read(), qual_txt)
        self.assertEqual(open(qual_gz_fp).read(), qual_txt)

        flow_fp = os.path.join(output_dir, 'test_FLX.txt')
        flow_gz_fp = os.path.join(gz_output_dir, 'test_gz_FLX.txt')
        self.assertEqual(open(flow_fp).read(), flx_flow_txt)
        self.assertEqual(open(flow_gz_fp).read(), flx_flow_txt)

        shutil.rmtree(output_dir)
        shutil.rmtree(gz_output_dir)
Example #5
0
def main():
    option_parser, opts, args = parse_command_line_parameters(**script_info)

    output_dir = opts.output_dir

    if output_dir:
        create_dir(output_dir)
    else:
        if isfile(opts.input_dir):
            # if output_dir is empty after the split, then a relative path was
            # passed, and the input file is in the current directory
            output_dir = split(opts.input_dir)[0] or '.'

        else:  # opts.input_dir is a directory
            output_dir = opts.input_dir

    if opts.no_trim and not opts.use_sfftools:
        raise ValueError(
            "When using the --no_trim option you must have the sfftools installed and must also pass the --use_sfftools option")

    prep_sffs_in_dir(
        opts.input_dir,
        output_dir,
        make_flowgram=opts.make_flowgram,
        convert_to_flx=opts.convert_to_FLX,
        use_sfftools=opts.use_sfftools,
        no_trim=opts.no_trim)
    def test_prep_sffs_in_dir(self):
        """test_prep_sffs_in_dir should make fasta/qual from sffs."""
        prep_sffs_in_dir(self.sff_dir, self.sff_dir, make_flowgram=True)

        fna_fp = os.path.join(self.sff_dir, 'test.fna')
        self.assertEqual(open(fna_fp).read(), fna_txt)

        qual_fp = os.path.join(self.sff_dir, 'test.qual')
        self.assertEqual(open(qual_fp).read(), qual_txt)

        flow_fp = os.path.join(self.sff_dir, 'test.txt')
        self.assertEqual(open(flow_fp).read(), flow_txt)
Example #7
0
    def test_prep_sffs_in_dir(self):
        """test_prep_sffs_in_dir should make fasta/qual from sffs."""
        prep_sffs_in_dir(self.sff_dir, self.sff_dir, make_flowgram=True)
        prep_sffs_in_dir(self.gz_sff_dir, self.gz_sff_dir, make_flowgram=True)

        fna_fp = os.path.join(self.sff_dir, 'test.fna')
        fna_gz_fp = os.path.join(self.gz_sff_dir, 'test_gz.fna')
        self.assertEqual(open(fna_fp).read(), fna_txt)
        self.assertEqual(open(fna_gz_fp).read(), fna_txt)

        qual_fp = os.path.join(self.sff_dir, 'test.qual')
        qual_gz_fp = os.path.join(self.gz_sff_dir, 'test_gz.qual')
        self.assertEqual(open(qual_fp).read(), qual_txt)
        self.assertEqual(open(qual_gz_fp).read(), qual_txt)

        flow_fp = os.path.join(self.sff_dir, 'test.txt')
        flow_gz_fp = os.path.join(self.gz_sff_dir, 'test_gz.txt')
        self.assertEqual(open(flow_fp).read(), flow_txt)
        self.assertEqual(open(flow_gz_fp).read(), flow_txt)
Example #8
0
def main():
    option_parser, opts, args = parse_command_line_parameters(**script_info)
    
    if opts.output_dir:
        #try to make the output directory
        try:
            mkdir(opts.output_dir)
        except OSError:
            pass
    else:
        opts.output_dir = opts.input_dir
            
    prep_sffs_in_dir(
        opts.input_dir,
        opts.output_dir,
        make_flowgram=opts.make_flowgram,
        convert_to_flx=opts.convert_to_FLX,
        use_sfftools=opts.use_sfftools,
        )
Example #9
0
def main():
    option_parser, opts, args = parse_command_line_parameters(**script_info)

    if opts.output_dir:
        #try to make the output directory
        try:
            mkdir(opts.output_dir)
        except OSError:
            pass
    else:
        opts.output_dir = opts.input_dir

    if opts.no_trim and not opts.use_sfftools:
        raise ValueError, "When using the --no_trim option you must have the sfftools installed and must also pass the --use_sfftools option"

    prep_sffs_in_dir(opts.input_dir,
                     opts.output_dir,
                     make_flowgram=opts.make_flowgram,
                     convert_to_flx=opts.convert_to_FLX,
                     use_sfftools=opts.use_sfftools,
                     no_trim=opts.no_trim)
Example #10
0
    def test_prep_sffs_in_dir(self):
        """test_prep_sffs_in_dir should make fasta/qual from sffs."""
        prep_sffs_in_dir(self.sff_dir)

        # Check fna file
        expected_fp = os.path.join(self.sff_dir, 'test.fna')
        observed = open(expected_fp).read()
        expected = (
            '>FA6P1OK01CGMHQ length=48 xy=0892_1356 region=1 run=R_2008_05_28_17_11_38_\n'
            'ATCTGAGCTGGGTCATAGCTGCCTCCGTAGGAGGTGCCTCCCTACGGC\n'
            )
        self.assertEqual(observed, expected)

        # Check qual file
        expected_fp = os.path.join(self.sff_dir, 'test.qual')
        observed = open(expected_fp).read()
        expected = (
            '>FA6P1OK01CGMHQ length=48 xy=0892_1356 region=1 run=R_2008_05_28_17_11_38_\n'
            '32 32 32 32 32 32 32 25 25 21 21 21 28 32 32 31 30 30 32 32 32 33 31 25 18 18 '
            '20 18 32 30 28 23 22 22 24 28 18 19 18 16 16 16 17 18 13 17 27 21\n'
            )
        self.assertEqual(observed, expected)
Example #11
0
def main():
    option_parser, opts, args = parse_command_line_parameters(**script_info)
    
    if opts.output_dir:
        #try to make the output directory
        try:
            mkdir(opts.output_dir)
        except OSError:
            pass
    else:
        opts.output_dir = opts.input_dir
    
    if opts.no_trim and not opts.use_sfftools:
        raise ValueError, "When using the --no_trim option you must have the sfftools installed and must also pass the --use_sfftools option"
        
    prep_sffs_in_dir(
        opts.input_dir,
        opts.output_dir,
        make_flowgram=opts.make_flowgram,
        convert_to_flx=opts.convert_to_FLX,
        use_sfftools=opts.use_sfftools,
        no_trim=opts.no_trim)
Example #12
0
    def test_prep_sffs_in_dir_no_trim(self):
        """test_prep_sffs_in_dir should use the no_trim option only if sffinfo exists."""
        output_dir = mkdtemp()
        gz_output_dir = mkdtemp()

        try:
            check_sffinfo()
            perform_test = True
        except:
            perform_test = False

        if perform_test:
            prep_sffs_in_dir(self.sff_dir,
                             output_dir,
                             make_flowgram=False,
                             convert_to_flx=False,
                             use_sfftools=True,
                             no_trim=True)

            fna_fp = os.path.join(output_dir, 'test.fna')

            self.assertEqual(open(fna_fp).read(), fna_notrim_txt)

            qual_fp = os.path.join(output_dir, 'test.qual')
            self.assertEqual(open(qual_fp).read(), qual_notrim_txt)

            self.assertRaises(TypeError,
                              "gzipped SFF",
                              prep_sffs_in_dir,
                              self.gz_sff_dir,
                              gz_output_dir,
                              make_flowgram=False,
                              convert_to_flx=False,
                              use_sfftools=True,
                              no_trim=True)

            shutil.rmtree(output_dir)
            shutil.rmtree(gz_output_dir)