搜索
查看: 1761|回复: 1

Python小测005

[复制链接]

8

主题

26

帖子

153

积分

注册会员

Rank: 2

积分
153
发表于 2017-11-6 23:38:32 | 显示全部楼层 |阅读模式
本帖最后由 546397641 于 2017-11-6 23:45 编辑

一段DNA序列,如果它的反向互补序列完全一样,则称之为“回文序列”。例子:
现有一段DNA序列:dna=TCAATGCATGCGGGTCTATATGCAT,求这条序列中的长度大小在4-12的所有回文序列在dna中的位置和长度?
结果:
4 6
5 4
6 6
7 4
17 4
18 4
20 6
21 4

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x



上一篇:Python小测004
下一篇:clusterProfile org.Hs.eg.db
回复

使用道具 举报

8

主题

26

帖子

153

积分

注册会员

Rank: 2

积分
153
 楼主| 发表于 2017-11-7 23:55:15 | 显示全部楼层
st='TCAATGCATGCGGGTCTATATGCAT'
def every(st):
    list1=[]
    list2=[]
    a = ""
    for i in range(len(st)):
        for j in range(1,len(st)-i):
            list1.append(st[i:i+j])
    for k in set(list1):
        if len(k)>=4 and len(k)<=12:
            list2.append(k)
    return list2
def huiwen(dna):
    b=dna[::-1]
    c =""
    for i in b:
        if i == "A":
            c += "T"
        elif i == "T":
            c += "A"
        elif i == "C":
            c += "G"
        else:
            c += "C"
    if c == str(dna):
        return c
    else:
        pass
e = every(st)
for i in e:
    if huiwen(i) != None:
        #print(huiwen(i))
        for j in range(len(st)):
            if st.startswith(huiwen(i),j):
                print(j+1,len(huiwen(i)))
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|生信技能树    

GMT+8, 2019-6-20 20:15 , Processed in 0.028354 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.