In [3]:
from matlas.matches import DenovoModisco, DenovoHomer
from vdom.helpers import (b, summary)
from IPython.display import display
import numpy as np

def adjust_motifs(ob):
    for motif_name in ob.denovo_pwms.keys():
        a = ob.get_pwm(motif_name)
        ones = np.sum(a, axis=1)
        for i, one in enumerate(ones):
            if (one-1.0)!=1:
            #print('decrease', motif_name, i)
                part = (one-1.0)/4
                ob.denovo_pwms[motif_name]['PPM'][i] -= part
    
    return ob

def display_paiwise_pattern_comparison(task_idx, sample_name, modiscodir, homerdir):
    display(summary(b(sample_name + " (differential regions)")))
    
    homer_ob = DenovoHomer(homerdir)
    homer_ob.fetch_tomtom_matches(save_report=True, 
                                  tomtom_dir= "{0}/{1}_tomtomout".format(homerdir, "CISBP_2.00"))
    #homer_ob = adjust_motifs(homer_ob)
    homer_ob.load_matched_motifs()
    homer_ob.get_motif_per_celltype()

    modisco_ob = DenovoModisco(modiscodir)
    modisco_ob.load_matched_motifs()
    modisco_ob.get_motif_per_celltype()

    modisco_ob.display_pairwise_tf_table(homer_ob)
    return None

def display_denovo_patterns(sample_name, modiscodir, match_threshold=0.05):
    display(summary(b(sample_name)))
    
    ob = DenovoModisco(modiscodir)
    
    ob.load_matched_motifs()
    ob.get_motif_per_celltype(match_threshold=match_threshold)
    ob.display_individual_table()
    
    return None
In [5]:
root = "/mnt/lab_data/kundaje/users/msharmin/NSC_ATAC_PEAKS_to_share"
task_idx = 4
sample_name = 'qNSC_Old'

display_denovo_patterns(
    sample_name,
    modiscodir="{0}/gw_modisco/multi_tasks/{1}".format(root, sample_name)
)
qNSC_Old
The following two links show list of Denovo Patterns and corresponding Motifs discovered by TF-MoDISco
Click here for Denovo Patterns by TF-MoDISco: #1
Pattern NameTF Name(s)Modisco
metacluster_1/pattern_0 # seqlets: 36 SequenceContrib ScoresHyp_Contrib Scores
Ctcf, Ctcfl
Click here for Motifs by TF-MoDISco: #2
TF NamePattern(s)
Ctcf
Pattern NameModiscoSignificance
metacluster_1/pattern_09.043959999999999e-09
Ctcfl
Pattern NameModiscoSignificance
metacluster_1/pattern_09.043959999999999e-09
In [4]:
root = "/mnt/lab_data/kundaje/users/msharmin/NSC_ATAC_PEAKS_to_share"
task_idx = 4
sample_name = 'qNSC_Old'
display_paiwise_pattern_comparison(
    task_idx, sample_name, 
    modiscodir="{0}/gw_modisco/multi_tasks/{1}".format(root, sample_name),
    homerdir="{0}/gw_homer/{1}".format(root, sample_name),
)
qNSC_Old (differential regions)
Number of CISBP TFs obtained by TF-MoDISco and Homer
Shared TFs between TF-MoDISco and Homer: #0
TF NameModiscoHomer
Unique TF-MoDISco TFs: #2
TF NameModiscoHomer
Ctcfl
Pattern NameModiscoSignificance
metacluster_1/pattern_09.043959999999999e-09
Absent
Ctcf
Pattern NameModiscoSignificance
metacluster_1/pattern_09.043959999999999e-09
Absent
Unique Homer TFs: #12
TF NameModiscoHomer
Sp2Absent
Pattern NameHomerSignificance
motif24.motif0.044645
Stat4Absent
Pattern NameHomerSignificance
motif16.motif0.0339718
Sp3Absent
Pattern NameHomerSignificance
motif24.motif0.044645
Stat5aAbsent
Pattern NameHomerSignificance
motif16.motif0.0339718
Rfx6Absent
Pattern NameHomerSignificance
motif16.motif0.0339718
Bcl6Absent
Pattern NameHomerSignificance
motif16.motif0.0382332
E2f6Absent
Pattern NameHomerSignificance
motif24.motif0.044645
E2f3Absent
Pattern NameHomerSignificance
motif24.motif0.044645
Stat5bAbsent
Pattern NameHomerSignificance
motif16.motif0.0339718
Stat3Absent
Pattern NameHomerSignificance
motif16.motif0.0339718
Sp1Absent
Pattern NameHomerSignificance
motif24.motif0.044645
Rfx2Absent
Pattern NameHomerSignificance
motif16.motif0.0339718
In [ ]: