美文网首页
python实战

python实战

作者: M78_a | 来源:发表于2020-04-02 11:15 被阅读0次
  1. 写程序reverseComplementary.py 计算序列ACGTACGTACGTCACGTCAGCTAGAC 的反向互补序列
    • 用到的知识点
    – reverse
    – list(seq)
#!/usr/bin/env python
#fasta序列存入字典,目前最简单理解的方式
import sys
fname = sys.argv[1]
f = open(fname)
lines = f.readlines()
#print(lines)
aDict={}
L=[]
str = ""
a=""
b=""
for i in lines:
    if i.startswith(">"):
        a=i.strip().split()[0]
    else:
        b=b+i.strip()

        aDict[a]=b
print(aDict)


#上部分的代码是为了把fasta序列存入字典中。,下面的是求反向互补序列
key = input("请输入基因ID:")
seq = aDict.get(key)#获得对应的基因ID的序列,这个序列是字符串类型
for base in seq:#对seq这个字符串类型进行循环操作,判断碱基类型
    if base =="A":
        str = "T"
    elif base == "T":
        str = "A"
    elif base == "G":
        str = "C"
    else:
        str = "G"
    L.append(str)#这个地方尤其要注意,我踩坑了两次。append会自动把所有元素一次添加进list。就不要使用L=L+L。append()。
    #print(L)目前的L里面的内容都是单个字符组成的list
L.reverse()#将L这个list反转一下。
print(''.join(L))#把所有单个字符连接起来成一个字符串

相关文章

网友评论

      本文标题:python实战

      本文链接:https://www.haomeiwen.com/subject/buotphtx.html