Ejemplo n.º 1
0
 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
Ejemplo n.º 2
0
    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
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
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
Ejemplo n.º 5
0
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
Ejemplo n.º 6
0
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
Ejemplo n.º 7
0
 def _print_config(self):
     ds = self._render_config()
     for line in asciitable(ds,disp_cols=['var','value']):
         print line
Ejemplo n.º 8
0
 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
Ejemplo n.º 9
0
        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)
Ejemplo n.º 10
0
 def _print_config(self):
     ds = self._render_config()
     for line in asciitable(ds, disp_cols=['var', 'value']):
         print line
Ejemplo n.º 11
0
 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