def setUp(self): RnaseqGlobals.initialize(__file__, testing=True) templated.template_dir=RnaseqGlobals.root_dir()+"/t/fixtures/templates" readset_file=RnaseqGlobals.root_dir()+"/t/fixtures/readsets/readset1.syml" self.readset=Readset.load(readset_file)[0] self.pipeline=Pipeline(name='juan', readset=self.readset).load_steps() session=RnaseqGlobals.get_session() # delete all pre-existing pipeline objects from the db: plist=session.query(Pipeline) for p in plist: session.delete(p) session.commit()
def setUp(self): templated.template_dir=os.path.normpath(os.path.abspath(__file__)+"/../../fixtures/templates") RnaseqGlobals.initialize(__file__, testing=True) RnaseqGlobals.set_conf_value('force',True) RnaseqGlobals.set_conf_value('silent',True) readset=Readset.load(RnaseqGlobals.root_dir()+'/t/fixtures/readsets/readset1.syml')[0] self.pipeline=Pipeline(name='filter', readset=readset)
def setUp(self): RnaseqGlobals.initialize(__file__, testing=True) templated.template_dir=RnaseqGlobals.root_dir()+'/t/fixtures/templates' os.chdir(RnaseqGlobals.root_dir()+'/t/fixtures/readsets') filename=RnaseqGlobals.root_dir()+'/t/fixtures/readsets/readset_rel_glob.syml' rlist=Readset.load(filename) readset=rlist[0] self.readset=readset self.session=RnaseqGlobals.get_session() rlist=self.session.query(Readset) for rs in rlist: self.session.delete(rs) self.session.commit()
def setUp(self): templated.template_dir=os.path.normpath(os.path.abspath(__file__)+"/../../fixtures/templates") RnaseqGlobals.initialize(__file__, testing=True) readset_file=RnaseqGlobals.root_dir()+'/t/fixtures/readsets/paired1.syml' self.readset=Readset.load(filename=readset_file)[0] self.pipeline=Pipeline(name='test_newstep', readset=self.readset)
def sh_script(self, context, **args): if 'echo_name' in args and args['echo_name']: echo_part="\n# step %s:\n" % self.name echo_part+="echo step %s 1>&2" % self.name else: echo_part='' try: usage=self.usage(context) except KeyError as ke: raise ConfigError("missing config item '%s'" % ke) # check for missing attrs after calling step.usage() missing_attrs=self.missing_required_attrs() if len(missing_attrs) > 0: raise ConfigError("step %s: missing attributes: %s" % (self.name, ', '.join(missing_attrs))) vars={} vars.update(self.__dict__) vars.update(self.pipeline.readset) if not self.is_prov_step: vars.update(self.pipeline[self.name]) vars['inputs']=context.inputs[self.name] vars['outputs']=context.outputs[self.name] vars['pipeline']=self.pipeline vars['pipeline_run_id']=context.pipeline_run_id #vars['step_run_id']=context.step_runs[self.name].id #vars['next_step_run_id']=context.step_runs[self.pipeline.step_after(step.name)].id vars['config']=RnaseqGlobals.config vars['readset']=self.pipeline.readset # need to add shell variables for 'set': (in cufflinks.s_?.sh scripts) # currently root_dir, programs, reads_file, ID, format, readlen # but really, the pipeline should specify these? # or only things that are truly universal vars['root_dir']=RnaseqGlobals.root_dir() # add readset exports: readset=self.pipeline.readset for attr in readset.exports: try: vars[attr]=getattr(readset, attr) except AttributeError: vars[attr]='' #warn("%s.sh_script: no '%s' readset attribute!" % (self.name, attr)) # add self.exports: try: export_list=self.exports except: export_list=[] for attr in export_list: vars[attr]=getattr(self,attr) try: script_part=evoque_template(usage, vars) except Exception as e: raise ConfigError("step %s: %s" % (self.name, e)) script="\n".join([echo_part,script_part]) # tried using echo_part+sh_script, got weird '>' -> '>' substitutions return script
def test_list(self): readset_file=RnaseqGlobals.root_dir()+'/t/fixtures/readsets/readset12.syml' rlist=Readset.load(readset_file) self.assertEqual(type(rlist),type([])) self.assertEqual(len(rlist),6) for rs in rlist: self.assertEqual(rs.org, 'mouse') self.assertEqual(rs.readlen, 75) self.assertEqual(os.path.dirname(rs.reads_file), self.readset_dir) self.assertTrue(re.match('s_\d\d?_\d_sequence.txt',os.path.basename(rs.reads_file))) self.assertTrue(re.search(rs.label,os.path.basename(rs.reads_file))) self.assertEqual(rs.label,rs.description)
def setUp(self): templated.template_dir=os.path.normpath(os.path.abspath(__file__)+"/../../fixtures/templates") RnaseqGlobals.initialize(__file__, testing=True) readset_file=os.path.join(RnaseqGlobals.root_dir(),'t','fixtures','readsets','readset1.syml') self.readset=Readset.load(readset_file)[0] self.pipeline=Pipeline(name='juan', readset=self.readset).load_steps() session=RnaseqGlobals.get_session() ps=session.query(Pipeline).all() for p in ps: session.delete(p) session.commit()
def test_glob_rel(self): readset_file=RnaseqGlobals.root_dir()+'/t/fixtures/readsets/readset_rel_glob.syml' rlist=Readset.load(readset_file) self.assertEqual(len(rlist),1) filelist=rlist[0].reads_files self.assertEqual(len(filelist), 3) for i in range(1,3): filename="s_%d_export.txt" % i found=False for f in filelist: if re.search(filename, f): found=True break self.assertTrue(found)
def verify_exe(self): if not hasattr(self,'exe'): return True dir_list=RnaseqGlobals.conf_value('rnaseq', 'path').split(":") dir_list.extend([os.path.join(RnaseqGlobals.root_dir(),'programs')]) if exists_on_path(self.exe, dir_list, os.X_OK): return True # didn't find executable directly, see if there's an interpreter: if hasattr(self,'interpreter'): return exists_on_path(self.interpreter, dir_list, os.X_OK) and \ exists_on_path(self.exe, dir_list, os.R_OK) # couldn't find self.exe, no self.interpreter: return False
def test_dict(self): dir=RnaseqGlobals.root_dir()+'/t/fixtures/readsets' os.chdir(dir) filename=os.path.join(dir,'readset_rel_glob.syml') rlist=Readset.load(filename) readset=rlist[0] self.assertRegexpMatches(readset['reads_file'], dir+'/s_\d_export.txt') self.assertEqual(readset['description'],'this is a sample readset (fixture)') self.assertEqual(readset['org'],'mouse') self.assertEqual(readset['readlen'],75) self.assertEqual(readset['working_dir'],os.path.join(dir,'rnaseq_wf')) vars={'this': 'that'} readset.update(vars) self.assertEqual(readset['this'],'that')
def setUp(self): templated.template_dir=os.path.normpath(os.path.abspath(__file__)+"/../../fixtures/templates") RnaseqGlobals.initialize(__file__, testing=True) self.readset=Readset.load(RnaseqGlobals.root_dir()+'/t/fixtures/readsets/readset1.syml')[0]
def setUp(self): RnaseqGlobals.initialize(__file__, testing=True) #templated.template_dir=RnaseqGlobals.root_dir()+"/../../fixtures/templates" self.readset_dir=os.path.join(RnaseqGlobals.root_dir(),'t/fixtures/readsets')