import pandas as pd from src import annotate from src import structures as struct ''' Folds an RNA sequence...eventually. Right now just accomplishes PI predictions. ''' parser = argparse.ArgumentParser() parser.add_argument("-s", "--seqFile", help="File containing input sequence", default=None) parser.add_argument("-e", "--energyFile", help="File containing all possible helices and energies", default=None) parser.add_argument("-p", "--piesie", help="File containing correct structure annotations (piesie file)", default=None) parser.add_argument("-op", "--outpred", help="Include this flag to output predicted helices data frame", action="store_true") args = parser.parse_args() if args.seqFile != None: if args.seqFile.endswith('.fasta'): sq = annotate.fasta_iter(args.seqFile).next()[1] else: with open(args.seqFile, "r") as inFile: sq = inFile.read() else: sq = raw_input("Enter a sequence and press enter: ") sq = sq.upper() sq = sq.replace(" ", "") sq = sq.replace("T","U") if args.energyFile != None: pis = struct.predict_pis(pd.read_csv(args.energyFile), sq) else: print 'No energetics inputted' # TODO: get energetics
All possible helices predictions, mainly written by previous class. ''' parser = argparse.ArgumentParser(description="Give an input .fasta or a user defined sequences, can either show or save a plot of all of the possible sequences as well as the correct sequences for the secondary structure (if applicable).") parser.add_argument("-minls", "--minloopsize", help="Minimum loop size", type=int, default=3) parser.add_argument("-maxls", "--maxloopsize", help="Maximum loop size", type=int, default=max) parser.add_argument("-minl", "--minlength", help="Minimum stack size", type=int, default=2) parser.add_argument("-maxl", "--maxlength", help="Maximum stack size", type=int, default=15) parser.add_argument("filename", nargs='?', help="File containing input sequence", default=None) args = parser.parse_args() sq="" outfile="possibleHelices.energetics" if (args.filename != None): if args.filename.endswith('.fasta'): sq = annotate.fasta_iter(args.filename).next()[1] outfile = 'data/energetics/'+args.filename.rstrip('.fasta').split('fasta')[-1]+'.energetics' else: with open(args.filename, "r") as inFile: sq = inFile.read() else: sq = raw_input("Enter a sequence and press enter: ") sq = sq.lower() sq = sq.replace(" ", "") sq =sq.replace("t","u") possibleHelices = rnaf.rnaf_evalSequence(sq, args.minloopsize, args.maxloopsize, args.minlength, args.maxlength) rnaf.rnaf_findEnergetics(possibleHelices, sq) to_write = [] hFile = open(outfile, "w")