if __name__ == '__main__' : TERM_ESCAPE = True try : pipeline_args = {} # herro announce('ChIPSeq Experiment Pipeline Script Generator') print textwrap.fill(start_text) opts, args = parser.parse_args(sys.argv[1:]) if len(args) > 0 : warn("Arguments were passed, but this script doesn't accept any arguments, rudely ignoring them...\n") # this dictionary will be used to generate a JSON formatted file with # all the relevant settings for the pipeline json_dict = {} ############################################################################ # name of the experiment ############################################################################ def_path = os.path.basename(os.getcwd()) exp_name = input('Experiment name',def_path) exp_name = exp_name.replace(' ','_') # shhhhhhhh... json_dict['experiment name'] = exp_name json_dict['analysis path'] = os.getcwd()
if __name__ == '__main__' : TERM_ESCAPE = True try : pipeline_args = [] # list of (arg_key,arg_val) tuples # herro announce('ChIP-Seq Experiment Read Alignment Pipeline Script Generator') print textwrap.fill(start_text) opts, args = parser.parse_args(sys.argv[1:]) if len(args) > 0 : warn("Arguments were passed, but this script doesn't accept any arguments, rudely ignoring them...\n") # this dictionary will be used to generate a JSON formatted file with # all the relevant settings for the pipeline json_dict = {} modules_list = [] ############################################################################ # get settings ############################################################################ global_tool_settings = get_global_tool_settings() local_tool_settings = get_local_tool_settings() #valid_tool_settings = global_tool_settings.keys() + local_tool_settings.keys() all_tool_settings = {} all_tool_settings.update(global_tool_settings) all_tool_settings.update(local_tool_settings)
# filter the records pass_recs = [] for peak in peaks : # test each of the fields, if any one fails skip the record if not all([c(int(peak['length'])) for c in field_filters['length']]) or \ not all([c(int(peak['tags'])) for c in field_filters['tags']]) or \ not all([c(10**(float(peak['-10*log10(pvalue)'])/-10)) for c in field_filters['pvalue']]) or \ not all([c(float(peak['fold_enrichment'])) for c in field_filters['fold_enrichment']]) or \ not all([c(float(peak['FDR(%)'])) for c in field_filters['fdr']]) : continue else : pass_recs.append([peak[k] for k in MACSOutput.FIELD_NAMES]) if len(pass_recs) == 0 : warn('WARNING: no records remain after filtering\n') sys.exit(1) # sorting if opts.sort_by : pass_recs.sort(key=_sort_keys[opts.sort_by],reverse=opts.sort_dir != 'ASCEND') # top records num_recs = len(pass_recs) if not opts.top else min(len(pass_recs),opts.top) # construct the summary string filters_str = 'none' if len(opts.filters) == 0 else ', '.join(opts.filters) sort_str = 'original order' if not opts.sort_by else opts.sort_by+', '+opts.sort_dir shuffled_str = str(opts.shuffle) summary = summary_str%{'macs_fn':args[0],'num_recs':num_recs, 'filters':filters_str,