Beispiel #1
0
    def test_compile_database(self):
        me = Database()
        me.output = self.tmpdir

        # don't compile
        me.compile = 'none'
        me.compile_database()
        self.assertListEqual(listdir(self.tmpdir), [])

        # get database files
        copy(join(self.datadir, 'DnaK', 'linear.faa'),
             join(self.tmpdir, 'db.faa'))
        copy(join(self.datadir, 'DnaK', 'prot2tid.txt'),
             join(self.tmpdir, 'taxon.map'))
        makedirs(join(self.tmpdir, 'taxdump'))
        copy(join(self.datadir, 'DnaK', 'taxdump', 'nodes.dmp'),
             join(self.tmpdir, 'taxdump', 'nodes.dmp'))
        copy(join(self.datadir, 'DnaK', 'taxdump', 'names.dmp'),
             join(self.tmpdir, 'taxdump', 'names.dmp'))
        with open(join(self.tmpdir, 'taxon.map'), 'r') as f:
            me.taxonmap = dict(x.split('\t') for x in f.read().splitlines())

        # set parameters
        me.threads = 1
        me.tmpdir = self.tmpdir
        me.makeblastdb = 'makeblastdb'
        me.diamond = 'diamond'

        # compile blast database
        me.compile = 'blast'
        me.compile_database()
        self.assertTrue(isdir(join(self.tmpdir, 'blast')))
        for ext in ('phr', 'pin', 'pog', 'psd', 'psi', 'psq'):
            self.assertTrue(isfile(join(self.tmpdir, 'blast', f'db.{ext}')))
        rmtree(join(self.tmpdir, 'blast'))

        # compile diamond database
        me.compile = 'diamond'
        me.compile_database()
        self.assertTrue(isdir(join(self.tmpdir, 'diamond')))
        self.assertTrue(isfile(join(self.tmpdir, 'diamond', 'db.dmnd')))
        rmtree(join(self.tmpdir, 'diamond'))

        # compile both databases
        me.compile = 'both'
        me.compile_database()
        self.assertTrue(isdir(join(self.tmpdir, 'blast')))
        for ext in ('phr', 'pin', 'pog', 'psd', 'psi', 'psq'):
            self.assertTrue(isfile(join(self.tmpdir, 'blast', f'db.{ext}')))
        self.assertTrue(isdir(join(self.tmpdir, 'diamond')))
        self.assertTrue(isfile(join(self.tmpdir, 'diamond', 'db.dmnd')))
        rmtree(join(self.tmpdir, 'blast'))
        rmtree(join(self.tmpdir, 'diamond'))

        # clean up
        remove(join(self.tmpdir, 'db.faa'))
        remove(join(self.tmpdir, 'taxon.map'))
        rmtree(join(self.tmpdir, 'taxdump'))
Beispiel #2
0
 def test_build_diamond_db(self):
     me = Database()
     me.output = self.tmpdir
     me.diamond = 'diamond'
     me.threads = 1
     me.tmpdir = self.tmpdir
     copyfile(join(self.datadir, 'DnaK', 'linear.faa'),
              join(self.tmpdir, 'db.faa'))
     with open(join(self.datadir, 'DnaK', 'prot2tid.txt'), 'r') as f:
         me.taxonmap = dict(x.split('\t') for x in f.read().splitlines())
     makedirs(join(self.tmpdir, 'taxdump'))
     copyfile(join(self.datadir, 'DnaK', 'taxdump', 'nodes.dmp'),
              join(self.tmpdir, 'taxdump', 'nodes.dmp'))
     me.build_diamond_db()
     self.assertTrue(isdir(join(self.tmpdir, 'diamond')))
     self.assertTrue(isfile(join(self.tmpdir, 'diamond', 'db.dmnd')))
     rmtree(join(self.tmpdir, 'diamond'))
     remove(join(self.tmpdir, 'db.faa'))
     remove(join(self.tmpdir, 'taxdump', 'nodes.dmp'))