Esempio n. 1
0
def main(arguments):
    if not arguments.stub:
        arguments.stub = os.path.basename(
                os.path.splitext(arguments.sff_file)[0])

    pnoise_stub = arguments.stub + '-pnoise'
    targets = [pnoise_stub + '_cd.fa', pnoise_stub + '.mapping']

    runner = run.NoiseRunner(targets, temp_base=arguments.temp_dir,
        mpi_flags=arguments.mpi_args)

    with runner:
        # Clean
        logging.info("Extracting clean flows")
        raw_file = runner.path_join(arguments.stub + '.raw')
        with open(raw_file, 'w') as fp:
            sff2raw.sff_to_raw(arguments.sff_file, fp)
        clean_dat = runner.path_join(arguments.stub + '.dat')
        with open(raw_file) as raw_fp:
            reader = anoiseio.AnoiseRawReader(raw_fp)
            with open(runner.path_join(arguments.stub + '.fa'), 'w') as fa_fp:
                passed, failed = clean.invoke(reader, fa_fp, clean_dat,
                        arguments.primer, arguments.min_flows,
                        arguments.max_flows, arguments.max_empty)

                if not passed:
                    raise AssertionError(
                            "No sequences passed flowgram cleaning!")

        logging.info("Starting PyroNoise")
        run_pyronoise(runner, clean_dat, arguments.sigma,
                arguments.cutoff, arguments.stub, arguments.use_m,
                lookup_name=arguments.lookup_file)
Esempio n. 2
0
 def test_run(self):
     with tempfile.NamedTemporaryFile(prefix='test.raw', delete=False) as tf:
         try:
             sff2raw.sff_to_raw(self.infile, tf, 'test.raw')
             with open(tf.name) as tf:
                 v = list(tf)[1:]
         finally:
             os.remove(tf.name)
     self.assertEqual(self.expected, v)
Esempio n. 3
0
 def test_run(self):
     with tempfile.NamedTemporaryFile(prefix='test.raw',
                                      delete=False) as tf:
         try:
             sff2raw.sff_to_raw(self.infile, tf, 'test.raw')
             with open(tf.name) as tf:
                 v = list(tf)[1:]
         finally:
             os.remove(tf.name)
     self.assertEqual(self.expected, v)
Esempio n. 4
0
def main(arguments):
    if not arguments.stub:
        arguments.stub = os.path.basename(
            os.path.splitext(arguments.sff_file)[0])

    pnoise_stub = arguments.stub + '-pnoise'
    targets = [pnoise_stub + '_cd.fa', pnoise_stub + '.mapping']

    runner = run.NoiseRunner(targets,
                             temp_base=arguments.temp_dir,
                             mpi_flags=arguments.mpi_args)

    with runner:
        # Clean
        logging.info("Extracting clean flows")
        raw_file = runner.path_join(arguments.stub + '.raw')
        with open(raw_file, 'w') as fp:
            sff2raw.sff_to_raw(arguments.sff_file, fp)
        clean_dat = runner.path_join(arguments.stub + '.dat')
        with open(raw_file) as raw_fp:
            reader = anoiseio.AnoiseRawReader(raw_fp)
            with open(runner.path_join(arguments.stub + '.fa'), 'w') as fa_fp:
                passed, failed = clean.invoke(reader, fa_fp, clean_dat,
                                              arguments.primer,
                                              arguments.min_flows,
                                              arguments.max_flows,
                                              arguments.max_empty)

                if not passed:
                    raise AssertionError(
                        "No sequences passed flowgram cleaning!")

        logging.info("Starting PyroNoise")
        run_pyronoise(runner,
                      clean_dat,
                      arguments.sigma,
                      arguments.cutoff,
                      arguments.stub,
                      arguments.use_m,
                      lookup_name=arguments.lookup_file)