Exemplo n.º 1
0
def duplex2_energy(s):
    s = 'c' + s[1] + 'GCgaaaGC' + s[0] + 'c'
    ss = '((((....))))'
    from rna_tools.Seq import RNASequence
    seq = RNASequence(s)
    en, ss, comment = seq.predict_ss('mcfold', constraints=ss)
    # print('   ', s, en, ss)
    return en
Exemplo n.º 2
0
def duplex_energy(s):
    """
    cGAUCgaaaGAUCg
    (((((....)))))
    rna_secondary_structure_prediction.py --method mcfold --file wt.fa
    """
    s = 'cG' + s[1] + 'GCgaaaGC' + s[0] + 'Cg'
    ss = '(((((....)))))'
    from rna_tools.Seq import RNASequence
    seq = RNASequence(s)
    en, ss, comment = seq.predict_ss('mcfold', constraints=ss)
    print('   ', s, en, ss)
    return en
            cst = f.readline().strip()
            assert cst, 'Cst line empty, check the input file'

    try:
        print(seq)
    except NameError:
        parser.print_usage()
        parser.exit(1)

    if args.cst:
        cst = args.cst
    if cst:
        print(cst, '<= cst')

    if args.method == 'cyclefold':
        seq = RNASequence(seq)
        ss, en = seq.predict_ss('rnastructure_CycleFold', verbose=args.verbose)
        print(en, ss)

    if args.method == 'mcfold':
        seq = RNASequence(seq)
        if cst:
            en, ss, comment = seq.predict_ss('mcfold',
                                             constraints=cst,
                                             verbose=args.verbose)
        else:
            en, ss, comment = seq.predict_ss(method='mcfold',
                                             verbose=args.verbose)
        #if not ss:
        #    ss = 'x'
        print(ss, en)
Exemplo n.º 4
0
#!/usr/bin/python
#-*- coding: utf-8 -*-
from rna_tools.Seq import RNASequence

seq = RNASequence("CCuuuuGG")
print(seq.predict_ss("mcfold", verbose=True))

seq = RNASequence("CCuuuuGG")
print(seq.predict_ss("mcfold", constraints='(......)', verbose=True))

import rna_tools.tools.rna_alignment.rna_alignment as ra

alignment = ra.RNAalignment('../input/RF02679_pistol_stockholm.txt')
for s in alignment:
    s.remove_gaps()
    print(s)
    print(s.seq)
    print(s.ss)
    # hack
    s2 = RNASequence(s.seq, s.ss)
    ss = s2.predict_ss(method='mcfold', constraints=s.ss.replace('.', '*'), verbose=True)
    print(ss)
    break

seq = 'acucggcuaggcgaguauaaauagccgucaggccuagcgcguccaagccuagccccuucuggggcugggcgaagggucggg'
ss =  '((((........)))).......((((..............(((((((((((((((....)))))))))))))))..))))'
s = RNASequence(seq, ss)
print(s)

cst1 = "((((........)))).......((((..............(((((((((((((((....)))))))))))))))..))))"
cst2 = "((((........)))).......((((..............((((((((((..............))))))))))..))))"
        # What to show? sst (from .cet file) of ss processed with RPT
        if args.template:
            log.info(sst)
        else:
            log.info(seq.ss)

        if 'N' in seq.seq:  # + 'N':
            skipped += 1
            continue  # skip a seq with N

        method = args.method

        c = 1
        dfrow = ''
        for cst in cstl:
            seqq = RNASequence(seq.seq)
            # ech, remove gaps, but this RNASequence is not the same as RNASeq from the alignment
            seqq.seq = seqq.seq.replace('-', '')
            cst = cst.replace('-', '').strip()
            if len(cst) != len(seqq.seq):
                continue
            energy, ss = seqq.predict_ss(method,
                                         constraints=cst,
                                         verbose=args.debug)
            log.info(ss + ' ' + str(energy) + ' ' + cst)
            energy_lower = energy

            df = df.append(
                {
                    'id': seq,
                    'ss': ss,
#!/usr/bin/python

from rna_tools.Seq import RNASequence
from rna_tools.rna_tools_config import CONTEXTFOLD_PATH, RNASTRUCTURE_PATH

seq = RNASequence(
    "CGUGGUUAGGGCCACGUUAAAUAGUUGCUUAAGCCCUAAGCGUUGAUAAAUAUCAGgUGCAA")
print(seq.predict_ss("rnastructure_CycleFold", verbose=True))
Exemplo n.º 7
0
#!/usr/bin/python
#-*- coding: utf-8 -*-
from rna_tools.Seq import RNASequence

seq = RNASequence("CCuuuuGG")
print(seq.predict_ss("mcfold", verbose=True))

seq = RNASequence("CCuuuuGG")
print(seq.predict_ss("mcfold", constraints='(......)', verbose=True))
Exemplo n.º 8
0
            cst = cst_a + cst_l + cst_b

        if args.flanks:
            a = args.flanks[0] + a
            b += args.flanks[1]
            cst = '(' + cst + ')'

        log.info(a + ' ' + loop_lower + ' ' + b)
        log.info('')
        log.info(a + loop_lower + b)
        log.info(cst + ' <= cst')

        # log.info('\_ loop lower: %s' % loop_lower)

        seql = RNASequence(a + loop_lower + b)
        #if '-' in seqn.seq: # + 'N':
        #    skipped_with_gaps += 1
        #    continue  # skip a seq with N
        #log.info(seql)
        energy, ss = seql.predict_ss(method,
                                     constraints=cst,
                                     verbose=args.debug)
        log.info(seql.seq + '\n' + ss + ' ' + str(energy))
        energy_lower = energy

        log.info('upper ------------------------------------')
        ## if args.loop_seq:
        ##     loop_upper = seq.seq[9:14].lower() # # from alignment
        ##     assert loop_upper, 'Loop is empty'
        ## else:
                cst = f.readline().strip()
                assert cst, 'Cst line empty, check the input file'

        try:
            print(seq_string)
        except NameError:
            parser.print_usage()
            parser.exit(1)

        if args.cst:
            cst = args.cst
        if cst:
            print(cst, '<= cst')

        if args.method == 'rnaeval' or args.method == 'all':
            seq = RNASequence(seq_string)
            energy = seq.eval(cst, verbose=args.verbose)
            print('rnaeval:', energy)

        if args.method == 'mcfold' or args.method == 'all':
            seq = RNASequence(seq_string)
            if cst:
                en, ss, comment = seq.predict_ss('mcfold',
                                                 constraints=cst,
                                                 verbose=args.verbose)
            else:
                en, ss, comment = seq.predict_ss('mcfold',
                                                 verbose=args.verbose)
            #if not ss:
            #    ss = 'x'
            print('mcfold:', en, comment)
Exemplo n.º 10
0
#!/usr/bin/python

from rna_tools.Seq import RNASequence
from rna_tools.rna_tools_config import CONTEXTFOLD_PATH, RNASTRUCTURE_PATH

seq = RNASequence("CGUGGUUAGGGCCACGUUAAAUAGUUGCUUAAGCCCUAAGCGUUGAUAAAUAUCAGgUGCAA")
print(seq.predict_ss("rnastructure_CycleFold", verbose=True))
                    a = ungap(seq[0:4])
                    b = ungap(seq[-3:])
                    ####################
                    # to the new alignment send only a + b, overwrite the original sequence
                    # print(seq)
                    seq = a + '-' + b
                    # print(seq)

                if args.u5:
                    a = ungap(seq[0:8])
                    b = ungap(seq[-9:])
                    seq = a + '-' + b

                if args.calc_energy:
                    # u5
                    seql = RNASequence(seq.replace('-','').replace('N', 'u'))
                    cst = "((((((((...........))))))))"
                    #AAAUCUUUCGCCUUUUACUAAAGA-UUU
                    #((((((((...........))))).)))
                    energy, ss = seql.predict_ss(method="mcfold", constraints=cst, verbose=args.verbose)
                    # u6
                    #pass
                    ## # u6atac
                    ## a = 'g' + ungap(seq[0:5])
                    ## b = ungap(seq[-4:]) + 'c'
                    ## loop = "guaa"
                    ## seql = RNASequence(a + loop + b)
                    ## cst = '((((.((..))))))'
                    ## if args.verbose:
                    ##     print('seq %s' % seq)
                    ##     print(a + loop + b)
Exemplo n.º 12
0
                    a = ungap(seq[0:4])
                    b = ungap(seq[-3:])
                    ####################
                    # to the new alignment send only a + b, overwrite the original sequence
                    # print(seq)
                    seq = a + '-' + b
                    # print(seq)

                if args.u5:
                    a = ungap(seq[0:8])
                    b = ungap(seq[-9:])
                    seq = a + '-' + b

                if args.calc_energy:
                    # u5
                    seql = RNASequence(seq.replace('-', '').replace('N', 'u'))
                    cst = "((((((((...........))))))))"
                    #AAAUCUUUCGCCUUUUACUAAAGA-UUU
                    #((((((((...........))))).)))
                    energy, ss = seql.predict_ss(method="mcfold",
                                                 constraints=cst,
                                                 verbose=args.verbose)
                    # u6
                    #pass
                    ## # u6atac
                    ## a = 'g' + ungap(seq[0:5])
                    ## b = ungap(seq[-4:]) + 'c'
                    ## loop = "guaa"
                    ## seql = RNASequence(a + loop + b)
                    ## cst = '((((.((..))))))'
                    ## if args.verbose:
Exemplo n.º 13
0
from rna_tools.Seq import RNASequence

seq = "AGUCGUUGUGGCGACUAUAACCAAGCUCUUUAAGCCACAAGCGUUGCUGAUGAGGUUUCAUAACAUCAGCAGGUAGAG"
ss = "((((..[[[[[.)))).........((((.....]]]]]....(((((((((...........)))))))))..))))"
s = RNASequence(seq, ss)
print(s.predict_ss(method='mcfold', constraints=ss, verbose=True))
ss = "((((..[[[[[.)))).........((((.....]]]]]....(((((((((***********)))))))))..))))"
print(s.predict_ss(method='mcfold', constraints=ss, verbose=True))
if __name__ == '__main__':
    args = get_parser().parse_args()
    a = RNAalignment(args.file)
    target_seq = ''
    df = pd.DataFrame()
    for s in a:
        if 'XX' in s.seq:  # skip line with X
            continue
        if not target_seq:
            target_seq = s.seq

        dist = s.get_distance_to(target_seq)
        s.remove_gaps()
        length = len(s)

        s2 = RNASequence(s.seq, s.ss)
        cst = s.ss
        if args.all_stars:
            cst = s.ss.replace('.', '*')
            explore = 1
        else:
            explore = ''
        if not args.skip_mcfold:
            ss = list(
                s2.predict_ss(method='mcfold',
                              constraints=cst,
                              explore=explore,
                              verbose=args.verbose))
            ss[0] = str(ss[0])  # str first value
            if args.verbose: print(ss)
        else: