def MemeParser(lines): """Returns a MotifResults object given a MEME results file. """ # Create MotifResults object meme_motif_results = MotifResults() # Get main block and alphabet main_block, alphabet = getDataBlock(lines) # Add alphabet to MotifResults object meme_motif_results.Alphabet = alphabet # Get command line summary block and module blocks command_block, module_blocks = getCommandModuleBlocks(main_block) if command_block: # Extract command line data and put in dict parameters_list = extractCommandLineData(command_block) # Add parameters dict to MotifResults object parameters meme_motif_results.Parameters = parameters_list # make sure modules were found if len(module_blocks) > 0: # Get Summary of motifs block summary_block = getSummaryBlock(module_blocks[-1]) # Extract summary data and get summary_dict summary_dict = extractSummaryData(summary_block) # Add summary dict to MotifResults object meme_motif_results.Results = summary_dict # Get blocks for each module module_blocks = getModuleDataBlocks(module_blocks) # Extract modules and put in MotifResults.Modules list for module in module_blocks: meme_motif_results.Modules.append(extractModuleData(module, alphabet)) for module in meme_motif_results.Modules: meme_motif_results.Motifs.append(Motif(module)) return meme_motif_results
gibbs_motif_results = MotifResults() #Get sequence map sequence_map = get_sequence_map(sequence_block) #Get motif blocks motif_blocks = get_motif_blocks(motif_block) #Get modules for module in motif_blocks: if module[1] == 'No Motifs Detected': print "No Modules detcted!!", module[0] continue for cur_smod in build_module_objects(module, sequence_map, truncate_len=truncate_len): gibbs_motif_results.Modules.append(cur_smod) module_ids_to_int(gibbs_motif_results.Modules) print "Found:", len(gibbs_motif_results.Modules) for ct, module in enumerate(gibbs_motif_results.Modules): gibbs_motif_results.Motifs.append(Motif(module)) gibbs_motif_results.Alphabet=module.Alphabet return gibbs_motif_results if __name__ == "__main__": from sys import argv, exit print "Running..." if len(argv) != 2: print "Usage: gibbs.py <gibbs out file>" exit(1) mr = GibbsParser(open(argv[1]), 24) print mr