def do_list_attrs(self,args): with DomDb(self.session_factory, self.ion_mode, self.config) as domdb: aa = domdb.all_attrs() def table(): for k,v in aa.items(): if k not in ['ignore']: yield {'name':k, 'values': ','.join(v)} for line in asciitable(table(),disp_cols=['name','values']): print line
def do_list_attrs(self, args): with DomDb(self.session_factory, self.ion_mode, self.config) as domdb: aa = domdb.all_attrs() def table(): for k, v in aa.items(): if k not in ['ignore']: yield {'name': k, 'values': ','.join(v)} for line in asciitable(table(), disp_cols=['name', 'values']): print line
def list_exps(session,ion_mode): # list experiments, and stats about them def q(): # for all experiments for exp in session.query(Exp).filter(Exp.ion_mode==ion_mode).all(): n_samples = len(exp.samples) # count the samples # count the metabolites n_mtabs = session.query(func.count(Mtab.id)).filter(Mtab.exp==exp).first()[0] # return a row yield { 'name': exp.name, 'samples': n_samples, 'metabolites': n_mtabs } # format the rows nicely for line in asciitable(list(q()),['name','samples','metabolites'],'Database is empty'): print line
def list_samples(session,exp_name,ion_mode): cols = ['name','control'] rows = [] exp = session.query(Exp).filter(Exp.name==exp_name).filter(Exp.ion_mode==ion_mode).first() if exp is None: print 'No such experiment %s' % exp_name return for sample in exp.samples: d = { 'name': sample.name, 'control': sample.control } for a in sorted(sample.attrs,key=lambda a:a.name): if a.name=='ignore': continue if a.name not in cols: cols.append(a.name) d[a.name] = a.value rows.append(d) for line in asciitable(rows,cols,'No samples found'): print line
def list_samples(session, exp_name, ion_mode): cols = ['name', 'control'] rows = [] exp = session.query(Exp).filter(Exp.name == exp_name).filter( Exp.ion_mode == ion_mode).first() if exp is None: print 'No such experiment %s' % exp_name return for sample in exp.samples: d = {'name': sample.name, 'control': sample.control} for a in sorted(sample.attrs, key=lambda a: a.name): if a.name == 'ignore': continue if a.name not in cols: cols.append(a.name) d[a.name] = a.value rows.append(d) for line in asciitable(rows, cols, 'No samples found'): print line
def list_exps(session, ion_mode): # list experiments, and stats about them def q(): # for all experiments for exp in session.query(Exp).filter(Exp.ion_mode == ion_mode).all(): n_samples = len(exp.samples) # count the samples # count the metabolites n_mtabs = session.query(func.count( Mtab.id)).filter(Mtab.exp == exp).first()[0] # return a row yield { 'name': exp.name, 'samples': n_samples, 'metabolites': n_mtabs } # format the rows nicely for line in asciitable(list(q()), ['name', 'samples', 'metabolites'], 'Database is empty'): print line
def _print_config(self): ds = self._render_config() for line in asciitable(ds,disp_cols=['var','value']): print line
def do_dir(self, args): dir = args result = list(list_exp_files(dir)) print 'found files for %d experiments in %s' % (len(result), dir) for line in asciitable(result,disp_cols=['name','data','metadata']): print line
l for l in links_lists if l.startswith(os.path.splitext(layout)[0]) ] layout_to_labels = {} for layout in layouts: layout_to_labels[layout] = [ l for l in labels_lists if l.startswith(os.path.splitext(layout)[0]) ] layouts.sort() print("\n!!!!!!!!!!!!!! Checking file structure !!!!!!!!!!!!!!\n") print( "The following layouts with corresponding links/label lists were detected:" ) asciitable(["layout", "links lists", "labels lists"], [[ l, ", ".join(layout_to_links[l]) if layout_to_links[l] else '-', ", ".join(layout_to_labels[l]) if layout_to_labels[l] else '-' ] for l in layouts]) mismatched_links_lists = [ ll for ll in links_lists if not any(ll.startswith(l[:-4]) for l in layouts) ] if mismatched_links_lists: print( "\n\nFATAL ERROR: The following links lists did not match any layout:\n", mismatched_links_lists, "\n(hint: the name of the links list must start with the full name of the layout to which it belongs.)" ) mismatched_labels_lists = [ ll for ll in labels_lists if not any(ll == l for l in layouts)
def _print_config(self): ds = self._render_config() for line in asciitable(ds, disp_cols=['var', 'value']): print line
def do_dir(self, args): dir = args result = list(list_exp_files(dir)) print 'found files for %d experiments in %s' % (len(result), dir) for line in asciitable(result, disp_cols=['name', 'data', 'metadata']): print line