Python--找基因

在这里插入代码片
```def test(str,list1=[]):
    position=str.find('ATG')

    if (len(str)<3) or (position==-1):
        return list1
    else:
        p1=str[position:].find('TAG')
        p2=str[position:].find('TAA')
        p3=str[position:].find('TGA')
        if p1!=-1 and p2!=-1 and p3!=-1:
            p1=p1 if p1<p2 else p2
            p3=p2 if p3<p2 else p2
            p1=p1 if p1<p3 else p3
        elif p1==-1 and p2!=-1 and p3!=-1:
            p1=p2 if p2<p3 else p3
        elif p2 == -1 and p1 != -1 and p3 != -1:
            p1=p1 if p1<p3 else p3
        elif p3 == -1 and p2 != -1 and p1 != -1:
            p1=p1 if p1<p2 else p2
        elif p1==-1 and p2==-1 and p3!=-1:
            p1=p3
        elif p1==-1 and p3==-1 and p2!=-1:
            p1=p2
        else:
            p1=p1
        p1+=position
        if len(str[position+3:p1])%3==0:
            list1.append(str[position+3:p1])
            return test(str[p1+3:],list1)
    return list1
strr='TTATGTTTTAAGGATGGGGCGTTAGTT'
str2='TGTGTGTATAT'
list=[]
llist=[]
mylist=test(strr,list)
mylist2=test(str2,llist)
print(mylist)

print(mylist2)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值