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_fold10/CEBPB_multitask_profile_fold10_imp_scores.h5
TF-MoDISco results path: /users/amtseng/tfmodisco/results/tfmodisco/multitask_profile/CEBPB_multitask_profile_fold10/CEBPB_multitask_profile_fold10_count_tfm.h5
Importance score key: count_hyp_scores
Saved TF-MoDISco-derived motifs cache: /users/amtseng/tfmodisco/results/reports/tfmodisco_results//cache/multitask_profile/CEBPB_multitask_profile_fold10/CEBPB_multitask_profile_fold10_count
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:50<00:00,  1.28s/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/11

12846 seqlets

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

Pattern 2/11

757 seqlets

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

Pattern 3/11

562 seqlets

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

Pattern 4/11

272 seqlets

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

Pattern 5/11

136 seqlets

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

Pattern 6/11

96 seqlets

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

Pattern 7/11

91 seqlets

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

Pattern 8/11

88 seqlets

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

Pattern 9/11

49 seqlets

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

Pattern 10/11

45 seqlets

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

Pattern 11/11

42 seqlets

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

Metacluster 2/2

Pattern 1/8

162 seqlets

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

Pattern 2/8

158 seqlets

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

Pattern 3/8

87 seqlets

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

Pattern 4/8

82 seqlets

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

Pattern 5/8

72 seqlets

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

Pattern 6/8

67 seqlets

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

Pattern 7/8

65 seqlets

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

Pattern 8/8

64 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
112846
2757
3562
4272
5136
696
791
888
949
1045
1142

Metacluster 2/2

#SeqletsForwardReverse
1162
2158
387
482
572
667
765
864

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/11

Motif IDq-valPWM
CEBPB_HUMAN.H11MO.0.A9.07618e-11
CEBPD_HUMAN.H11MO.0.C6.69996e-09
CEBPA_HUMAN.H11MO.0.A2.6457099999999998e-06
MA0836.2_CEBPD3.23653e-05
MA0102.4_CEBPA0.000161561
MA0466.2_CEBPB0.000205152Not shown
MA0837.1_CEBPE0.000205152Not shown
MA0838.1_CEBPG0.000631136Not shown
MA0025.2_NFIL30.000850191Not shown
NFIL3_HUMAN.H11MO.0.D0.00182215Not shown

Motif 2/11

Motif IDq-valPWM
FOSL1_HUMAN.H11MO.0.A1.47367e-07
FOSB_HUMAN.H11MO.0.A1.0525e-06
JUND_HUMAN.H11MO.0.A1.57875e-06
JUN_HUMAN.H11MO.0.A1.57875e-06
FOS_HUMAN.H11MO.0.A1.6756e-06
FOSL2_HUMAN.H11MO.0.A2.9802699999999997e-06Not shown
MA0478.1_FOSL21.498e-05Not shown
MA1622.1_Smad2::Smad31.498e-05Not shown
MA1130.1_FOSL2::JUN1.498e-05Not shown
MA0099.3_FOS::JUN1.498e-05Not shown

Motif 3/11

Motif IDq-valPWM
MA0139.1_CTCF4.04622e-20
CTCF_HUMAN.H11MO.0.A2.12119e-15
CTCFL_HUMAN.H11MO.0.A2.05039e-05
MA1102.2_CTCFL0.000269259
MA1568.1_TCF21(var.2)0.20909699999999998
MA1638.1_HAND20.249059Not shown
SNAI1_HUMAN.H11MO.0.C0.48316099999999995Not shown

Motif 4/11

Motif IDq-valPWM
FOXA2_HUMAN.H11MO.0.A6.731499999999999e-08
FOXA1_HUMAN.H11MO.0.A9.355789999999999e-08
FOXF2_HUMAN.H11MO.0.D8.61541e-07
FOXA3_HUMAN.H11MO.0.B1.29231e-06
FOXD3_HUMAN.H11MO.0.D1.55077e-06
MA0846.1_FOXC25.557e-06Not shown
MA0847.2_FOXD26.35085e-06Not shown
FOXC1_HUMAN.H11MO.0.C8.33549e-06Not shown
FOXM1_HUMAN.H11MO.0.A2.79036e-05Not shown
FOXD1_HUMAN.H11MO.0.D0.000131743Not shown

Motif 5/11

Motif IDq-valPWM
CTCFL_HUMAN.H11MO.0.A0.00131707
CTCF_HUMAN.H11MO.0.A0.00618389
MA0139.1_CTCF0.0170828
MA1102.2_CTCFL0.0170828
SP2_HUMAN.H11MO.0.A0.017519200000000002
SP3_HUMAN.H11MO.0.B0.0195873Not shown
SP1_HUMAN.H11MO.0.A0.0376376Not shown
MXI1_HUMAN.H11MO.0.A0.0376376Not shown
KLF12_HUMAN.H11MO.0.C0.0376376Not shown
MA1522.1_MAZ0.0376376Not shown

Motif 6/11

Motif IDq-valPWM
HNF4A_HUMAN.H11MO.0.A3.16065e-07
HNF4G_HUMAN.H11MO.0.B3.37153e-07
MA0484.2_HNF4G0.00532809
MA0114.4_HNF4A0.00532809
MA1494.1_HNF4A(var.2)0.019088499999999998
MA0856.1_RXRG0.0216283Not shown
MA0677.1_Nr2f60.0216283Not shown
MA0512.2_Rxra0.0216283Not shown
MA1550.1_PPARD0.0216283Not shown
MA1574.1_THRB0.0216283Not shown

Motif 7/11

Motif IDq-valPWM
FOXB1_HUMAN.H11MO.0.D0.00266584
FOXD2_HUMAN.H11MO.0.D0.00365713
MA0032.2_FOXC10.0543043
MA0845.1_FOXB10.0543043
MA0846.1_FOXC20.148126
MA0148.4_FOXA10.187831Not shown
MA1683.1_FOXA30.34680500000000003Not shown
MA0481.3_FOXP10.369168Not shown
FOXA2_HUMAN.H11MO.0.A0.369168Not shown
MA0847.2_FOXD20.369168Not shown

Motif 8/11

Motif IDq-valPWM
GATA1_HUMAN.H11MO.1.A2.26958e-05
GATA4_HUMAN.H11MO.0.A2.26958e-05
TAL1_HUMAN.H11MO.0.A2.26958e-05
GATA2_HUMAN.H11MO.1.A4.6162700000000004e-05
GATA1_HUMAN.H11MO.0.A0.000207546
GATA2_HUMAN.H11MO.0.A0.000207546Not shown
MA0140.2_GATA1::TAL10.000335833Not shown
GATA6_HUMAN.H11MO.0.A0.000735227Not shown
MA0766.2_GATA50.00174561Not shown
MA0036.3_GATA20.0189735Not shown

Motif 9/11

Motif IDq-valPWM
MA1683.1_FOXA30.043904900000000004
MA0047.3_FOXA20.043904900000000004
MA0481.3_FOXP10.043904900000000004
MA0031.1_FOXD10.0728946
MA0042.2_FOXI10.0797035
MA0849.1_FOXO60.0797035Not shown
MA0148.4_FOXA10.0797035Not shown
MA0848.1_FOXO40.11423699999999999Not shown
MA0850.1_FOXP30.11423699999999999Not shown
MA0761.2_ETV10.127435Not shown

Motif 10/11

Motif IDq-valPWM
HNF4A_HUMAN.H11MO.0.A6.231080000000001e-06
HNF4G_HUMAN.H11MO.0.B1.2912000000000001e-05
MA1494.1_HNF4A(var.2)0.00301018
MA1550.1_PPARD0.00323529
MA0114.4_HNF4A0.00323529
MA0677.1_Nr2f60.00323529Not shown
MA0484.2_HNF4G0.00334864Not shown
MA0856.1_RXRG0.00466557Not shown
MA0512.2_Rxra0.00497189Not shown
MA0855.1_RXRB0.006976899999999999Not shown

Motif 11/11

Motif IDq-valPWM
JUND_HUMAN.H11MO.0.A0.000105095
JUN_HUMAN.H11MO.0.A0.000105095
MA1132.1_JUN::JUNB0.000204692
MA0099.3_FOS::JUN0.000207606
MA1144.1_FOSL2::JUND0.000245253
MA0477.2_FOSL10.000245253Not shown
MA1135.1_FOSB::JUNB0.000292177Not shown
MA1138.1_FOSL2::JUNB0.000292177Not shown
FOSL2_HUMAN.H11MO.0.A0.000296752Not shown
MA1134.1_FOS::JUNB0.000300929Not shown

Metacluster 2/2

Motif 1/8

Motif IDq-valPWM
CEBPD_HUMAN.H11MO.0.C1.12429e-05
MA0837.1_CEBPE1.12429e-05
MA0466.2_CEBPB1.171e-05
CEBPB_HUMAN.H11MO.0.A1.171e-05
MA0838.1_CEBPG6.91804e-05
CEBPA_HUMAN.H11MO.0.A0.0006723889999999999Not shown
MA0025.2_NFIL30.00348963Not shown
DBP_HUMAN.H11MO.0.B0.00352876Not shown
NFIL3_HUMAN.H11MO.0.D0.0035296999999999998Not shown
MA0836.2_CEBPD0.0035296999999999998Not shown

Motif 2/8

No TOMTOM matches passing threshold

Motif 3/8

No TOMTOM matches passing threshold

Motif 4/8

Motif IDq-valPWM
ZN341_HUMAN.H11MO.0.C0.0214176
ZN263_HUMAN.H11MO.0.A0.0214176
MAZ_HUMAN.H11MO.0.A0.0214176
KLF15_HUMAN.H11MO.0.A0.0214176
KLF3_HUMAN.H11MO.0.B0.0214176
VEZF1_HUMAN.H11MO.0.C0.031102800000000003Not shown
ZBT17_HUMAN.H11MO.0.A0.0342098Not shown
MA1653.1_ZNF1480.0342098Not shown
ZN281_HUMAN.H11MO.0.A0.0376216Not shown
ZN148_HUMAN.H11MO.0.D0.0378918Not shown

Motif 5/8

Motif IDq-valPWM
PATZ1_HUMAN.H11MO.1.C0.0148855
MAZ_HUMAN.H11MO.1.A0.041804900000000006
WT1_HUMAN.H11MO.0.C0.0648639
MA0753.2_ZNF7400.0648639
MAZ_HUMAN.H11MO.0.A0.0648639
KLF15_HUMAN.H11MO.0.A0.0648639Not shown
SP3_HUMAN.H11MO.0.B0.0648639Not shown
MA1578.1_VEZF10.069825Not shown
ZN263_HUMAN.H11MO.0.A0.0706153Not shown
MA1522.1_MAZ0.0897207Not shown

Motif 6/8

No TOMTOM matches passing threshold

Motif 7/8

Motif IDq-valPWM
SALL4_HUMAN.H11MO.0.B0.00612463
TBX15_HUMAN.H11MO.0.D0.00868391
ZN740_HUMAN.H11MO.0.D0.042616900000000006
ZN219_HUMAN.H11MO.0.D0.0682139
EGR2_HUMAN.H11MO.0.A0.0682139
MA1511.1_KLF100.0889017Not shown
MA0753.2_ZNF7400.0889017Not shown
MA0039.4_KLF40.09224650000000001Not shown
MA0073.1_RREB10.09224650000000001Not shown
MA0528.2_ZNF2630.09224650000000001Not shown

Motif 8/8

Motif IDq-valPWM
ZN281_HUMAN.H11MO.0.A0.0255492
MA1630.1_Znf2810.0255492
ZBT17_HUMAN.H11MO.0.A0.0255492
MAZ_HUMAN.H11MO.0.A0.0255492
MA1627.1_Wt10.0255492
MA1653.1_ZNF1480.0255492Not shown
WT1_HUMAN.H11MO.0.C0.0255492Not shown
ZN148_HUMAN.H11MO.0.D0.0255492Not shown
SPIC_HUMAN.H11MO.0.D0.0331521Not shown
MA0528.2_ZNF2630.0331521Not shown