Example #1
0
def model_makeplots(indir, outdir):
    objs = lcommon.load_pickledir(indir)
    if not objs:
        return
    rcommon.union_models(objs)
    for attr in objs[0].get_attrs_depth1():
        outbase = os.path.join(outdir, attr)
        k2ydata = model_get_ydata(objs, attr)
        gene_attrs = ['v', 'd', 'j']
        if attr in gene_attrs:
            xlabels = lcommon.sort_by_gene_number(k2ydata.keys())
            rcmp.diff_plot(k2ydata, outbase, xlabels, attr.upper(),
                           ylabel='Frequency')
        else:
            rcmp.diff_plot(k2ydata, outbase, label=attr.upper(), xmin=-0.5,
                           xmax=30.5, ylabel='Frequency')
    for attr in objs[0].get_attrs_depth2():
        k_k2ydata = model_get_ydata2(objs, attr)
        for k, k2ydata in k_k2ydata.iteritems():
            if not isinstance(k, str):
                k = str(k)
            outbase = os.path.join(outdir, "%s_%s" % (attr, k))
            if attr in ['v2del', 'j2del', 'd2del']:
                rcmp.diff_plot(k2ydata, outbase, label=attr.upper(), xmin=-0.5,
                          xmax=16.5, ylabel='Frequency')
            else:
                rcmp.diff_plot(k2ydata, outbase, label=attr.upper(),
                               ylabel='Frequency')
Example #2
0
def model_diff(indir1, indir2, outdir):
    # indir1 contains sam1_model.pickle, sam2_model.pickle ...
    # indir2: similarly to indir1
    name1 = os.path.basename(indir1.rstrip("/"))
    name2 = os.path.basename(indir2.rstrip("/"))
    objs1 = lcommon.load_pickledir(indir1)
    objs2 = lcommon.load_pickledir(indir2)
    rcommon.union_models(objs1 + objs2)

    # statistic for each attr for differential usage:
    statsdir = os.path.join(outdir, "stat_tests")
    system("mkdir -p %s" % statsdir)
    model_diff_signi_test(objs1, objs2, statsdir)
    # if True:  # HACK
    #    return

    med1 = rcommon.model_get_median(objs1)
    # med2 = model_get_median(objs2)
    for attr in med1.get_attrs_depth1():
        outbase1 = os.path.join(outdir, "%s_%s_cmp2_%s" % (attr, name2, name1))
        k2diffs1 = diff_sample_model(med1, objs2, attr)
        gene_attrs = ["v", "d", "j", "dj"]
        if attr in gene_attrs:
            if attr == "dj":
                xlabels = sorted(k2diffs1.keys())
            else:
                xlabels = lcommon.sort_by_gene_number(k2diffs1.keys())
            diff_plot(k2diffs1, outbase1, xlabels, attr.upper(), ymin=-0.1, ymax=0.1)
        else:
            diff_plot(k2diffs1, outbase1, label=attr.upper(), xmin=-0.5, xmax=30.5, ymin=-0.02, ymax=0.05)
        # outbase2 = os.path.join(outdir, "%s_%s_cmp2_%s" % (attr, name1, name2))
        # k2diffs2 = diff_sample_model(med2, objs1, attr)
        # diff_plot(k2diffs2, outbase2)
    for attr in med1.get_attrs_depth2():
        k_k2diffs1 = diff_sample_model2(med1, objs2, attr)
        for k, k2diffs1 in k_k2diffs1.iteritems():
            if not isinstance(k, str):
                k = str(k)
            outbase1 = os.path.join(outdir, "%s_%s_%s_cmp2_%s" % (attr, k, name2, name1))
            if attr in ["v2del", "j2del", "d2del"]:
                diff_plot(k2diffs1, outbase1, label=attr.upper(), xmin=-0.5, xmax=16.5)
            else:
                diff_plot(k2diffs1, outbase1, label=attr.upper())