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)
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)
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)