コード例 #1
0
 def _consumer(input_queue, output_queue):
     while True:
         line = input_queue.get()
         if line is None:
             break
         f = BEDFeature.from_string(line)
         # retrieve conservation data
         bigwig_file = chrom_bigwig_dict[f.chrom]
         arr = extract_bigwig_data(f, bigwig_file)
         # measure conservation at various sliding windows
         window_scores = []
         for window_size in window_sizes:
             window_scores.append(best_sliding_window(arr, window_size, np.mean))
         # measure average conservation
         finitearr = arr[np.isfinite(arr)]
         if len(finitearr) == 0:
             mean_cons = np.nan
         else:
             mean_cons = np.mean(finitearr)
         fields = [f.name, '%s:%d-%d[%s]' % (f.chrom, f.tx_start, f.tx_end, f.strand),
                   str(len(arr)), str(mean_cons)]
         fields.extend(map(str,window_scores))
         result = '\t'.join(fields)
         output_queue.put(result)
     output_queue.put(None)
コード例 #2
0
 def _consumer(input_queue, output_queue):
     while True:
         line = input_queue.get()
         if line is None:
             break
         f = BEDFeature.from_string(line)
         # retrieve conservation data
         bigwig_file = chrom_bigwig_dict[f.chrom]
         arr = extract_bigwig_data(f, bigwig_file)
         # measure conservation at various sliding windows
         window_scores = []
         for window_size in window_sizes:
             window_scores.append(
                 best_sliding_window(arr, window_size, np.mean))
         # measure average conservation
         finitearr = arr[np.isfinite(arr)]
         if len(finitearr) == 0:
             mean_cons = np.nan
         else:
             mean_cons = np.mean(finitearr)
         fields = [
             f.name,
             '%s:%d-%d[%s]' % (f.chrom, f.tx_start, f.tx_end, f.strand),
             str(len(arr)),
             str(mean_cons)
         ]
         fields.extend(map(str, window_scores))
         result = '\t'.join(fields)
         output_queue.put(result)
     output_queue.put(None)
コード例 #3
0
def conservation_serial(bed_file, window_sizes, chrom_bigwig_dict):
    # output header fields
    fields = ['name', 'position', 'transcript_length', 'mean']
    fields.extend(map(str, window_sizes))
    print '\t'.join(fields)
    # process bed file
    for f in BEDFeature.parse(open(bed_file)):
        # retrieve conservation data
        bigwig_file = chrom_bigwig_dict[f.chrom]
        arr = extract_bigwig_data(f, bigwig_file)
        # measure conservation at various sliding windows
        window_scores = []
        for window_size in window_sizes:
            window_scores.append(best_sliding_window(arr, window_size,
                                                     np.mean))
        # calc mean conservation
        finitearr = arr[np.isfinite(arr)]
        if len(finitearr) == 0:
            mean_cons = np.nan
        else:
            mean_cons = np.mean(finitearr)
        fields = [
            f.name,
            '%s:%d-%d[%s]' % (f.chrom, f.tx_start, f.tx_end, f.strand),
            str(len(arr)),
            str(mean_cons)
        ]
        fields.extend(map(str, window_scores))
        print '\t'.join(fields)
コード例 #4
0
def feature_conservation(f, chrom_bigwig_dict, sig_threshold, window_sizes):
    # retrieve conservation data
    bigwig_file = chrom_bigwig_dict[f.chrom]
    arr = extract_bigwig_data(f, bigwig_file)
    # calc mean conservation
    finitearr = arr[np.isfinite(arr)]
    if len(finitearr) == 0:
        mean = np.nan
        frac = np.nan
    else:
        mean = np.mean(finitearr)
        frac = (finitearr >= sig_threshold).sum() / float(len(finitearr))
    # measure conservation at various sliding windows
    window_scores = []
    for window_size in window_sizes:
        window_scores.append(best_sliding_window(arr, window_size, np.mean))
    fields = [f.name, mean, frac, len(finitearr)]
    fields.extend(window_scores)
    return map(str, fields)
コード例 #5
0
def feature_conservation(f, chrom_bigwig_dict, sig_threshold, window_sizes):
    # retrieve conservation data
    bigwig_file = chrom_bigwig_dict[f.chrom]
    arr = extract_bigwig_data(f, bigwig_file)
    # calc mean conservation
    finitearr = arr[np.isfinite(arr)]
    if len(finitearr) == 0:
        mean = np.nan
        frac = np.nan
    else:
        mean = np.mean(finitearr)
        frac = (finitearr >= sig_threshold).sum() / float(len(finitearr))
    # measure conservation at various sliding windows
    window_scores = []
    for window_size in window_sizes:
        window_scores.append(best_sliding_window(arr, window_size, np.mean))
    fields = [f.name, mean, frac, len(finitearr)]
    fields.extend(window_scores)
    return map(str, fields)
コード例 #6
0
def conservation_serial(bed_file, window_sizes, chrom_bigwig_dict):
    # output header fields
    fields = ['name', 'position', 'transcript_length', 'mean']
    fields.extend(map(str,window_sizes))
    print '\t'.join(fields)
    # process bed file
    for f in BEDFeature.parse(open(bed_file)):
        # retrieve conservation data
        bigwig_file = chrom_bigwig_dict[f.chrom]
        arr = extract_bigwig_data(f, bigwig_file)
        # measure conservation at various sliding windows
        window_scores = []
        for window_size in window_sizes:
            window_scores.append(best_sliding_window(arr, window_size, np.mean))
        # calc mean conservation
        finitearr = arr[np.isfinite(arr)]
        if len(finitearr) == 0:
            mean_cons = np.nan
        else:
            mean_cons = np.mean(finitearr)
        fields = [f.name, '%s:%d-%d[%s]' % (f.chrom, f.tx_start, f.tx_end, f.strand),
                  str(len(arr)), str(mean_cons)]
        fields.extend(map(str,window_scores))
        print '\t'.join(fields)