예제 #1
0
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
예제 #2
0
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")