この例では、おそらく単一のシーケンスのみを扱っているため、このソリューションは探しているものに対して機能します。
#!/usr/bin/python
import sys
if len(sys.argv) < 2:
print "usage: finalmyscript.py infile.txt"
sys.exit(1)
fname = sys.argv[1]
handle = open( fname )
for line in handle:
# Only the lines that are identifier lines(Aka, start with >)
if line[0] == '>':
# We could use print, but sys.stdout.write is just as easy to
# write to the terminal without a newline at the end
sys.stdout.write( line.replace( '\n', ' ' ) )
else:
sys.stdout.write( line.replace( '\n', '' ) )
handle.close()
上記のコードを変更して、単一のファイルで複数のシーケンスを処理する方法を理解するのはあなたに任せます。
後でバイオインフォマティクスの処理をさらに行う場合は、Biopythonプロジェクトを確認してください。これにより、作業がはるかに簡単になります。
これは、Biopython の SeqIO モジュールを使用して上記を非常に簡単に解決する例です。
#!/usr/bin/python
from Bio import SeqIO
import sys
if len(sys.argv) < 2:
print "usage: finalmyscript.py infile.txt"
sys.exit(1)
fname = sys.argv[1]
for seq in SeqIO.parse( fname, 'fasta' ):
print ">" + seq.id + " " + str(seq.seq)