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