【发布时间】:2014-03-03 22:22:22
【问题描述】:
我是 python 新手,我试图弄清楚如何读取具有多个序列的 fasta 文件,然后创建一个包含序列反向补充的新 fasta 文件。该文件将类似于:
>智人 ACGTCAGTACGTACGTCATGACGTACGTACTGACTGACTGACTGACGTACTGACTGACTGACGTACGTACGTACGTACGTACGTACTG
>犬狼疮 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]file1.close()
这行得通,但我知道有更好的方法来迭代该末端部分。有更好的解决方案吗?
【问题讨论】:
-
您是否尝试过任何导致问题的方法?如果是,请包括它。我觉得您可能跳过了asking a good question 的“搜索和研究”步骤。这个问题是非常开放的,将涉及许多不同类型的功能。例如,您必须阅读该文件。然后你将不得不以某种方式处理它的内容。以目前的形式,它可能过于宽泛而无法在主题上考虑。从问题的一个方面开始,例如读取文件,一旦解决了问题,就继续下一个。
-
我真的只是想知道是否有更好的方法来遍历 else 语句
-
我知道你真的不需要我的表扬,但这使它成为一个更好的问题。谢谢你的澄清!
标签: python while-loop fasta dna-sequence