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')
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())