Ejemplo n.º 1
0
    def test_get_process_target_gene_cmd(self):
        preprocessed_data = PreprocessedData(1)
        params = ProcessedSortmernaParams(1)

        obs_cmd, obs_output_dir = _get_process_target_gene_cmd(
            preprocessed_data, params)

        _, ref_dir = get_mountpoint('reference')[0]
        _, preprocessed_dir = get_mountpoint('preprocessed_data')[0]

        exp_cmd = ("pick_closed_reference_otus.py -i {}1_seqs.fna -r "
                   "{}GreenGenes_13_8_97_otus.fasta -o {} -p placeholder -t "
                   "{}GreenGenes_13_8_97_otu_taxonomy.txt".format(
                       preprocessed_dir, ref_dir, obs_output_dir, ref_dir))

        obs_tokens = obs_cmd.split()[::-1]
        exp_tokens = exp_cmd.split()[::-1]
        self.assertEqual(len(obs_tokens), len(exp_tokens))
        while obs_tokens:
            o_t = obs_tokens.pop()
            e_t = exp_tokens.pop()
            if o_t == '-p':
                # skip parameters file
                obs_tokens.pop()
                exp_tokens.pop()
            else:
                self.assertEqual(o_t, e_t)
Ejemplo n.º 2
0
 def test_generate_param_str(self):
     params = ProcessedSortmernaParams(1)
     obs = generate_param_str(params)
     exp = ("<b>Reference:</b> Greengenes 13_8<br/>"
            "<b>similarity:</b> 0.97<br/>"
            "<b>sortmerna_e_value:</b> 1.0<br/>"
            "<b>sortmerna_max_pos:</b> 10000<br/>"
            "<b>threads:</b> 1<br/>"
            "<b>sortmerna_coverage:</b> 0.97")
     self.assertEqual(obs, exp)
Ejemplo n.º 3
0
    def test_to_file(self):
        params = ProcessedSortmernaParams(1)
        fd, fp = mkstemp()
        close(fd)
        with open(fp, 'w') as f:
            params.to_file(f)
        with open(fp, 'U') as f:
            obs = f.read()

        self.assertEqual(obs, EXP_SMR_PARAMS_FILE)
Ejemplo n.º 4
0
    def test_insert_processed_data_target_gene(self):
        fd, fna_fp = mkstemp(suffix='_seqs.fna')
        close(fd)
        fd, qual_fp = mkstemp(suffix='_seqs.qual')
        close(fd)
        filepaths = [
            (fna_fp, convert_to_id('preprocessed_fasta', 'filepath_type')),
            (qual_fp, convert_to_id('preprocessed_fastq', 'filepath_type'))
        ]

        preprocessed_data = PreprocessedData.create(
            Study(1),
            "preprocessed_sequence_illumina_params",
            1,
            filepaths,
            data_type="18S")

        params = ProcessedSortmernaParams(1)
        pick_dir = mkdtemp()
        path_builder = partial(join, pick_dir)
        db_path_builder = partial(join, get_mountpoint('processed_data')[0][1])

        # Create a placeholder for the otu table
        with open(path_builder('otu_table.biom'), 'w') as f:
            f.write('\n')

        # Create a placeholder for the directory
        mkdir(path_builder('sortmerna_picked_otus'))

        # Create the log file
        fd, fp = mkstemp(dir=pick_dir, prefix='log_', suffix='.txt')
        close(fd)
        with open(fp, 'w') as f:
            f.write('\n')

        _insert_processed_data_target_gene(preprocessed_data, params, pick_dir)

        new_id = get_count('qiita.processed_data')

        # Check that the files have been copied
        db_files = [
            db_path_builder("%s_otu_table.biom" % new_id),
            db_path_builder("%s_sortmerna_picked_otus" % new_id),
            db_path_builder("%s_%s" % (new_id, basename(fp)))
        ]
        for fp in db_files:
            self.assertTrue(exists(fp))

        # Check that a new preprocessed data has been created
        self.assertTrue(
            self.conn_handler.execute_fetchone(
                "SELECT EXISTS(SELECT * FROM qiita.processed_data WHERE "
                "processed_data_id=%s)", (new_id, ))[0])
Ejemplo n.º 5
0
 def test_to_str(self):
     params = ProcessedSortmernaParams(1)
     obs = params.to_str()
     exp = ("--similarity 0.97 --sortmerna_coverage 0.97 "
            "--sortmerna_e_value 1.0 --sortmerna_max_pos 10000 --threads 1")
     self.assertEqual(obs, exp)