def test_align_multi(self, ddir, prsr): tsk = FlexTask(**vars(prsr)) tsk.run() with open( os.path.join(ddir, 'output_data', 'reference_alignment_target.csv')) as f: result = f.readlines() with open('tests/data/3sak/3sak_self.csv') as f: template = f.readlines() self.assertEqual(result, template)
def test_analysis(self, ddir, prsr): tsk = FlexTask(**vars(prsr)) tsk.run() with open(os.path.join(ddir, 'output_pdbs', 'replica.pdb')) as f: result = f.readlines() with open('tests/data/1hpw/replica.pdb') as f: template = f.readlines() inds = numpy.random.choice(range(len(result)), 50) result = list(numpy.array(result)[inds]) template = list(numpy.array(template)[inds]) self.assertEqual(result, template)
def test_rmsf(self, ddir, prsr): """Plik tests/data/2gb1.rmsf zawiera znormalizowane do max rmsf z wersji serwerowej.""" if cla.fast: raise SkipTest tsk = FlexTask(**vars(prsr)) tsk.run() with open(os.path.join(ddir, 'plots/RMSF.csv')) as f: rmsf = [float(l.split()[1]) for l in f.readlines()] rmsf = [i / max(rmsf) for i in rmsf] with open('tests/data/2gb1.rmsf') as f: ref = [float(l.split()[1]) for l in f.readlines()] diffs = [i - j for i, j in zip(rmsf, ref)] av = sum(map(abs, diffs)) / len(diffs) self.assertLess(av, .15) # average lower than .15 mavs = [sum(diffs[i:i + 6]) / 6. for i in range(len(diffs) - 6)] self.assertGreater(len([i for i in map(abs, mavs) if i < .2]), .8 * len(diffs))
def test_run_default(self, ddir, prsr): if cla.fast: raise SkipTest tsk = FlexTask(**vars(prsr)) tsk.run() def clc_len(fn): with open(fn) as f: return len(f.raedlines()) csvs = { i: clc_len(ddir + '/plots/' + i) for i in os.listdir(ddir + '/plots') if 'csv' in i } for i, j in csvs.items(): self.assertEqual(j, 129 if i == 'RMSF.csv' else 1000) rmtree(ddir)
def test_default(self, ddir, prsr): tsk = FlexTask(**vars(prsr)) self.assertEqual(tsk.mc_steps, 50) self.assertEqual(tsk.replicas, 1) self.assertEqual(tsk.mc_annealing, 20) self.assertEqual(tsk.mc_cycles, 50) self.assertEqual(tsk.input_protein, '1hpw') self.assertEqual(tsk.protein_restraints, ('ss2', 3, 3.8, 8.0)) self.assertEqual(tsk.work_dir, ddir) self.assertEqual(tsk.verbose, 0)
def test_output_completeness(self, ddir, prsr): tsk = FlexTask(**vars(prsr)) tsk.run() lst = os.listdir(ddir) outSet = { 'output_pdbs': [ '%s_%i.pdb' % (tp, i) for tp in ('model', 'cluster') for i in range(10) ] + ['replica.pdb'], 'output_data': [ 'all_rmsds_A.txt', 'lowest_rmsds_A.txt', 'medoids_rmsds_A.txt', 'reference_alignment_target.csv' ], 'plots': [ '%s.%s' % (n, e) for e in ('csv', 'svg') for n in ('E_RMSD_A_total', 'RMSD_frame_A_replica_0') ] } self.assertEqual(set(lst).intersection(outSet), set(outSet.keys())) for i, j in outSet.items(): lst = os.listdir(ddir + '/' + i) self.assertEqual(set(lst).intersection(j), set(j))
def test_FTinit(self, ddir, prsr): tsk = FlexTask(**vars(prsr))
def test_raises_VE_wrong_reference(self, ddir, prsr): tsk = FlexTask(**vars(prsr)) ftraf = tsk.file_TRAF fseq = tsk.file_SEQ tsk.setup_job() tsk.parse_reference(tsk.reference_pdb) tsk.load_output(ftraf, fseq) tsk.score_results(n_filtered=tsk.filtering_count, number_of_medoids=tsk.clustering_medoids, number_of_iterations=tsk.clustering_iterations) with self.assertRaises(ValueError): tsk.calculate_rmsd()
def test_save_CABS_files(self, ddir, prsr): tsk = FlexTask(**vars(prsr)) tsk.run() self.assertTrue(any('.cbs' in i for i in os.listdir(ddir)))
def test_run(self, ddir, prsr): tsk = FlexTask(**vars(prsr)) tsk.run()