def comRNA_parser(lines=None,pseudo=True,first=False): """Parsed comRNA output. pseudo - if True, report results with pseudoknots; if flag is False pseudoknots will be removed. """ names = get_names(lines) result = [] for block in minimalComrnaParser(lines): for structure in blockParser(block): for struct in structParser(structure): for pairs,seq in pairsParser(struct,names): result.append([seq,pairs]) if first: break if first: break if first: break if not pseudo: tmp = [] for block in result: tmp.append([block[0],opt_single_random(block[-1])]) result = tmp return result
def to_pairs(list=None,pseudo=True): """ Converts nupack structure string into pairs object pseudoknotted and not pseudoknotted. """ tmp = list[1] pairs = [] if list.__contains__('pseudoknotted!'): #since pseudoknotted is denoted by {} it divides into {} and () string #they are then turned into pairs lists seperatly and then the lists are #joined to form the complete set of pairs first = second = tmp first = ViennaStructure(first.translate(curly_to_dots_table)) second = second.translate(bracket_to_dots_table) second = ViennaStructure(second.translate(curly_to_bracket_table)) pairs = first.toPairs() pairs.extend(second.toPairs()) pairs.sort() if not pseudo: pairs = opt_single_random(pairs) pairs.sort() else: structure = ViennaStructure(tmp.translate(curly_to_bracket_table)) pairs = structure.toPairs() pairs.sort() return pairs
def ilm_parser(lines=None, pseudo=True): """Ilm format parser Takes lines as input and returns a list with Pairs object. Pseudo - if True returns pairs with possible pseudoknot if False removes pseudoknots """ pairs = [] for line in lines: if line.startswith('Final') or len(line) == 1: #skip these lines continue line = line.strip('\n') line = map(int, line.split(None, 2)) if line[1] == 0: continue #Skip this line, not a pair else: pairs.append(line) pairs = adjust_base(pairs, -1) tmp = Pairs(pairs).directed() tmp.sort() if not pseudo: tmp = opt_single_random(tmp) tmp.sort() result = [] result.append(tmp) return result
def ilm_parser(lines=None,pseudo=True): """Ilm format parser Takes lines as input and returns a list with Pairs object. Pseudo - if True returns pairs with possible pseudoknot if False removes pseudoknots """ pairs = [] for line in lines: if line.startswith('Final') or len(line)==1:#skip these lines continue line = line.strip('\n') line = map(int,line.split(None,2)) if line[1] == 0: continue #Skip this line, not a pair else: pairs.append(line) pairs = adjust_base(pairs,-1) tmp = Pairs(pairs).directed() tmp.sort() if not pseudo: tmp = opt_single_random(tmp) tmp.sort() result = [] result.append(tmp) return result
def pknotsrg_parser(lines=None,pseudo=True): """Parser for pknotsrg output format Returns a list containing: sequence, structure and energy ex: [[seq,[structure],energy]] pseudo - If True pairs will be returned with pseudoknots If False pairs will be returned without pseudoknots """ result = [] struct = str(lines[1]).strip('\n') seq = lines[0].strip() tmp_pairs,energy = to_pairs(struct) tmp_pairs.sort() if not pseudo: tmp_pairs = opt_single_random(tmp_pairs) tmp_pairs.sort() result.append([seq,tmp_pairs,energy]) return result
def pknotsrg_parser(lines=None, pseudo=True): """Parser for pknotsrg output format Returns a list containing: sequence, structure and energy ex: [[seq,[structure],energy]] pseudo - If True pairs will be returned with pseudoknots If False pairs will be returned without pseudoknots """ result = [] struct = str(lines[1]).strip('\n') seq = lines[0].strip() tmp_pairs, energy = to_pairs(struct) tmp_pairs.sort() if not pseudo: tmp_pairs = opt_single_random(tmp_pairs) tmp_pairs.sort() result.append([seq, tmp_pairs, energy]) return result