Example #1
0
def extractModuleData(module_data, alphabet):
    """Creates Module object given module_data list.

        - Only works on 1 module at a time: only pass in data from one module.

    """
    # Create Module object
    meme_module = Module({}, Alphabet=alphabet)

    # Only keep first 3 elements of the list
    module_data = module_data[:3]

    # Get Module general information: module_data[0]
    # Only need to keep first line
    general_dict = getModuleGeneralInfo(module_data[0][0])
    # Get Multilevel Consensus Sequence
    meme_module.ConsensusSequence = getConsensusSequence(module_data[1])
    # Pull out desired values from dict
    module_length = int(general_dict["width"])
    meme_module.Llr = int(general_dict["llr"])
    meme_module.Evalue = float(general_dict["E-value"])
    meme_module.ID = general_dict["MOTIF"]

    # Get ModuleInstances: module_data[2]
    instance_data = module_data[2][4:-2]
    for i in xrange(len(instance_data)):
        instance_data[i] = instance_data[i].split()
    # Create a ModuleInstance object and add it to Module for each instance
    for instance in instance_data:
        seqId = instance[0]
        start = int(instance[1]) - 1
        Pvalue = float(instance[2])
        sequence = instance[4]
        # Create Location object for ModuleInstance
        location = Location(seqId, start, start + module_length)
        # Create ModuleInstance
        mod_instance = ModuleInstance(sequence, location, Pvalue)
        # Add ModuleInstance to Module
        meme_module[(seqId, start)] = mod_instance

    return meme_module