我是 python 新手,我试图弄清楚如何读取具有多个序列的 fasta 文件,然后创建一个包含序列反向补充的新 fasta 文件。该文件将类似于:
>homo_sapiens ACGTCAGTACGTACGTCATGACGTACGTACTGACTGACTGACTGACGTACTGACTGACTGACGTACGTACGTACGTACGTACGTACTG
>Canis_lupus CAGTCATGCATGCATGCAGTCATGACGTCAGTCAGTACTGCATGCATGCATGCATGCATGACTGCAGTACTGACGTACTGACGTCATGCATGCAGTCATG
>Pan_troglodytus CATGCATACTGCATGCATGCATCATGCATGCATGCATGCATGCATGCATCATGACTGCAGTCATGCAGTCAGTCATGCATGCATCAT
我正在尝试学习如何使用 for 和 while 循环,因此如果解决方案可以包含其中之一,那将是首选。
到目前为止,我设法以一种非常不雅的方式做到这一点,如下所示:
file1 = open('/path/to/file', 'r')
for line in file1: if line[0] == '>': print line.strip() #to capture the title line else: import re seq = line.strip() line = re.sub(r'T', r'P', seq) seq = line line = re.sub(r'A',r'T', seq) seq = line line = re.sub(r'G', r'R', seq) seq = line line = re.sub(r'C', r'G', seq) seq = line line = re.sub(r'P', r'A', seq) seq = line line = re.sub(r'R', r'C', seq) print line[::-1]
文件 1.close()
这行得通,但我知道有更好的方法来迭代该末端部分。有更好的解决方案吗?