Exemplo n.º 1
0
    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()
Exemplo n.º 2
0
 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)
Exemplo n.º 3
0
    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()
Exemplo n.º 4
0
 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)
Exemplo n.º 5
0
    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
Exemplo n.º 6
0
    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)
Exemplo n.º 7
0
    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()
Exemplo n.º 8
0
 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)
Exemplo n.º 9
0
    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
Exemplo n.º 10
0
    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')
Exemplo n.º 11
0
 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]
Exemplo n.º 12
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')