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'))
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'))