首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RNA剪接Python

RNA剪接Python
EN

Stack Overflow用户
提问于 2018-11-01 17:48:05
回答 1查看 1.4K关注 0票数 3

我有一个基因序列-

代码语言:javascript
复制
"acguccgcaagagaagccuuaauauauucaaaaagcuacgccucagauuucgcgcucgagcccaaaacaacugguguacggguugaucacaucaaaugaagucgcuaaagucggugaucucacuauccuugucuucggcuuuugcucucucggcuaucaucuaagcaggcgaguuccauggugaccggaacgacggcuacuggaguccaugaucgcaagcgucgggcugggguaaaagaggcucagcucauaauaguccgccccaccaguacgggacucgauaggccccgucguugccguagaaacgcaauuuuccucagacccacuauacgcaccucgauuuagcaugguuccgggguugcgcuuugagaaucauacguaaggaucggaaccuaggaaugcaccacagaacuuugaaauacuagaacaaguugauugacaacggaguaucggcgccccacauuuaacgaauaauugcaggcgccagacgaugcuaggugcguccguaucaagauucgaggucgcuacuggcuucgcuugccgaucgagcucagaguuugugagaguuguuacuaauugcguggucgccuaauauccuugauacuacguggguguacuagacaucccggacagaaaaucucuuaaacgcuagaguucucuuggaagcgccugcacuucuugugaacauacgaugauagccacucuaagcccaacgcacuucgcuuggcccacauugcccccagagcuuauucaucgacaggcguuccacucuuggauucaucaguaaacuuuauuauacgugguaagcgugcuuauagcugucggaaucucacuuaggcggauugaagugagacagccugaaaguaaccguguacaggcgccgucaauguguuuugagugugcaccuacaaaaaguguuauuuaggcaggggagcuuuguaguuucuuuagaagagccgcgaaugaaccaacgguagacugcgagcgcguucaaccuaau"

我想拼接RNA,并提取两个列表(外显子和内含子)。关键是RNA的内含子部分以gu开始,以ag结束。然而,如果ag出现在gu之前,它是外显子的一部分,而不是内含子。

代码语言:javascript
复制
def splice(sequence):
    introns = list()
    exons = list()

    while(sequence.count("gu")):

        if "gu" not in sequence:
            break
        else:    

            exons.append(sequence[:sequence.find("gu")])
            sequence = sequence[sequence.find("gu"):]

        if "ag" not in sequence:
            break
        else:

            introns.append(sequence[:sequence.find("ag")+2])
            sequence = sequence[sequence.find("ag")+2:]

    return introns, exons

这就是我到目前为止所拥有的。它进行得很好,但是问题开始于gu在剩下的字符串中没有一个ag出现时。

输出:

代码语言:javascript
复制
Exons:
['ac',
 'agaagccuuaauauauucaaaaagcuacgccucagauuucgcgcucgagcccaaaacaacug',
 'ucgcuaaa',
 'caggcga',
 'uccaugaucgcaagc',
 'aggcucagcucauaaua',
 'uacgggacucgauaggcccc',
 'aaacgcaauuuuccucagacccacuauacgcaccucgauuuagcaug',
 'aaucauac',
 'gaucggaaccuaggaaugcaccacagaacuuugaaauacuagaacaa',
 'uaucggcgccccacauuuaacgaauaauugcaggcgccagacgaugcuag',
 'auucgag',
 'cucaga',
 'a',
 'acaucccggacagaaaaucucuuaaacgcuaga',
 'cgccugcacuucuu',
 'ccacucuaagcccaacgcacuucgcuuggcccacauugcccccagagcuuauucaucgacaggc',
 'uaaacuuuauuauac',
 'c',
 'cu',
 'gcggauugaa',
 'acagccugaaa',
 'gcgcc',
 'u',
 'u',
 'gcaggggagcuuu',
 'uuucuuuagaagagccgcgaaugaaccaacg',
 'acugcgagcgc']

Introns:
['guccgcaag',
 'guguacggguugaucacaucaaaugaag',
 'gucggugaucucacuauccuugucuucggcuuuugcucucucggcuaucaucuaag',
 'guuccauggugaccggaacgacggcuacuggag',
 'gucgggcugggguaaaag',
 'guccgccccaccag',
 'gucguugccguag',
 'guuccgggguugcgcuuugag',
 'guaag',
 'guugauugacaacggag',
 'gugcguccguaucaag',
 'gucgcuacuggcuucgcuugccgaucgag',
 'guuugugag',
 'guuguuacuaauugcguggucgccuaauauccuugauacuacguggguguacuag',
 'guucucuuggaag',
 'gugaacauacgaugauag',
 'guuccacucuuggauucaucag',
 'gugguaag',
 'gugcuuauag',
 'gucggaaucucacuuag',
 'gugag',
 'guaaccguguacag',
 'gucaauguguuuugag',
 'gugcaccuacaaaaag',
 'guuauuuag',
 'guag',
 'guag']
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-29 17:23:58

我使用正则表达式修正了查询。

代码语言:javascript
复制
def splice(gene_Sequence): 

    regex = r"gu(?:\w{0,}?)ag" 
    introns = re.findall(regex, gene_Sequence) 

    for intron in introns: 
        exon = gene_Sequence.replace(intron, "") 

    return introns, exon
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53106665

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档