python实战
2020-04-02 本文已影响0人
M78_a
- 写程序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))#把所有单个字符连接起来成一个字符串