Пример #1
0
def union_models(models):
    # for each attribute, find the union list of keys and add the
    # missing keys of to each sample (with val = 0)
    if not models:
        return
    for attr in models[0].get_attrs_depth1():
        key_lists = [m[attr].keys() for m in models]
        union_keys = lcommon.union_lists(key_lists)
        for k in union_keys:
            for m in models:
                if k not in m[attr]:
                    m[attr][k] = 0.0
    for attr in models[0].get_attrs_depth2():
        key_lists = [m[attr].keys() for m in models]
        union_keys = lcommon.union_lists(key_lists)
        for k in union_keys:
            for m in models:
                if k not in m[attr]:
                    m[attr][k] = {}
        for k in union_keys:
            key_lists2 = [m[attr][k].keys() for m in models]
            union_keys2 = lcommon.union_lists(key_lists2)
            for k2 in union_keys2:
                for m in models:
                    if k2 not in m[attr][k]:
                        m[attr][k][k2] = 0.0
Пример #2
0
def draw_plots(name2obj, outdir):
    vfile = os.path.join(outdir, "v")
    vgenes = union_lists([obj.type2gene2clones['v'].keys() for obj in name2obj.values()])
    draw_gene_usage(name2obj, "clones", "v", vfile, vgenes)

    jfile = os.path.join(outdir, "j")
    jgenes = union_lists([obj.type2gene2clones['j'].keys() for obj in name2obj.values()])
    draw_gene_usage(name2obj, "clones", "j", jfile, jgenes)

    lfile = os.path.join(outdir, "lendist")
    draw_lendist(name2obj, "clones", lfile)