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
def GibbsParser(lines, truncate_len=None, strict=True): """Returns a MotifResults object given a Gibbs Sampler results file. - only works with results from command line version of Gibbs Sampler """ try: #Get sequence and motif blocks sequence_block, motif_block = get_sequence_and_motif_blocks(lines) except Exception, e: if strict: raise e else: return None #Create MotifResults object 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):