allpy
annotate lib/fasta.py @ 158:2ed0c183867a
fix. delete sequence.pdb_files on pdb_unload. however memory leak remains
author | boris <bnagaev@gmail.com> |
---|---|
date | Thu, 28 Oct 2010 08:14:23 +0400 |
parents | |
children | 0ffdb88c13bd |
rev | line source |
---|---|
bnagaev@151 | 1 def save_fasta(out_file, string, name, description='', long_line=70): |
bnagaev@151 | 2 """ Saves given string to out_file in fasta_format |
bnagaev@151 | 3 |
bnagaev@151 | 4 Splits long lines to substrings of length=long_line |
bnagaev@151 | 5 To prevent this, set long_line=None |
bnagaev@151 | 6 """ |
bnagaev@151 | 7 out_file.write(">%(name)s %(description)s \n" % {'name':name, 'description':description}) |
bnagaev@151 | 8 if long_line: |
bnagaev@151 | 9 for i in range(0, len(string) // long_line + 1): |
bnagaev@151 | 10 out_file.write("%s \n" % string[i*long_line : i*long_line + long_line]) |
bnagaev@151 | 11 else: |
bnagaev@151 | 12 out_file.write("%s \n" % string) |
bnagaev@151 | 13 |
bnagaev@151 | 14 def determine_long_line(in_file): |
bnagaev@151 | 15 """ Returns maximum sequence line length in fasta file """ |
bnagaev@151 | 16 max_length = 70 |
bnagaev@151 | 17 start = False |
bnagaev@151 | 18 for line in in_file: |
bnagaev@151 | 19 if line[0:] != '>': |
bnagaev@151 | 20 if start: |
bnagaev@151 | 21 max_length = max(max_length, line.strip()) |
bnagaev@151 | 22 else: |
bnagaev@151 | 23 start = True |
bnagaev@151 | 24 return max_length |