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: GABPA
DeepSHAP scores path: /users/amtseng/tfmodisco/results/importance_scores/multitask_profile/GABPA_multitask_profile_fold5/GABPA_multitask_profile_fold5_imp_scores.h5
TF-MoDISco results path: /users/amtseng/tfmodisco/results/tfmodisco/multitask_profile/GABPA_multitask_profile_fold5/GABPA_multitask_profile_fold5_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/GABPA_multitask_profile_fold5/GABPA_multitask_profile_fold5_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%|██████████| 104/104 [01:02<00:00,  1.68it/s]
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

5038 seqlets

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

Pattern 2/11

802 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

307 seqlets

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

Pattern 5/11

187 seqlets

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

Pattern 6/11

131 seqlets

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

Pattern 7/11

69 seqlets

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

Pattern 8/11

67 seqlets

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

Pattern 9/11

46 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

39 seqlets

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

Metacluster 2/2

Pattern 1/7

468 seqlets

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

Pattern 2/7

406 seqlets

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

Pattern 3/7

190 seqlets

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

Pattern 4/7

139 seqlets

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

Pattern 5/7

129 seqlets

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

Pattern 6/7

127 seqlets

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

Pattern 7/7

81 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
15038
2802
3562
4307
5187
6131
769
867
946
1045
1139

Metacluster 2/2

#SeqletsForwardReverse
1468
2406
3190
4139
5129
6127
781

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
MA0076.2_ELK41.5308500000000001e-06
MA0750.2_ZBTB7A1.5308500000000001e-06
ELK1_HUMAN.H11MO.0.B1.00955e-05
ETV1_HUMAN.H11MO.0.A1.00955e-05
ELK4_HUMAN.H11MO.0.A1.00955e-05
MA0765.2_ETV54.39351e-05Not shown
MA1483.1_ELF24.6131800000000004e-05Not shown
ELF2_HUMAN.H11MO.0.C4.6131800000000004e-05Not shown
ELF1_HUMAN.H11MO.0.A4.6131800000000004e-05Not shown
GABPA_HUMAN.H11MO.0.A4.6131800000000004e-05Not shown

Motif 2/11

Motif IDq-valPWM
GABPA_HUMAN.H11MO.0.A0.0012987
MA1484.1_ETS20.00795938
MA0156.2_FEV0.00795938
MA0028.2_ELK10.00795938
MA0760.1_ERF0.00795938
MA0763.1_ETV30.00795938Not shown
ELF1_HUMAN.H11MO.0.A0.00795938Not shown
MA0098.3_ETS10.00795938Not shown
MA0475.2_FLI10.00795938Not shown
MA0474.2_ERG0.00795938Not shown

Motif 3/11

Motif IDq-valPWM
ZNF76_HUMAN.H11MO.0.C1.89747e-23
ZN143_HUMAN.H11MO.0.A5.6257500000000004e-21
THA11_HUMAN.H11MO.0.B5.49645e-18
MA1573.1_THAP112.7070300000000003e-09
MA0088.2_ZNF1430.011866400000000001
P63_HUMAN.H11MO.0.A0.0681723Not shown
STAT3_HUMAN.H11MO.0.A0.0681723Not shown
MA1625.1_Stat5b0.124846Not shown
MA0525.2_TP630.164046Not shown
MA0519.1_Stat5a::Stat5b0.164046Not shown

Motif 4/11

Motif IDq-valPWM
MA0136.2_ELF50.0019014
ELF1_HUMAN.H11MO.0.A0.00665703
ETV1_HUMAN.H11MO.0.A0.0124458
ELF2_HUMAN.H11MO.0.C0.0124458
MA0645.1_ETV60.0124458
MA0076.2_ELK40.0124458Not shown
MA0765.2_ETV50.0124458Not shown
MA0750.2_ZBTB7A0.0133566Not shown
ELK1_HUMAN.H11MO.0.B0.0133566Not shown
MA0760.1_ERF0.013544899999999999Not shown

Motif 5/11

Motif IDq-valPWM
MA0765.2_ETV50.0682538
ETV1_HUMAN.H11MO.0.A0.0682538
MA0076.2_ELK40.08755639999999999
ELK4_HUMAN.H11MO.0.A0.08755639999999999
GABPA_HUMAN.H11MO.0.A0.08755639999999999
ELF2_HUMAN.H11MO.0.C0.13554000000000002Not shown
ELK1_HUMAN.H11MO.0.B0.13554000000000002Not shown
MA0763.1_ETV30.146173Not shown
MA0760.1_ERF0.146173Not shown
MA0156.2_FEV0.146173Not shown

Motif 6/11

Motif IDq-valPWM
SP2_HUMAN.H11MO.0.A1.0628799999999999e-06
SP3_HUMAN.H11MO.0.B7.82051e-06
SP1_HUMAN.H11MO.0.A1.0439000000000001e-05
KLF3_HUMAN.H11MO.0.B0.000725672
KLF16_HUMAN.H11MO.0.D0.0012704
THAP1_HUMAN.H11MO.0.C0.0012704Not shown
PATZ1_HUMAN.H11MO.0.C0.00284249Not shown
SP1_HUMAN.H11MO.1.A0.00501258Not shown
ZFX_HUMAN.H11MO.1.A0.00501258Not shown
KLF9_HUMAN.H11MO.0.C0.00512014Not shown

Motif 7/11

Motif IDq-valPWM
SP2_HUMAN.H11MO.0.A0.00140026
SP3_HUMAN.H11MO.0.B0.00491804
SP1_HUMAN.H11MO.0.A0.00934766
USF2_HUMAN.H11MO.0.A0.0221178
MA1475.1_CREB3L4(var.2)0.0221178
CTCFL_HUMAN.H11MO.0.A0.0231351Not shown
MA0609.2_CREM0.0335219Not shown
ATF2_HUMAN.H11MO.2.C0.039400599999999994Not shown
MA0656.1_JDP2(var.2)0.043777300000000005Not shown
EGR4_HUMAN.H11MO.0.D0.0442105Not shown

Motif 8/11

Motif IDq-valPWM
SP1_HUMAN.H11MO.0.A0.000427544
SP2_HUMAN.H11MO.0.A0.00078548
TBX15_HUMAN.H11MO.0.D0.00078548
KLF16_HUMAN.H11MO.0.D0.00118777
SP3_HUMAN.H11MO.0.B0.00139404
MA0765.2_ETV50.00176049Not shown
PATZ1_HUMAN.H11MO.0.C0.00185955Not shown
ZFX_HUMAN.H11MO.1.A0.00390095Not shown
MA0076.2_ELK40.00475941Not shown
KLF6_HUMAN.H11MO.0.A0.00700298Not shown

Motif 9/11

Motif IDq-valPWM
SP1_HUMAN.H11MO.0.A0.00043424699999999996
SP2_HUMAN.H11MO.0.A0.00043424699999999996
SP3_HUMAN.H11MO.0.B0.00043424699999999996
KLF6_HUMAN.H11MO.0.A0.0017274
TBX15_HUMAN.H11MO.0.D0.00657652
CTCFL_HUMAN.H11MO.0.A0.00657652Not shown
ZFX_HUMAN.H11MO.1.A0.00892593Not shown
KLF3_HUMAN.H11MO.0.B0.00892593Not shown
KLF1_HUMAN.H11MO.0.A0.00892593Not shown
SP1_HUMAN.H11MO.1.A0.013365799999999999Not shown

Motif 10/11

Motif IDq-valPWM
GABPA_HUMAN.H11MO.0.A0.0437263
SP1_HUMAN.H11MO.0.A0.0528304
SP2_HUMAN.H11MO.0.A0.0528304
MA0765.2_ETV50.0528304
THAP1_HUMAN.H11MO.0.C0.0528304
SP3_HUMAN.H11MO.0.B0.0528304Not shown
MA0750.2_ZBTB7A0.0528304Not shown
MA0076.2_ELK40.0646753Not shown
MA0471.2_E2F60.10486400000000001Not shown
ELF1_HUMAN.H11MO.0.A0.121026Not shown

Motif 11/11

Motif IDq-valPWM
SP2_HUMAN.H11MO.0.A0.0027243000000000002
SP3_HUMAN.H11MO.0.B0.00282407
SP1_HUMAN.H11MO.0.A0.00354182
THAP1_HUMAN.H11MO.0.C0.014465299999999999
PATZ1_HUMAN.H11MO.0.C0.014465299999999999
MA1513.1_KLF150.0243387Not shown
TBX15_HUMAN.H11MO.0.D0.0243387Not shown
MA0765.2_ETV50.024935Not shown
SP1_HUMAN.H11MO.1.A0.028596899999999998Not shown
KLF16_HUMAN.H11MO.0.D0.0348974Not shown

Metacluster 2/2

Motif 1/7

Motif IDq-valPWM
MA0076.2_ELK43.28308e-05
MA0765.2_ETV53.28308e-05
ELF2_HUMAN.H11MO.0.C3.28308e-05
ELF1_HUMAN.H11MO.0.A3.28308e-05
ETV1_HUMAN.H11MO.0.A6.0086899999999996e-05
MA0136.2_ELF56.0086899999999996e-05Not shown
GABPA_HUMAN.H11MO.0.A8.24049e-05Not shown
MA0750.2_ZBTB7A0.000209355Not shown
MA0759.1_ELK30.00028136400000000004Not shown
ELK4_HUMAN.H11MO.0.A0.000316534Not shown

Motif 2/7

Motif IDq-valPWM
SP2_HUMAN.H11MO.0.A3.2275700000000003e-06
SP1_HUMAN.H11MO.0.A3.2275700000000003e-06
SP3_HUMAN.H11MO.0.B2.56088e-05
SP1_HUMAN.H11MO.1.A0.00144796
MA0146.2_Zfx0.00184443
KLF16_HUMAN.H11MO.0.D0.00201788Not shown
MA1513.1_KLF150.0042809Not shown
KLF3_HUMAN.H11MO.0.B0.00548906Not shown
USF2_HUMAN.H11MO.0.A0.0068758Not shown
ZFX_HUMAN.H11MO.1.A0.0068758Not shown

Motif 3/7

No TOMTOM matches passing threshold

Motif 4/7

Motif IDq-valPWM
SP2_HUMAN.H11MO.0.A1.59026e-06
SP3_HUMAN.H11MO.0.B7.17173e-05
SP1_HUMAN.H11MO.0.A0.000558791
MA1650.1_ZBTB140.00531005
SP1_HUMAN.H11MO.1.A0.00578631
MA0146.2_Zfx0.00578631Not shown
MA1513.1_KLF150.00712014Not shown
THAP1_HUMAN.H11MO.0.C0.0077131Not shown
KLF3_HUMAN.H11MO.0.B0.0077131Not shown
USF2_HUMAN.H11MO.0.A0.0120384Not shown

Motif 5/7

Motif IDq-valPWM
SP2_HUMAN.H11MO.0.A6.541889999999999e-07
ETV1_HUMAN.H11MO.0.A7.55995e-06
ELK4_HUMAN.H11MO.0.A7.55995e-06
SP1_HUMAN.H11MO.0.A7.92424e-06
MA0750.2_ZBTB7A1.16681e-05
MA0076.2_ELK41.16681e-05Not shown
MA0765.2_ETV51.29871e-05Not shown
SP3_HUMAN.H11MO.0.B1.29871e-05Not shown
GABPA_HUMAN.H11MO.0.A0.000157627Not shown
ETS1_HUMAN.H11MO.0.A0.000628657Not shown

Motif 6/7

Motif IDq-valPWM
SP2_HUMAN.H11MO.0.A2.40221e-07
SP3_HUMAN.H11MO.0.B1.65761e-05
SP1_HUMAN.H11MO.0.A3.3412e-05
MA1513.1_KLF150.0011507
MA1650.1_ZBTB140.00172979
SP1_HUMAN.H11MO.1.A0.00217904Not shown
AP2D_HUMAN.H11MO.0.D0.00241866Not shown
THAP1_HUMAN.H11MO.0.C0.00246356Not shown
USF2_HUMAN.H11MO.0.A0.0035226999999999997Not shown
KLF3_HUMAN.H11MO.0.B0.00407499Not shown

Motif 7/7

Motif IDq-valPWM
SP2_HUMAN.H11MO.0.A0.00175873
MA0146.2_Zfx0.00494767
SP3_HUMAN.H11MO.0.B0.00559877
ZFX_HUMAN.H11MO.1.A0.00562555
SP1_HUMAN.H11MO.0.A0.0116183
KLF3_HUMAN.H11MO.0.B0.0116183Not shown
MXI1_HUMAN.H11MO.0.A0.0440587Not shown
MA1650.1_ZBTB140.0440587Not shown
RFX1_HUMAN.H11MO.0.B0.0501167Not shown
USF2_HUMAN.H11MO.0.A0.0501167Not shown