def run(self):
        ReadPairImporter._check_database(self.db, self.seqrep_id,
                                         self.isolate_id,
                                         self.sequence_replicate_number)
        for filename in self.reads_file_1, self.reads_file_2:
            if not os.path.exists(filename):
                raise Error('Error! Reads file ' + filename +
                            ' not found, Cannot continue.')

        iso_dir = isolate_dir.IsolateDir(self.pipeline_root_dir,
                                         self.sample_id, self.isolate_id)
        iso_dir.make_essential_dirs()

        lock_file = os.path.join(iso_dir.reads_dir,
                                 'import_lock.' + str(self.seqrep_id))
        if os.path.exists(lock_file):
            raise Error('Error! Lock file ' + lock_file +
                        ' found. Cannot continue')

        utils.make_empty_file(lock_file)

        try:
            fqtools.validate([self.reads_file_1, self.reads_file_2])
            ReadPairImporter._copy_reads_file(
                self.reads_file_1,
                iso_dir.reads_filename('original',
                                       self.sequence_replicate_number, 1),
                self.reads_file_md5_1)
            ReadPairImporter._copy_reads_file(
                self.reads_file_2,
                iso_dir.reads_filename('original',
                                       self.sequence_replicate_number, 2),
                self.reads_file_md5_2)
            ReadPairImporter._update_database(self.db,
                                              self.seqrep_id,
                                              self.isolate_id,
                                              self.sequence_replicate_number,
                                              import_status=1)
            os.unlink(self.reads_file_1)
            os.unlink(self.reads_file_2)
            for filename in (self.reads_file_1 + '.md5',
                             self.reads_file_2 + '.md5'):
                if os.path.exists(filename):
                    os.unlink(filename)

            self.db.commit_and_close()
            os.unlink(lock_file)
        except:
            ReadPairImporter._update_database(self.db,
                                              self.seqrep_id,
                                              self.isolate_id,
                                              self.sequence_replicate_number,
                                              import_status=-1)
            self.db.commit_and_close()
            if os.path.exists(lock_file):
                os.unlink(lock_file)
Beispiel #2
0
    def test_validate(self):
        """test validate"""
        bad_file = os.path.join(data_dir, "validate.bad.fq")
        with self.assertRaises(Exception):
            fqtools.validate([bad_file])

        bad_pair_1 = os.path.join(data_dir, "validate.bad.pair.1.fq")
        bad_pair_2 = os.path.join(data_dir, "validate.bad.pair.2.fq")
        with self.assertRaises(Exception):
            fqtools.validate([bad_pair_1, bad_pair_2])

        ok_pair_1 = os.path.join(data_dir, "validate.ok.pair.1.fq")
        ok_pair_2 = os.path.join(data_dir, "validate.ok.pair.2.fq")
        fqtools.validate([ok_pair_1, ok_pair_2])
Beispiel #3
0
    def test_validate(self):
        '''test validate'''
        bad_file = os.path.join(data_dir, 'validate.bad.fq')
        with self.assertRaises(fqtools.Error):
            fqtools.validate([bad_file])

        bad_pair_1 = os.path.join(data_dir, 'validate.bad.pair.1.fq')
        bad_pair_2 = os.path.join(data_dir, 'validate.bad.pair.2.fq')
        with self.assertRaises(fqtools.Error):
            fqtools.validate([bad_pair_1, bad_pair_2])

        ok_pair_1 = os.path.join(data_dir, 'validate.ok.pair.1.fq')
        ok_pair_2 = os.path.join(data_dir, 'validate.ok.pair.2.fq')
        fqtools.validate([ok_pair_1, ok_pair_2])