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)
Esempio n. 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)
Esempio n. 3
0
 def _consumer(input_queue, output_queue):
     while True:
         line = input_queue.get()
         if line is None:
             break
         f = BEDFeature.from_string(line)
         fields = feature_conservation(f, chrom_bigwig_dict, sig_threshold,
                                       window_sizes)
         output_queue.put('\t'.join(fields))
     output_queue.put(None)
 def _consumer(input_queue, output_queue):
     while True:
         line = input_queue.get()
         if line is None:
             break
         f = BEDFeature.from_string(line)
         fields = feature_conservation(f, chrom_bigwig_dict, 
                                       sig_threshold, window_sizes)
         output_queue.put('\t'.join(fields))
     output_queue.put(None)