예제 #1
0
if __name__ == '__main__':
    yzer = MotifAnalyzer()

    dirpath = 'karmel/Desktop/Projects/GlassLab/Notes_and_Reports/CD4TCells/iTreg_enhancers/2014_02_14/Motifs'
    dirpath = yzer.get_path(dirpath)

    for ab in ('me2', 'ac'):
        for condition in ('treg', 'itreg', 'activated'):
            cond_dirpath = yzer.get_filename(dirpath,
                                             '{}_{}'.format(condition, ab))

            if True:
                filename = yzer.get_filename(
                    cond_dirpath, '{}_{}_enhancers.txt'.format(condition, ab))

                data = yzer.import_file(filename)
                data = data.fillna(0)

                yzer.run_homer(data,
                               'all',
                               cond_dirpath,
                               cpus=6,
                               center=True,
                               reverse=False,
                               preceding=False,
                               size=200,
                               length=[8, 10, 12, 15],
                               mock=True)

        for condition in ('itreg', 'treg'):
            cond_dirpath = yzer.get_filename(dirpath,
예제 #2
0
'''
Created on Jul 5, 2012

@author: karmel
'''
from glasslab.dataanalysis.motifs.motif_analyzer import MotifAnalyzer
from glasslab.dataanalysis.misc.gr_project_2012.elongation import get_rep_string
import sys

if __name__ == '__main__':
    yzer = MotifAnalyzer()
    dirpath = 'karmel/Desktop/Projects/Classes/Rotations/Finland_2012/GR_Project/motifs'
    dirpath = yzer.get_path(dirpath)

    pausing_data = yzer.import_file(
        yzer.get_filename(dirpath, 'feature_vectors.txt'))
    data = yzer.import_file(
        yzer.get_filename(dirpath, 'transcript_vectors.txt'))

    try:
        min_ratio = float(sys.argv[1])
    except IndexError:
        min_ratio = 1.5

    if False:
        yzer.prep_files_for_homer(data,
                                  'all_transcripts_promoter',
                                  dirpath,
                                  center=False,
                                  reverse=False,
                                  preceding=True,
예제 #3
0
Created on Nov 7, 2012

@author: karmel
'''
from __future__ import division
from glasslab.dataanalysis.misc.cd4tcell_finland_2012.resources import replicate_sets
from glasslab.dataanalysis.motifs.motif_analyzer import MotifAnalyzer

if __name__ == '__main__':
    yzer = MotifAnalyzer()
    dirpath = 'karmel/Desktop/Projects/GlassLab/Notes_and_Reports/CD4TCells_Finland_2012/Analysis_2013_02'
    dirpath = yzer.get_path(dirpath)
    go_path = yzer.get_and_create_path(dirpath, 'with_me3', 'go_analysis',
                                       '0_8_min_lfc')

    data = yzer.import_file(
        yzer.get_filename(dirpath, 'transcript_vectors.txt'))
    data = data.fillna(0)
    data = data[data['naive_me3_tag_count'] + data['act_me3_tag_count'] > 0]

    if False:
        curr_path = yzer.get_and_create_path(dirpath, 'with_me3',
                                             'motif_analysis')

        yzer.run_homer(data,
                       'all_refseq_preceding',
                       curr_path,
                       center=False,
                       reverse=False,
                       preceding=True,
                       size=200,
                       cpus=6)
예제 #4
0
'''
from __future__ import division
from glasslab.dataanalysis.motifs.motif_analyzer import MotifAnalyzer
from collections import OrderedDict

if __name__ == '__main__':
    yzer = MotifAnalyzer()

    dirpath = 'karmel/Desktop/Projects/GlassLab/Notes_and_Reports/CD4TCells/TReg_enhancers/2013_04_01'
    dirpath = yzer.get_path(dirpath)
    motif_dirpath = yzer.get_filename(dirpath, 'motifs')

    min_score = 10

    stats = OrderedDict()
    all_data = yzer.import_file(
        yzer.get_filename(dirpath, 'foxp3_with_treg_enhancers.txt')).fillna(0)
    stats['all'] = len(all_data)
    # Filter out promoters
    data = all_data[all_data['tss_id'] == 0]
    stats['enhancers'] = len(data)
    stats['me2_treg'] = sum(data['me2_id'] > 0)
    stats['ac_treg'] = sum(data['ac_id'] > 0)

    stats['me2_treg_naive'] = sum((data['me2_id'] > 0)
                                  & (data['naive_id'] > 0))
    stats['me2_treg_th1'] = sum((data['me2_id'] > 0) & (data['th1_id'] > 0))
    stats['me2_treg_naive_th1'] = sum((data['me2_id'] > 0)
                                      & (data['naive_id'] > 0)
                                      & (data['th1_id'] > 0))
    stats['me2_treg_only'] = sum((data['me2_id'] > 0)
                                 & (data['naive_id'] == 0)
예제 #5
0
@author: karmel

The goal here is to see if we can tease out which features are 
predictive of characteristics of interest, such as pausing ratio
or transrepression. Worth a stab.
'''
from glasslab.dataanalysis.misc.gr_project_2012.elongation import get_rep_string
import sys
from glasslab.dataanalysis.motifs.motif_analyzer import MotifAnalyzer

if __name__ == '__main__':
    yzer = MotifAnalyzer()
    dirpath = 'karmel/Desktop/Projects/Classes/Rotations/Finland_2012/GR_Project/motifs'
    dirpath = yzer.get_path(dirpath)

    grouped = yzer.import_file(
        yzer.get_filename(dirpath, 'feature_vectors.txt'))

    paused = []
    if True:
        # Can we predict pausing ratio?

        # Minimal ratio in KLA+Dex vs. KLA pausing
        try:
            min_ratio = float(sys.argv[1])
        except IndexError:
            min_ratio = 2
        try:
            secondary_min_ratio = float(sys.argv[2])
        except IndexError:
            secondary_min_ratio = 1.2
예제 #6
0
'''
Created on Sep 7, 2012

@author: karmel
'''
from glasslab.dataanalysis.motifs.motif_analyzer import MotifAnalyzer

if __name__ == '__main__':
    yzer = MotifAnalyzer()

    dirpath = 'karmel/Desktop/Projects/Classes/Rotations/Finland_2012/GR_Project/'
    dirpath = yzer.get_path(dirpath)
    motif_dirpath = yzer.get_filename(dirpath, 'motifs', 'from_peaks')

    all_data = yzer.import_file(
        yzer.get_filename(motif_dirpath, 'p65_kla_vectors.txt'))
    size = 100
    if True:
        for ratio in (3, 2, 1.5):
            enhancers = yzer.import_file(
                yzer.get_filename(
                    dirpath, 'boxplots_non_refseq_by_p65',
                    'enhancer_like_lose_p65_{0}x_change_dsg_only.txt'.format(
                        ratio)))
            enhancers['glass_transcript_id'] = enhancers['id']

            # Limit to peaks and touching transcripts, then pull out peaks that intersect our enhancer set
            data = all_data[all_data['touches'] == 't']
            data = data.merge(enhancers,
                              how='right',
                              on='glass_transcript_id',
예제 #7
0
@author: karmel
'''
from __future__ import division
from glasslab.dataanalysis.motifs.motif_analyzer import MotifAnalyzer

if __name__ == '__main__':
    yzer = MotifAnalyzer()

    dirpath = 'karmel/Desktop/Projects/GlassLab/Notes_and_Reports/CD4TCells/Foxo1'
    dirpath = yzer.get_path(dirpath)
    motifs_dirpath = yzer.get_and_create_path(dirpath, 'motifs')

    peak_pretty = 'Foxo1'
    peak = peak_pretty.lower()
    foxo1 = yzer.import_file(
        yzer.get_filename(dirpath,
                          '{0}_with_foxp3.txt'.format(peak))).fillna(0)

    datasets = [
        ('foxo1_all', foxo1),
        ('foxo1_tss', foxo1[foxo1['tss_id'] > 0]),
        ('foxo1_enhancers', foxo1[foxo1['tss_id'] == 0]),
    ]
    for name, subset in datasets:
        subset['id'] = subset['{0}_id'.format(peak)]
        subset['start'] = subset['{0}_start'.format(peak)]
        subset['end'] = subset['{0}_end'.format(peak)]

        yzer.run_homer(subset,
                       name,
                       motifs_dirpath,
예제 #8
0
@author: karmel
'''
from __future__ import division
from glasslab.dataanalysis.motifs.motif_analyzer import MotifAnalyzer

if __name__ == '__main__':
    yzer = MotifAnalyzer()

    dirpath = 'karmel/Desktop/Projects/GlassLab/Notes_and_Reports/CD4TCells/Rudensky_enhancers'
    dirpath = yzer.get_path(dirpath)
    motifs_dirpath = yzer.get_and_create_path(dirpath, 'motifs')

    peak_pretty = 'Foxp3'
    peak = peak_pretty.lower()
    foxp3 = yzer.import_file(
        yzer.get_filename(dirpath,
                          '{0}_1_with_naive_me2.txt'.format(peak))).fillna(0)
    naive = yzer.import_file(
        yzer.get_filename(dirpath,
                          'naive_me2_with_{0}.txt'.format(peak))).fillna(0)

    # Filter out promoters
    foxp3 = foxp3[foxp3['tss_id'] == 0]
    naive = naive[naive['tss_id'] == 0]

    # Get venn-diagram sets for foxp3/me2
    only_foxp3 = foxp3[foxp3['naive_id'] == 0]
    only_naive = naive[naive['foxp3_1_id'] == 0]
    shared = foxp3[foxp3['naive_id'] > 0]
    print len(only_foxp3), len(only_naive), len(shared)
'''
Created on Sep 7, 2012

@author: karmel
'''
from glasslab.dataanalysis.motifs.motif_analyzer import MotifAnalyzer


if __name__ == '__main__':
    yzer = MotifAnalyzer()
    
    dirpath = 'karmel/Desktop/Projects/Classes/Rotations/Finland_2012/GR_Project/motifs'
    dirpath = yzer.get_path(dirpath)
    motif_dirpath = yzer.get_filename(dirpath,'from_peaks')
    
    transcripts = yzer.import_file(yzer.get_filename(dirpath, 'transcript_vectors.txt'))
    transcripts['glass_transcript_id'] = transcripts['id']
    
    for peak_type in ('gr_dex', 'gr_kla_dex', 'p65_kla_dex','p65_kla'):
        size = 100
        if True:
            all_data = yzer.import_file(yzer.get_filename(motif_dirpath,
                                                   '{0}_vectors.txt'.format(peak_type)))
        
            all_data = all_data.merge(transcripts, how='left', on='glass_transcript_id',suffixes=['','trans'])
            all_data = all_data.fillna(0)
            
            for super_name, data in (#('all', all_data,),
                                  #('refseq', all_data[(all_data['score'] > 10) & (all_data['has_refseq'] == 1) 
                                  #                & (all_data['touches'] == 't') | (all_data['relationship'] == 'is downstream of')],),
                                  #('distal', all_data[(all_data['distal'] == 't')],),
예제 #10
0
@author: karmel
'''
from __future__ import division
from glasslab.dataanalysis.motifs.motif_analyzer import MotifAnalyzer

if __name__ == '__main__':
    yzer = MotifAnalyzer()

    dirpath = 'karmel/Desktop/Projects/GlassLab/Notes_and_Reports/CD4TCells/H3K4me2/Analysis/venn_diagrams'
    dirpath = yzer.get_path(dirpath)
    motifs_dirpath = yzer.get_and_create_path(dirpath, 'motifs')

    peak_pretty = 'H3K4me2'
    peak = peak_pretty.lower()
    th1 = yzer.import_file(
        yzer.get_filename(
            dirpath, 'th1_with_th2_me1_and_{0}.txt'.format(peak))).fillna(0)
    th2 = yzer.import_file(
        yzer.get_filename(
            dirpath, 'th2_with_th1_me1_and_{0}.txt'.format(peak))).fillna(0)
    naive = yzer.import_file(
        yzer.get_filename(
            dirpath, '{0}_with_th1_and_th2_me1.txt'.format(peak))).fillna(0)

    # Filter out promoters
    th1 = th1[th1['tss_id'] == 0]
    th2 = th2[th2['tss_id'] == 0]
    naive = naive[naive['tss_id'] == 0]

    # Get venn-diagram sets for th1/th2
    only_th1 = th1[th1['th2_id'] == 0]
예제 #11
0
if __name__ == '__main__':
    yzer = MotifAnalyzer()
    grapher = SeqGrapher()

    dirpath = 'karmel/Desktop/Projects/GlassLab/Notes_and_Reports/CD4TCells/TReg_enhancers/2013_04_01'
    dirpath = yzer.get_path(dirpath)
    motif_dirpath = yzer.get_filename(dirpath, 'motifs')
    graph_dirpath = yzer.get_filename(dirpath, 'piecharts')

    min_score = 10
    for antibody in ('me2', ):
        data = {}
        celltypes = ['treg', 'naive', 'th1', 'th2']
        for celltype in ('treg', 'th1'):
            data[celltype] = yzer.import_file(
                yzer.get_filename(
                    dirpath, '{0}_{1}_versus_others_with_foxp3.txt'.format(
                        celltype, antibody))).fillna(0)

            # Filter out promoters
            data[celltype] = data[celltype][data[celltype]['tss_id'] == 0]

            # Get venn-diagram "only" sets
            others = celltypes[:]
            others.remove(celltype)

            data[celltype + '_only'] = data[celltype][data[celltype]\
                                        [[o + '_id' for o in others]].sum(axis=1) == 0]

            # Pairwise
            for other in others:
                other_pair = others[:]
예제 #12
0
from glasslab.dataanalysis.motifs.motif_analyzer import MotifAnalyzer

if __name__ == '__main__':
    yzer = MotifAnalyzer()

    dirpath = 'karmel/Desktop/Projects/Classes/Rotations/Finland_2012/GR_Project/motifs/from_peaks/vs_non_dsg'
    dirpath = yzer.get_path(dirpath)

    for peak_type in (  #'gr_dex_fa', 
            'gr_kla_dex_fa',
            #'gr_dex_dsg', 'gr_kla_dex_dsg',
    ):
        size = 200
        if True:
            all_data = yzer.import_file(
                yzer.get_filename(dirpath,
                                  '{0}_vectors.txt'.format(peak_type)))

            all_data = all_data.fillna(0)

            for super_name, data in ((
                    'all',
                    all_data,
            ), ):
                for name, dataset in ((
                        'all',
                        data,
                ), ):
                    # We have multiple copies of peaks if they align to different transcripts
                    curr_path = yzer.get_and_create_path(
                        dirpath, peak_type, super_name, name)
@author: karmel
'''
from __future__ import division
from glasslab.dataanalysis.motifs.motif_analyzer import MotifAnalyzer

if __name__ == '__main__':
    yzer = MotifAnalyzer()

    dirpath = 'karmel/Desktop/Projects/GlassLab/Notes_and_Reports/CD4TCells/H3K4me2/Analysis/venn_diagrams'
    dirpath = yzer.get_path(dirpath)
    motifs_dirpath = yzer.get_and_create_path(dirpath, 'motifs')

    peak_pretty = 'H3K4me2'
    peak = peak_pretty.lower()
    dp = yzer.import_file(
        yzer.get_filename(dirpath, 'dp_with_{0}.txt'.format(peak))).fillna(0)
    naive = yzer.import_file(
        yzer.get_filename(dirpath, '{0}_with_dp.txt'.format(peak))).fillna(0)

    # Filter out promoters
    dp = dp[dp['tss_id'] == 0]
    naive = naive[naive['tss_id'] == 0]

    # Get venn-diagram sets for th1/th2
    dp_only = dp[dp['naive_id'] == 0]
    naive_only = naive[naive['dp_id'] == 0]
    shared = naive[naive['dp_id'] > 0]

    datasets = [dp_only, naive_only, shared]
    main_peak = ['dp', 'naive', 'naive']
    names = [
예제 #14
0
Created on Apr 18, 2013

@author: karmel
'''
from __future__ import division
from glasslab.dataanalysis.motifs.motif_analyzer import MotifAnalyzer
from glasslab.dataanalysis.graphing.seq_grapher import SeqGrapher

if __name__ == '__main__':
    yzer = MotifAnalyzer()

    dirpath = 'karmel/Desktop/Projects/GlassLab/Notes_and_Reports/CD4TCells/TReg_enhancers/2013_04_01'
    dirpath = yzer.get_path(dirpath)
    motif_dirpath = yzer.get_filename(dirpath, 'motifs')

    foxp3 = yzer.import_file(yzer.get_filename(
        dirpath, 'foxp3_with_stat1.txt')).fillna(0)
    stat1 = yzer.import_file(yzer.get_filename(
        dirpath, 'stat1_with_foxp3.txt')).fillna(0)

    print len(foxp3), len(stat1)
    print sum(foxp3['stat1_id'] > 0)
    print sum(foxp3['stat1_id'] > 0) / len(foxp3)
    print sum(stat1['foxp3_id'] > 0)
    print sum(stat1['foxp3_id'] > 0) / len(stat1)

    foxp3_enh = foxp3[(foxp3['tss_me2_id'] == 0) & (foxp3['tss_id'] == 0)]
    foxp3_tss = foxp3[(foxp3['tss_me2_id'] > 0) | (foxp3['tss_id'] > 0)]
    print len(foxp3_enh)
    print sum(foxp3_enh['stat1_id'] > 0) / len(foxp3_enh)
    print len(foxp3_tss)
    print sum(foxp3_tss['stat1_id'] > 0) / len(foxp3_tss)
예제 #15
0
Created on Mar 28, 2013

@author: karmel
'''
from glasslab.dataanalysis.motifs.motif_analyzer import MotifAnalyzer

if __name__ == '__main__':
    yzer = MotifAnalyzer()

    dirpath = 'karmel/Desktop/Projects/GlassLab/Notes_and_Reports/CD4TCells/TReg_enhancers/2013_03_19'
    dirpath = yzer.get_path(dirpath)
    motif_dirpath = yzer.get_filename(dirpath, 'motifs')

    for antibody in ('me2', 'ac'):
        treg = yzer.import_file(
            yzer.get_filename(
                dirpath, 'treg_with_naive_{0}.txt'.format(antibody))).fillna(0)
        naive = yzer.import_file(
            yzer.get_filename(
                dirpath, 'naive_with_treg_{0}.txt'.format(antibody))).fillna(0)

        # Filter out promoters
        treg = treg[treg['tss_id'] == 0]
        naive = naive[naive['tss_id'] == 0]

        # Get venn-diagram sets for foxp3/me2
        only_treg = treg[treg['naive_id'] == 0]
        only_naive = naive[naive['treg_id'] == 0]
        shared = treg[treg['naive_id'] > 0]
        print len(only_treg), len(only_naive), len(shared)
예제 #16
0
'''
Created on Feb 8, 2013

@author: karmel
'''
from glasslab.dataanalysis.motifs.motif_analyzer import MotifAnalyzer

if __name__ == '__main__':
    yzer = MotifAnalyzer()

    base_dirpath = yzer.get_path(
        'karmel/GlassLab/Notes_and_Reports/NOD_BALBc/ThioMacs/Analysis_2013_02/'
    )
    dirpath = yzer.get_and_create_path(base_dirpath, 'motifs/')
    filename = yzer.get_filename(base_dirpath, 'transcript_vectors.txt')
    data = yzer.import_file(filename)
    data = data.fillna(0)

    # Promoters
    if False:
        refseq = data[data['has_refseq'] == 1]
        refseq = refseq[refseq['transcript_score'] >= 4]
        if True:
            yzer.run_homer(refseq,
                           'refseq_promoter',
                           dirpath,
                           cpus=6,
                           center=False,
                           reverse=False,
                           preceding=True,
                           size=400,
예제 #17
0
Created on Jul 4, 2012

@author: karmel

'''
from glasslab.dataanalysis.misc.gr_project_2012.elongation import get_rep_string
import sys
from glasslab.dataanalysis.motifs.motif_analyzer import MotifAnalyzer
from glasslab.dataanalysis.graphing.seq_grapher import SeqGrapher

if __name__ == '__main__':
    yzer = MotifAnalyzer()
    dirpath = 'karmel/Desktop/Projects/Classes/Rotations/Finland 2012/KLA skew/'
    dirpath = yzer.get_path(dirpath)

    grouped = yzer.import_file(
        yzer.get_filename(dirpath, 'feature_vectors.txt'))

    repressed = []
    if True:
        # Can we predict pausing ratio?

        # Minimal ratio in KLA+Dex vs. KLA pausing
        try:
            min_ratio = float(sys.argv[1])
        except IndexError:
            min_ratio = -1
        try:
            thresh = int(sys.argv[3])
        except IndexError:
            thresh = 4
예제 #18
0
@author: karmel

'''
from __future__ import division
from glasslab.dataanalysis.misc.gr_project_2012.elongation import get_rep_string
import sys
from glasslab.dataanalysis.motifs.motif_analyzer import MotifAnalyzer
from glasslab.dataanalysis.graphing.seq_grapher import SeqGrapher

if __name__ == '__main__':
    yzer = MotifAnalyzer()
    dirpath = 'karmel/Desktop/Projects/Classes/Rotations/Finland 2012/KLA skew/'
    dirpath = yzer.get_path(dirpath)

    grouped = yzer.import_file(
        yzer.get_filename(dirpath, 'feature_vectors.txt'))

    repressed = []
    if True:
        # Can we predict pausing ratio?

        # Minimal ratio in KLA+Dex vs. KLA pausing
        try:
            min_ratio = float(sys.argv[1])
        except IndexError:
            min_ratio = -1
        try:
            thresh = int(sys.argv[3])
        except IndexError:
            thresh = 4
예제 #19
0
'''
Created on Apr 12, 2013

@author: karmel
'''
from __future__ import division
from glasslab.dataanalysis.motifs.motif_analyzer import MotifAnalyzer

if __name__ == '__main__':
    yzer = MotifAnalyzer()

    dirpath = 'karmel/Desktop/Projects/GlassLab/Notes_and_Reports/CD4TCells/TReg_enhancers/2013_04_01'
    dirpath = yzer.get_path(dirpath)
    data = yzer.import_file(yzer.get_filename(
        dirpath, 'th1_with_stat1_ko.txt')).fillna(0)

    print len(data)
    data = data[data['tss_id'] == 0]
    data['ko_ratio'] = data['ko_id'] / data['th1_id']
    data['treg_ratio'] = data['treg_id'] / data['th1_id']
    enh = len(data)
    print enh
    print sum(data['ko_ratio'] < .5), sum(data['ko_ratio'] < .5) / enh
    print sum(data['treg_ratio'] < .5), sum(data['treg_ratio'] < .5) / enh
    print sum((data['treg_ratio'] < .5) & (data['ko_ratio'] < .5))
    print sum((data['treg_ratio'] < .5) & (data['ko_ratio'] < .5)) / enh
'''
Created on Sep 7, 2012

@author: karmel
'''
from glasslab.dataanalysis.motifs.motif_analyzer import MotifAnalyzer
from glasslab.dataanalysis.misc.gr_project_2012.v1.boxplots_redistribution_pairs import get_high_quality_pairs

if __name__ == '__main__':
    yzer = MotifAnalyzer()

    dirpath = 'karmel/Desktop/Projects/Classes/Rotations/Finland_2012/GR_Project/'
    dirpath = yzer.get_path(dirpath)
    motif_dirpath = yzer.get_filename(dirpath, 'motifs', 'from_peaks')

    transcripts = yzer.import_file(
        yzer.get_filename(dirpath, 'motifs', 'transcript_vectors.txt'))
    transcripts['glass_transcript_id'] = transcripts['id']

    size = 200
    if True:
        all_data = yzer.import_file(
            yzer.get_filename(
                dirpath, 'redistribution',
                'p65_peaks_bigger_in_kla_dex_with_nearby_bigger_kla_peaks.txt')
        )

        all_data = get_high_quality_pairs(all_data, transcripts)

        for super_name, data in (
            (
                'all',