Esempio n. 1
0
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
Esempio n. 2
0
    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