コード例 #1
0
ファイル: meme.py プロジェクト: pombredanne/old-cogent
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
コード例 #2
0
ファイル: gibbs.py プロジェクト: pombredanne/old-cogent
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):