def bayesfold(seqsin, temperature=37, params=None): '''Takes in sequences in LoadSeqs readable format and returns most likely structure from bayesfold.''' try: if params == None: params = {} aln = align_unaligned_seqs(seqsin, RNA, params=params) bayesinput = BayesInputWrapper(aln.getSeqNames(), map(str, aln.iterSeqs()), str(temperature)) bayescalc = BayesCalculation(bayesinput) bayescalc.run() struct = str(bayescalc.Alignment.Structures).split()[1] del bayescalc del bayesinput return aln, struct except Exception, e: print "BAYESFOLD ERROR: ", e
def bayesfold(seqsin, temperature=37, params=None, align=True): '''Takes in sequences in LoadSeqs readable format and returns most likely structure from bayesfold.''' try: if params is None: params = {} if not align: aln = LoadSeqs(data=seqsin, moltype=RNA, aligned=True) else: aln = align_unaligned_seqs(seqsin, RNA, params=params) bayesinput = BayesInputWrapper(aln.getSeqNames(), map(str, aln.iterSeqs()), str(temperature)) bayescalc = BayesCalculation(bayesinput) bayescalc.run() struct = str(bayescalc.Alignment.Structures).split()[1] del bayescalc del bayesinput return aln, struct except Exception, e: print "BAYESFOLD ERROR: ", format_exc(e) raise RuntimeError("BAYESFOLD ERROR: ", format_exc(e))
from cogent.parse.fasta import MinimalFastaParser from sys import argv from cogent import LoadSeqs, RNA class BayesWrapper: def __init__(self,name,labels,seqs): self.name = name self.temperature = '37' self.primer3 = '' self.primer5 = '' self.labels = labels self.sequences = seqs self.mappings = [] self.id = '12345' if __name__ == "__main__": aln = LoadSeqs(argv[1], moltype=RNA) headers = aln.getSeqNames() seqs = map(str, aln.iterSeqs()) print headers print seqs test = BayesWrapper('test', headers, seqs) temperature = 37 bayescalc = BayesCalculation(test) bayescalc.run() print str(bayescalc.Alignment.Structures).split()[1] #sequences = RNAAlignment(sequences=seqs) #structures = sequences.fold(temperature, 2, 100) #alignment = RNAStructureAlignment(sequences,structures,temperature).Structures #print str(alignment).split("\n")[0]