Exemplo n.º 1
0
 def test_sort_objs_by_group(self):
     group2avr = lcommon.get_group_avr(self.name2obj, self.group2names)
     sorted_objs = lcommon.sort_objs_by_group(self.name2obj,
                                     self.group2names, True, group2avr)
     self.assertEqual(len(sorted_objs), 5)
     names = ['sam1', 'sam2', 'g1_Avr', 'sam3', 'g2_Avr']
     self.assertEqual(names, [o[0] for o in sorted_objs])
     n2o = self.name2obj
     objs = [n2o['sam1'], n2o['sam2'], group2avr['g1'][1], n2o['sam3'],
                                                     group2avr['g2'][1]]
     self.assertEqual(objs, [o[1] for o in sorted_objs])
     #Without adding average group
     sorted_objs = lcommon.sort_objs_by_group(self.name2obj,
                                     self.group2names, False, group2avr)
     self.assertEqual(len(sorted_objs), 3)
     names = ['sam1', 'sam2', 'sam3']
     self.assertEqual(names, [o[0] for o in sorted_objs])
     n2o = self.name2obj
     objs = [n2o['sam1'], n2o['sam2'], n2o['sam3']]
     self.assertEqual(objs, [o[1] for o in sorted_objs])
Exemplo n.º 2
0
def repsize_table(name2sample, outfile, group2avr={}, group2names={}, tex=False):
    # Sort the samples by group and/or size
    if len(group2avr) > 0:
        avrnames = [gavr[0] for gavr in group2avr.values()]
        sortedsamples = libcommon.sort_objs_by_group(name2sample, group2names,
                                                     True, group2avr)
    else:
        avrnames = []
        sortedsamples = libcommon.sort_dict_by_value(name2sample,
                                                     keyfunc=lambda item: item[0].size)
        #sortedsamples = sorted(name2sample.values(), key=lambda s: s.size,
        #                                             reverse=True)
    # Write to output file
    if tex:
        repsize_latex(sortedsamples, outfile, avrnames)
    else:
        repsize_text(sortedsamples, outfile)
Exemplo n.º 3
0
def table(name2obj, outfile, colfields, group2avr={}, group2names={},
          tex=False, keyattr='numclone', caption='', label='', islist=False):
    # rows=samples; cols=colfields;
    if not name2obj or not colfields:
        return
    # Sort the samples by group and/or size
    keyfunc = None
    listattr = None
    if islist or keyattr not in colfields:
        listattr = keyattr
    else:
        keyfunc = lambda item: item[0][keyattr]
    
    if group2avr:
        sortedobjs = libcommon.sort_objs_by_group(name2obj, group2names,
                                           True, group2avr, keyfunc=keyfunc)
    else:
        sortedobjs = libcommon.sort_dict_by_value(name2obj, keyfunc=keyfunc)

    if tex:
        table_latex(sortedobjs, outfile, colfields, caption, label, listattr)
    else:
        table_text(sortedobjs, outfile, colfields, listattr)