In [1]:
import os
import sys
sys.path.append(os.path.abspath("/users/amtseng/tfmodisco/src/"))
from tfmodisco.run_tfmodisco import import_shap_scores, import_tfmodisco_results
from motif.read_motifs import pfm_info_content, pfm_to_pwm, trim_motif_by_ic
from motif.match_motifs import match_motifs_to_database
from util import figure_to_vdom_image
import plot.viz_sequence as viz_sequence
import numpy as np
import h5py
import matplotlib.pyplot as plt
import vdom.helpers as vdomh
from IPython.display import display

Define constants and paths

In [2]:
# Define parameters/fetch arguments
tf_name = os.environ["TFM_TF_NAME"]
shap_scores_path = os.environ["TFM_SHAP_PATH"]
tfm_results_path = os.environ["TFM_TFM_PATH"]
hyp_score_key = os.environ["TFM_HYP_SCORE_KEY"]
if "TFM_MOTIF_CACHE" in os.environ:
    tfm_motifs_cache_dir = os.environ["TFM_MOTIF_CACHE"]
else:
    tfm_motifs_cache_dir = None

print("TF name: %s" % tf_name)
print("DeepSHAP scores path: %s" % shap_scores_path)
print("TF-MoDISco results path: %s" % tfm_results_path)
print("Importance score key: %s" % hyp_score_key)
print("Saved TF-MoDISco-derived motifs cache: %s" % tfm_motifs_cache_dir)
TF name: CEBPB
DeepSHAP scores path: /users/amtseng/tfmodisco/results/importance_scores/multitask_profile/CEBPB_multitask_profile_fold7/CEBPB_multitask_profile_fold7_imp_scores.h5
TF-MoDISco results path: /users/amtseng/tfmodisco/results/tfmodisco/multitask_profile/CEBPB_multitask_profile_fold7/CEBPB_multitask_profile_fold7_profile_tfm.h5
Importance score key: profile_hyp_scores
Saved TF-MoDISco-derived motifs cache: /users/amtseng/tfmodisco/results/reports/tfmodisco_results//cache/multitask_profile/CEBPB_multitask_profile_fold7/CEBPB_multitask_profile_fold7_profile
In [3]:
# Define paths and constants
input_length = 2114
shap_score_center_size = 400
In [4]:
if tfm_motifs_cache_dir:
    os.makedirs(tfm_motifs_cache_dir, exist_ok=True)

Import SHAP scores and TF-MoDISco results

In [5]:
# Import SHAP coordinates and one-hot sequences
hyp_scores, _, one_hot_seqs, shap_coords = import_shap_scores(shap_scores_path, hyp_score_key, center_cut_size=shap_score_center_size)
# This cuts the sequences/scores off just as how TF-MoDISco saw them, but the coordinates are uncut
Importing SHAP scores: 100%|██████████| 273/273 [05:12<00:00,  1.14s/it]
In [6]:
# Import the TF-MoDISco results object
tfm_obj = import_tfmodisco_results(tfm_results_path, hyp_scores, one_hot_seqs, shap_score_center_size)

Plot some SHAP score tracks

Plot the central region of some randomly selected actual importance scores

In [7]:
plot_slice = slice(int(shap_score_center_size / 4), int(3 * shap_score_center_size / 4))
for index in np.random.choice(hyp_scores.shape[0], size=5, replace=False):
    viz_sequence.plot_weights((hyp_scores[index] * one_hot_seqs[index])[plot_slice], subticks_frequency=100)

Plot TF-MoDISco results

Plot all motifs by metacluster

In [8]:
motif_pfms, motif_hcwms, motif_cwms = [], [], []  # Save the trimmed PFMs, hCWMs, and CWMs
motif_pfms_short = []  # PFMs that are even more trimmed (for TOMTOM)
num_seqlets = []  # Number of seqlets for each motif
motif_seqlets = []  # Save seqlets of each motif
metaclusters = tfm_obj.metacluster_idx_to_submetacluster_results
num_metaclusters = len(metaclusters.keys())
if tfm_motifs_cache_dir:
    motif_hdf5 = h5py.File(os.path.join(tfm_motifs_cache_dir, "all_motifs.h5"), "w")
for metacluster_i, metacluster_key in enumerate(metaclusters.keys()):
    metacluster = metaclusters[metacluster_key]
    display(vdomh.h3("Metacluster %d/%d" % (metacluster_i + 1, num_metaclusters)))
    patterns = metacluster.seqlets_to_patterns_result.patterns
    if not patterns:
        break
    motif_pfms.append([])
    motif_hcwms.append([])
    motif_cwms.append([])
    motif_pfms_short.append([])
    num_seqlets.append([])
    motif_seqlets.append([])
    num_patterns = len(patterns)
    for pattern_i, pattern in enumerate(patterns):
        seqlets = pattern.seqlets
        display(vdomh.h4("Pattern %d/%d" % (pattern_i + 1, num_patterns)))
        display(vdomh.p("%d seqlets" % len(seqlets)))
        
        pfm = pattern["sequence"].fwd
        hcwm = pattern["task0_hypothetical_contribs"].fwd
        cwm = pattern["task0_contrib_scores"].fwd
        
        pfm_fig = viz_sequence.plot_weights(pfm, subticks_frequency=10, return_fig=True)
        hcwm_fig = viz_sequence.plot_weights(hcwm, subticks_frequency=10, return_fig=True)
        cwm_fig = viz_sequence.plot_weights(cwm, subticks_frequency=10, return_fig=True)
        pfm_fig.tight_layout()
        hcwm_fig.tight_layout()
        cwm_fig.tight_layout()
        
        motif_table = vdomh.table(
            vdomh.tr(
                vdomh.td("Sequence (PFM)"),
                vdomh.td(figure_to_vdom_image(pfm_fig))
            ),
            vdomh.tr(
                vdomh.td("Hypothetical contributions (hCWM)"),
                vdomh.td(figure_to_vdom_image(hcwm_fig))
            ),
            vdomh.tr(
                vdomh.td("Actual contributions (CWM)"),
                vdomh.td(figure_to_vdom_image(cwm_fig))
            )
        )
        display(motif_table)
        plt.close("all")  # Remove all standing figures
        
        # Trim motif based on information content
        short_trimmed_pfm = trim_motif_by_ic(pfm, pfm)
        motif_pfms_short[-1].append(short_trimmed_pfm)
        
        # Expand trimming to +/- 4bp on either side
        trimmed_pfm = trim_motif_by_ic(pfm, pfm, pad=4)
        trimmed_hcwm = trim_motif_by_ic(pfm, hcwm, pad=4)
        trimmed_cwm = trim_motif_by_ic(pfm, cwm, pad=4)
        
        motif_pfms[-1].append(trimmed_pfm)
        motif_hcwms[-1].append(trimmed_hcwm)
        motif_cwms[-1].append(trimmed_cwm)
        
        num_seqlets[-1].append(len(seqlets))
        
        if tfm_motifs_cache_dir:
            # Save results and figures
            motif_id = "%d_%d" % (metacluster_i, pattern_i)
            pfm_fig.savefig(os.path.join(tfm_motifs_cache_dir, motif_id + "_pfm_full.png"))
            hcwm_fig.savefig(os.path.join(tfm_motifs_cache_dir, motif_id + "_hcwm_full.png"))
            cwm_fig.savefig(os.path.join(tfm_motifs_cache_dir, motif_id + "_cwm_full.png"))
            motif_dset = motif_hdf5.create_group(motif_id)
            motif_dset.create_dataset("pfm_full", data=pfm, compression="gzip")
            motif_dset.create_dataset("hcwm_full", data=hcwm, compression="gzip")
            motif_dset.create_dataset("cwm_full", data=cwm, compression="gzip")
            motif_dset.create_dataset("pfm_trimmed", data=trimmed_pfm, compression="gzip")
            motif_dset.create_dataset("hcwm_trimmed", data=trimmed_hcwm, compression="gzip")
            motif_dset.create_dataset("cwm_trimmed", data=trimmed_cwm, compression="gzip")
            motif_dset.create_dataset("pfm_short_trimmed", data=short_trimmed_pfm, compression="gzip")
if tfm_motifs_cache_dir:
    motif_hdf5.close()

Metacluster 1/2

Pattern 1/12

10069 seqlets

Sequence (PFM)
Hypothetical contributions (hCWM)
Actual contributions (CWM)

Pattern 2/12

739 seqlets

Sequence (PFM)
Hypothetical contributions (hCWM)
Actual contributions (CWM)

Pattern 3/12

596 seqlets

Sequence (PFM)
Hypothetical contributions (hCWM)
Actual contributions (CWM)

Pattern 4/12

475 seqlets

Sequence (PFM)
Hypothetical contributions (hCWM)
Actual contributions (CWM)

Pattern 5/12

426 seqlets

Sequence (PFM)
Hypothetical contributions (hCWM)
Actual contributions (CWM)

Pattern 6/12

323 seqlets

Sequence (PFM)
Hypothetical contributions (hCWM)
Actual contributions (CWM)

Pattern 7/12

263 seqlets

Sequence (PFM)
Hypothetical contributions (hCWM)
Actual contributions (CWM)

Pattern 8/12

96 seqlets

Sequence (PFM)
Hypothetical contributions (hCWM)
Actual contributions (CWM)

Pattern 9/12

95 seqlets

Sequence (PFM)
Hypothetical contributions (hCWM)
Actual contributions (CWM)

Pattern 10/12

69 seqlets

Sequence (PFM)
Hypothetical contributions (hCWM)
Actual contributions (CWM)

Pattern 11/12

53 seqlets

Sequence (PFM)
Hypothetical contributions (hCWM)
Actual contributions (CWM)

Pattern 12/12

39 seqlets

Sequence (PFM)
Hypothetical contributions (hCWM)
Actual contributions (CWM)

Metacluster 2/2

Pattern 1/22

418 seqlets

Sequence (PFM)
Hypothetical contributions (hCWM)
Actual contributions (CWM)

Pattern 2/22

224 seqlets

Sequence (PFM)
Hypothetical contributions (hCWM)
Actual contributions (CWM)

Pattern 3/22

213 seqlets

Sequence (PFM)
Hypothetical contributions (hCWM)
Actual contributions (CWM)

Pattern 4/22

200 seqlets

Sequence (PFM)
Hypothetical contributions (hCWM)
Actual contributions (CWM)

Pattern 5/22

190 seqlets

Sequence (PFM)
Hypothetical contributions (hCWM)
Actual contributions (CWM)

Pattern 6/22

177 seqlets

Sequence (PFM)
Hypothetical contributions (hCWM)
Actual contributions (CWM)

Pattern 7/22

170 seqlets

Sequence (PFM)
Hypothetical contributions (hCWM)
Actual contributions (CWM)

Pattern 8/22

169 seqlets

Sequence (PFM)
Hypothetical contributions (hCWM)
Actual contributions (CWM)

Pattern 9/22

163 seqlets

Sequence (PFM)
Hypothetical contributions (hCWM)
Actual contributions (CWM)

Pattern 10/22

160 seqlets

Sequence (PFM)
Hypothetical contributions (hCWM)
Actual contributions (CWM)

Pattern 11/22

153 seqlets

Sequence (PFM)
Hypothetical contributions (hCWM)
Actual contributions (CWM)

Pattern 12/22

145 seqlets

Sequence (PFM)
Hypothetical contributions (hCWM)
Actual contributions (CWM)

Pattern 13/22

132 seqlets

Sequence (PFM)
Hypothetical contributions (hCWM)
Actual contributions (CWM)

Pattern 14/22

112 seqlets

Sequence (PFM)
Hypothetical contributions (hCWM)
Actual contributions (CWM)

Pattern 15/22

103 seqlets

Sequence (PFM)
Hypothetical contributions (hCWM)
Actual contributions (CWM)

Pattern 16/22

101 seqlets

Sequence (PFM)
Hypothetical contributions (hCWM)
Actual contributions (CWM)

Pattern 17/22

78 seqlets

Sequence (PFM)
Hypothetical contributions (hCWM)
Actual contributions (CWM)

Pattern 18/22

65 seqlets

Sequence (PFM)
Hypothetical contributions (hCWM)
Actual contributions (CWM)

Pattern 19/22

56 seqlets

Sequence (PFM)
Hypothetical contributions (hCWM)
Actual contributions (CWM)

Pattern 20/22

47 seqlets

Sequence (PFM)
Hypothetical contributions (hCWM)
Actual contributions (CWM)

Pattern 21/22

35 seqlets

Sequence (PFM)
Hypothetical contributions (hCWM)
Actual contributions (CWM)

Pattern 22/22

34 seqlets

Sequence (PFM)
Hypothetical contributions (hCWM)
Actual contributions (CWM)

Summary of motifs

Motifs are trimmed based on information content, and presented in descending order by number of supporting seqlets. The motifs are separated by metacluster. The motifs are presented as hCWMs. The forward orientation is defined as the orientation that is richer in purines.

In [9]:
colgroup = vdomh.colgroup(
    vdomh.col(style={"width": "5%"}),
    vdomh.col(style={"width": "5%"}),
    vdomh.col(style={"width": "45%"}),
    vdomh.col(style={"width": "45%"})
)
header = vdomh.thead(
    vdomh.tr(
        vdomh.th("#", style={"text-align": "center"}),
        vdomh.th("Seqlets", style={"text-align": "center"}),
        vdomh.th("Forward", style={"text-align": "center"}),
        vdomh.th("Reverse", style={"text-align": "center"})
    )
)

for i in range(len(motif_hcwms)):
    display(vdomh.h3("Metacluster %d/%d" % (i + 1, num_metaclusters)))
    body = []
    for j in range(len(motif_hcwms[i])):
        motif = motif_hcwms[i][j]
        if np.sum(motif[:, [0, 2]]) > 0.5 * np.sum(motif):
            # Forward is purine-rich, reverse-complement is pyrimidine-rich
            f, rc = motif, np.flip(motif, axis=(0, 1))
        else:
            f, rc = np.flip(motif, axis=(0, 1)), motif
            
        f_fig = viz_sequence.plot_weights(f, figsize=(20, 4), return_fig=True)
        f_fig.tight_layout()
        rc_fig = viz_sequence.plot_weights(rc, figsize=(20, 4), return_fig=True)
        rc_fig.tight_layout()
        
        if tfm_motifs_cache_dir:
            # Save results and figures
            motif_id = "%d_%d" % (i, j)
            f_fig.savefig(os.path.join(tfm_motifs_cache_dir, motif_id + "_hcwm_trimmed_fwd.png"))
            rc_fig.savefig(os.path.join(tfm_motifs_cache_dir, motif_id + "_hcwm_trimmed_rev.png"))

        body.append(
            vdomh.tr(
                vdomh.td(str(j + 1)),
                vdomh.td(str(num_seqlets[i][j])),
                vdomh.td(figure_to_vdom_image(f_fig)),
                vdomh.td(figure_to_vdom_image(rc_fig))
            )
        )
    display(vdomh.table(colgroup, header, vdomh.tbody(*body)))
    plt.close("all")

Metacluster 1/2

/users/amtseng/tfmodisco/src/plot/viz_sequence.py:152: RuntimeWarning: More than 20 figures have been opened. Figures created through the pyplot interface (`matplotlib.pyplot.figure`) are retained until explicitly closed and may consume too much memory. (To control this warning, see the rcParam `figure.max_open_warning`).
  fig = plt.figure(figsize=figsize)
#SeqletsForwardReverse
110069
2739
3596
4475
5426
6323
7263
896
995
1069
1153
1239

Metacluster 2/2

#SeqletsForwardReverse
1418
2224
3213
4200
5190
6177
7170
8169
9163
10160
11153
12145
13132
14112
15103
16101
1778
1865
1956
2047
2135
2234

Top TOMTOM matches for each motif

Here, the TF-MoDISco motifs are plotted as hCWMs, but the TOMTOM matches are shown as PWMs.

In [10]:
num_matches_to_keep = 10
num_matches_to_show = 5

header = vdomh.thead(
    vdomh.tr(
        vdomh.th("Motif ID", style={"text-align": "center"}),
        vdomh.th("q-val", style={"text-align": "center"}),
        vdomh.th("PWM", style={"text-align": "center"})
    )
)

for i in range(len(motif_pfms)):
    display(vdomh.h3("Metacluster %d/%d" % (i + 1, num_metaclusters)))
    
    # Compute TOMTOM matches for all motifs in the metacluster at once
    out_dir = os.path.join(tfm_motifs_cache_dir, "tomtom", "metacluster_%d" % i) if tfm_motifs_cache_dir else None
    tomtom_matches = match_motifs_to_database(motif_pfms_short[i], top_k=num_matches_to_keep, temp_dir=out_dir)
    
    for j in range(len(motif_pfms[i])):
        display(vdomh.h4("Motif %d/%d" % (j + 1, len(motif_pfms[i]))))
        viz_sequence.plot_weights(motif_hcwms[i][j])
    
        body = []
        for k, (match_name, match_pfm, match_qval) in enumerate(tomtom_matches[j]):
            fig = viz_sequence.plot_weights(pfm_to_pwm(match_pfm), return_fig=True)
            fig.tight_layout()
            if k < num_matches_to_show:
                body.append(
                    vdomh.tr(
                        vdomh.td(match_name),
                        vdomh.td(str(match_qval)),
                        vdomh.td(figure_to_vdom_image(fig))
                    )
                )
                if tfm_motifs_cache_dir:
                    # Save results and figures
                    motif_id = "%d_%d" % (i, j)
                    fig.savefig(os.path.join(out_dir, motif_id + ("_hit-%d.png" % (k + 1))))
            else:
                body.append(
                    vdomh.tr(
                        vdomh.td(match_name),
                        vdomh.td(str(match_qval)),
                        vdomh.td("Not shown")
                    )
                )
        if not body:
            display(vdomh.p("No TOMTOM matches passing threshold"))
        else:
            display(vdomh.table(header, vdomh.tbody(*body)))
        plt.close("all")

Metacluster 1/2

Motif 1/12

Motif IDq-valPWM
CEBPB_HUMAN.H11MO.0.A2.18965e-11
CEBPD_HUMAN.H11MO.0.C4.4117799999999994e-09
CEBPA_HUMAN.H11MO.0.A6.51327e-07
MA0836.2_CEBPD2.2423200000000002e-05
MA0102.4_CEBPA0.000235563
MA0837.1_CEBPE0.000519506Not shown
MA0466.2_CEBPB0.000523578Not shown
MA0838.1_CEBPG0.000947943Not shown
MA0025.2_NFIL30.00121994Not shown
DBP_HUMAN.H11MO.0.B0.00280921Not shown

Motif 2/12

Motif IDq-valPWM
JUND_HUMAN.H11MO.0.A9.40324e-05
FOSL1_HUMAN.H11MO.0.A9.40324e-05
FOSB_HUMAN.H11MO.0.A9.40324e-05
BACH2_HUMAN.H11MO.0.A0.000269613
JUN_HUMAN.H11MO.0.A0.000269613
FOSL2_HUMAN.H11MO.0.A0.00028084700000000003Not shown
FOS_HUMAN.H11MO.0.A0.000299355Not shown
JUNB_HUMAN.H11MO.0.A0.000319084Not shown
BACH1_HUMAN.H11MO.0.A0.000348092Not shown
NFE2_HUMAN.H11MO.0.A0.000348092Not shown

Motif 3/12

Motif IDq-valPWM
MA0139.1_CTCF4.6858000000000005e-15
CTCF_HUMAN.H11MO.0.A3.7055699999999994e-14
CTCFL_HUMAN.H11MO.0.A1.39943e-07
MA1102.2_CTCFL2.9335300000000004e-05
MA1568.1_TCF21(var.2)0.157072
MA1638.1_HAND20.16405799999999998Not shown
ZIC3_HUMAN.H11MO.0.B0.16405799999999998Not shown
SNAI1_HUMAN.H11MO.0.C0.192249Not shown
MA1548.1_PLAGL20.273378Not shown
KLF8_HUMAN.H11MO.0.C0.273378Not shown

Motif 4/12

Motif IDq-valPWM
FOXA1_HUMAN.H11MO.0.A1.8850000000000003e-07
FOXA2_HUMAN.H11MO.0.A1.8850000000000003e-07
FOXM1_HUMAN.H11MO.0.A2.4074e-06
FOXA3_HUMAN.H11MO.0.B2.4074e-06
FOXF2_HUMAN.H11MO.0.D2.4169200000000002e-06
MA0846.1_FOXC24.61661e-06Not shown
FOXD3_HUMAN.H11MO.0.D7.91419e-06Not shown
MA0847.2_FOXD22.09187e-05Not shown
FOXC1_HUMAN.H11MO.0.C2.78916e-05Not shown
MA0032.2_FOXC10.000142074Not shown

Motif 5/12

Motif IDq-valPWM
HNF4A_HUMAN.H11MO.0.A2.7793999999999997e-10
HNF4G_HUMAN.H11MO.0.B2.7793999999999997e-10
MA1494.1_HNF4A(var.2)0.0008319289999999999
MA0856.1_RXRG0.000837521
MA0484.2_HNF4G0.000837521
MA0114.4_HNF4A0.000837521Not shown
MA1574.1_THRB0.000837521Not shown
MA0512.2_Rxra0.000837521Not shown
MA0677.1_Nr2f60.000837521Not shown
MA1550.1_PPARD0.000837521Not shown

Motif 6/12

Motif IDq-valPWM
CTCFL_HUMAN.H11MO.0.A0.00842274
CTCF_HUMAN.H11MO.0.A0.00842274
MA0139.1_CTCF0.0281495
MA0830.2_TCF40.038565499999999996
MA1102.2_CTCFL0.070572
MA1648.1_TCF12(var.2)0.070572Not shown
SNAI1_HUMAN.H11MO.0.C0.193877Not shown
MA0147.3_MYC0.193877Not shown
MA1568.1_TCF21(var.2)0.193877Not shown
MA1631.1_ASCL1(var.2)0.193877Not shown

Motif 7/12

Motif IDq-valPWM
MA0814.2_TFAP2C(var.2)0.0933781
CTCF_HUMAN.H11MO.0.A0.0933781
SNAI1_HUMAN.H11MO.0.C0.0933781
MA1102.2_CTCFL0.0933781
MA0139.1_CTCF0.0933781
CTCFL_HUMAN.H11MO.0.A0.135379Not shown
MA1615.1_Plagl10.135379Not shown
PLAG1_HUMAN.H11MO.0.D0.222892Not shown
ZN331_HUMAN.H11MO.0.C0.222892Not shown
MA0003.4_TFAP2A0.222892Not shown

Motif 8/12

Motif IDq-valPWM
CPEB1_HUMAN.H11MO.0.D4.33879e-05
MA1125.1_ZNF3840.0217834
PRDM6_HUMAN.H11MO.0.C0.0217834
FOXL1_HUMAN.H11MO.0.D0.033542699999999995
FOXG1_HUMAN.H11MO.0.D0.0612153
FOXJ3_HUMAN.H11MO.0.A0.12003299999999999Not shown
ANDR_HUMAN.H11MO.0.A0.12303599999999999Not shown
MA0679.2_ONECUT10.131152Not shown
FUBP1_HUMAN.H11MO.0.D0.131152Not shown
ONEC2_HUMAN.H11MO.0.D0.131152Not shown

Motif 9/12

Motif IDq-valPWM
GATA2_HUMAN.H11MO.1.A1.3656e-05
GATA2_HUMAN.H11MO.0.A1.3656e-05
GATA1_HUMAN.H11MO.1.A1.39053e-05
GATA1_HUMAN.H11MO.0.A2.31057e-05
GATA4_HUMAN.H11MO.0.A3.29548e-05
TAL1_HUMAN.H11MO.0.A6.39679e-05Not shown
GATA6_HUMAN.H11MO.0.A0.000249021Not shown
MA0036.3_GATA20.000249021Not shown
MA0037.3_GATA30.00337556Not shown
MA0766.2_GATA50.00337556Not shown

Motif 10/12

Motif IDq-valPWM
ZN770_HUMAN.H11MO.0.C1.87998e-08
MA1596.1_ZNF4602.97329e-05
ZN770_HUMAN.H11MO.1.C0.0006817460000000001
MA1587.1_ZNF1350.0105027
ZSC22_HUMAN.H11MO.0.C0.0488899
PITX2_HUMAN.H11MO.0.D0.08415650000000001Not shown
KLF6_HUMAN.H11MO.0.A0.289078Not shown
IKZF1_HUMAN.H11MO.0.C0.289078Not shown
ZFX_HUMAN.H11MO.1.A0.43941Not shown

Motif 11/12

Motif IDq-valPWM
ZN770_HUMAN.H11MO.0.C3.02687e-11
MA1596.1_ZNF4603.0972900000000005e-06
ZN770_HUMAN.H11MO.1.C0.00110445
MA1587.1_ZNF1350.00643288
ZSC22_HUMAN.H11MO.0.C0.022198500000000003
PITX2_HUMAN.H11MO.0.D0.07580339999999999Not shown
ZFX_HUMAN.H11MO.1.A0.207796Not shown
KLF6_HUMAN.H11MO.0.A0.30783699999999997Not shown
MA0812.1_TFAP2B(var.2)0.30783699999999997Not shown
WT1_HUMAN.H11MO.0.C0.323181Not shown

Motif 12/12

Motif IDq-valPWM
HNF4G_HUMAN.H11MO.0.B2.7423899999999997e-07
HNF4A_HUMAN.H11MO.0.A1.36757e-05
MA1550.1_PPARD0.000121607
MA0677.1_Nr2f60.000227005
MA0856.1_RXRG0.000296761
MA0855.1_RXRB0.000302273Not shown
MA0512.2_Rxra0.000302273Not shown
MA0115.1_NR1H2::RXRA0.000497709Not shown
MA0504.1_NR2C20.0008169939999999999Not shown
RXRG_HUMAN.H11MO.0.B0.0008169939999999999Not shown

Metacluster 2/2

Motif 1/22

Motif IDq-valPWM
CEBPD_HUMAN.H11MO.0.C1.5975400000000002e-07
CEBPB_HUMAN.H11MO.0.A1.30388e-06
MA0837.1_CEBPE2.8476799999999998e-05
MA0466.2_CEBPB3.75081e-05
CEBPA_HUMAN.H11MO.0.A3.82056e-05
MA0838.1_CEBPG0.000177929Not shown
DBP_HUMAN.H11MO.0.B0.000464499Not shown
MA0043.3_HLF0.000548621Not shown
MA0025.2_NFIL30.000548621Not shown
MA0836.2_CEBPD0.000548621Not shown

Motif 2/22

No TOMTOM matches passing threshold

Motif 3/22

Motif IDq-valPWM
HOMEZ_HUMAN.H11MO.0.D0.410876

Motif 4/22

No TOMTOM matches passing threshold

Motif 5/22

Motif IDq-valPWM
MA1513.1_KLF150.169242
MA0740.1_KLF140.169242
MA0516.2_SP20.169242
SP2_HUMAN.H11MO.0.A0.169242
SP3_HUMAN.H11MO.0.B0.169242
KLF3_HUMAN.H11MO.0.B0.169242Not shown
MA0685.1_SP40.169242Not shown
EGR4_HUMAN.H11MO.0.D0.169242Not shown
MA0079.4_SP10.169242Not shown
MA0741.1_KLF160.169242Not shown

Motif 6/22

Motif IDq-valPWM
HEN1_HUMAN.H11MO.0.C0.121299
MA1529.1_NHLH20.121299
MA1100.2_ASCL10.185631
MA0048.2_NHLH10.185631
BHA15_HUMAN.H11MO.0.B0.185631
MA1583.1_ZFP570.187394Not shown
ASCL2_HUMAN.H11MO.0.D0.188308Not shown
MA0816.1_Ascl20.188308Not shown
MA1635.1_BHLHE22(var.2)0.188308Not shown
MA0500.2_MYOG0.290167Not shown

Motif 7/22

No TOMTOM matches passing threshold

Motif 8/22

No TOMTOM matches passing threshold

Motif 9/22

Motif IDq-valPWM
ZN320_HUMAN.H11MO.0.C0.258166

Motif 10/22

No TOMTOM matches passing threshold

Motif 11/22

No TOMTOM matches passing threshold

Motif 12/22

No TOMTOM matches passing threshold

Motif 13/22

No TOMTOM matches passing threshold

Motif 14/22

No TOMTOM matches passing threshold

Motif 15/22

Motif IDq-valPWM
MA1628.1_Zic1::Zic20.304579
ZSC31_HUMAN.H11MO.0.C0.304579
MA1629.1_Zic20.304579
ZIC2_HUMAN.H11MO.0.D0.304579
ZIC3_HUMAN.H11MO.0.B0.304579
OLIG2_HUMAN.H11MO.0.B0.304579Not shown
MA0696.1_ZIC10.304579Not shown
ZN563_HUMAN.H11MO.1.C0.390813Not shown
MA0697.1_ZIC30.390813Not shown
ZN331_HUMAN.H11MO.0.C0.425392Not shown

Motif 16/22

No TOMTOM matches passing threshold

Motif 17/22

Motif IDq-valPWM
ZSCA4_HUMAN.H11MO.0.D0.30991799999999997
MA0493.1_Klf10.46152299999999996

Motif 18/22

Motif IDq-valPWM
CEBPB_HUMAN.H11MO.0.A2.5074e-06
CEBPD_HUMAN.H11MO.0.C1.29441e-05
CEBPA_HUMAN.H11MO.0.A0.000140684
MA0025.2_NFIL30.00025210900000000004
MA1636.1_CEBPG(var.2)0.000302531
NFIL3_HUMAN.H11MO.0.D0.000508885Not shown
MA0833.2_ATF40.000508885Not shown
MA0836.2_CEBPD0.000694697Not shown
ATF4_HUMAN.H11MO.0.A0.00080681Not shown
DDIT3_HUMAN.H11MO.0.D0.00080681Not shown

Motif 19/22

No TOMTOM matches passing threshold

Motif 20/22

Motif IDq-valPWM
MA0872.1_TFAP2A(var.3)0.0601376
MA0815.1_TFAP2C(var.3)0.0601376
MA0154.4_EBF10.0601376
COE1_HUMAN.H11MO.0.A0.0601376
AP2A_HUMAN.H11MO.0.A0.070412
AP2C_HUMAN.H11MO.0.A0.070412Not shown
MA0813.1_TFAP2B(var.3)0.0902811Not shown
MA0524.2_TFAP2C0.0961808Not shown
MA0811.1_TFAP2B0.10852200000000001Not shown
MA0810.1_TFAP2A(var.2)0.215381Not shown

Motif 21/22

Motif IDq-valPWM
MA0761.2_ETV10.454916
Z354A_HUMAN.H11MO.0.C0.454916
HXC10_HUMAN.H11MO.0.D0.454916
MA0062.3_GABPA0.454916
MA0473.3_ELF10.454916
LMX1A_HUMAN.H11MO.0.D0.4555Not shown
MA0598.3_EHF0.48532600000000004Not shown
FOXF2_HUMAN.H11MO.0.D0.49808Not shown
MA0593.1_FOXP20.49808Not shown
SHOX_HUMAN.H11MO.0.D0.49808Not shown

Motif 22/22

No TOMTOM matches passing threshold