In [1]:
import sys
import os
sys.path.append(os.path.abspath("../../src/"))
import plot.viz_sequence as viz_sequence
import h5py
import numpy as np
import matplotlib.pyplot as plt
In [2]:
# Path to TF-MoDISco results
tf_name = os.environ["TFM_TFNAME"]
key = os.environ["TFM_KEY"]
base_path = "/users/amtseng/tfmodisco/results/tfmodisco/BPNet"
tfm_results_path = os.path.join(base_path, "BPNet_{0}_ChIPseq/BPNet_{0}_ChIPseq_{1}_tfm.h5".format(tf_name, key))
In [3]:
with h5py.File(tfm_results_path, "r") as f:
    metaclusters = f["metacluster_idx_to_submetacluster_results"]
    num_metaclusters = len(metaclusters.keys())
    for metacluster_i, metacluster_key in enumerate(metaclusters.keys()):
        metacluster = metaclusters[metacluster_key]
        print("Metacluster: %s (%d/%d)" % (metacluster_key, metacluster_i + 1, num_metaclusters))
        print("==========================================")
        if "patterns" not in metacluster["seqlets_to_patterns_result"].keys():
            continue
        patterns = metacluster["seqlets_to_patterns_result"]["patterns"]
        num_patterns = len(patterns["all_pattern_names"][:])
        for pattern_i, pattern_name in enumerate(patterns["all_pattern_names"][:]):
            pattern_name = pattern_name.decode()
            pattern = patterns[pattern_name]
            seqlets = pattern["seqlets_and_alnmts"]["seqlets"]

            print("Pattern: %s (%d/%d)" % (pattern_name, pattern_i + 1, num_patterns))
            print("--------------------------------------")

            print("%d seqlets" % len(seqlets))
            print("Sequence")
            viz_sequence.plot_weights(pattern["sequence"]["fwd"][:])
            print("Hypothetical contributions")
            viz_sequence.plot_weights(pattern["task0_hypothetical_contribs"]["fwd"][:])
            print("Contribution_scores")
            viz_sequence.plot_weights(pattern["task0_contrib_scores"]["fwd"][:])

            pwm = pattern["sequence"]["fwd"][:]
            act_contribs = pattern["task0_contrib_scores"]["fwd"][:]
Metacluster: metacluster_0 (1/1)
==========================================
Pattern: pattern_0 (1/22)
--------------------------------------
5811 seqlets
Sequence
Hypothetical contributions
Contribution_scores
Pattern: pattern_1 (2/22)
--------------------------------------
2745 seqlets
Sequence
Hypothetical contributions
Contribution_scores
Pattern: pattern_2 (3/22)
--------------------------------------
1624 seqlets
Sequence
Hypothetical contributions
Contribution_scores
Pattern: pattern_3 (4/22)
--------------------------------------
1614 seqlets
Sequence
Hypothetical contributions
Contribution_scores
Pattern: pattern_4 (5/22)
--------------------------------------
1088 seqlets
Sequence
Hypothetical contributions
Contribution_scores
Pattern: pattern_5 (6/22)
--------------------------------------
666 seqlets
Sequence
Hypothetical contributions
Contribution_scores
Pattern: pattern_6 (7/22)
--------------------------------------
446 seqlets
Sequence
Hypothetical contributions
Contribution_scores
Pattern: pattern_7 (8/22)
--------------------------------------
393 seqlets
Sequence
Hypothetical contributions
Contribution_scores
Pattern: pattern_8 (9/22)
--------------------------------------
375 seqlets
Sequence
Hypothetical contributions
Contribution_scores
Pattern: pattern_9 (10/22)
--------------------------------------
345 seqlets
Sequence
Hypothetical contributions
Contribution_scores
Pattern: pattern_10 (11/22)
--------------------------------------
317 seqlets
Sequence
Hypothetical contributions
Contribution_scores
Pattern: pattern_11 (12/22)
--------------------------------------
254 seqlets
Sequence
Hypothetical contributions
Contribution_scores
Pattern: pattern_12 (13/22)
--------------------------------------
226 seqlets
Sequence
Hypothetical contributions
Contribution_scores
Pattern: pattern_13 (14/22)
--------------------------------------
168 seqlets
Sequence
Hypothetical contributions
Contribution_scores
Pattern: pattern_14 (15/22)
--------------------------------------
140 seqlets
Sequence
Hypothetical contributions
Contribution_scores
Pattern: pattern_15 (16/22)
--------------------------------------
129 seqlets
Sequence
Hypothetical contributions
Contribution_scores
Pattern: pattern_16 (17/22)
--------------------------------------
114 seqlets
Sequence
Hypothetical contributions
Contribution_scores
Pattern: pattern_17 (18/22)
--------------------------------------
91 seqlets
Sequence
Hypothetical contributions
Contribution_scores
Pattern: pattern_18 (19/22)
--------------------------------------
68 seqlets
Sequence
Hypothetical contributions
Contribution_scores
Pattern: pattern_19 (20/22)
--------------------------------------
61 seqlets
Sequence
Hypothetical contributions
Contribution_scores
Pattern: pattern_20 (21/22)
--------------------------------------
54 seqlets
Sequence
Hypothetical contributions
Contribution_scores
Pattern: pattern_21 (22/22)
--------------------------------------
44 seqlets
Sequence
Hypothetical contributions
Contribution_scores