私はpythonが初めてで、複数のシーケンスを含むfastaファイルを読み取り、シーケンスの逆補完を含む新しいfastaファイルを作成する方法を見つけようとしています。ファイルは次のようになります。
>ホモサピエンス 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]
file1.close()
これはうまくいきましたが、その最後の部分を反復するより良い方法があることを私は知っています。より良い解決策はありますか?