Документ взят из кэша поисковой машины. Адрес оригинального документа : http://kodomo.fbb.msu.ru/hg/allpy/annotate/0ffdb88c13bd/lib/fasta.py
Дата изменения: Unknown
Дата индексирования: Sun Mar 2 02:35:32 2014
Кодировка:
allpy: lib/fasta.py annotate

allpy

annotate lib/fasta.py @ 161:0ffdb88c13bd

fix fasta.long_line
author boris (netbook) <bnagaev@gmail.com>
date Thu, 28 Oct 2010 19:33:15 +0400
parents 675b402094be
children
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@161 16 sequences = in_file.read().split('>')
bnagaev@161 17 for sequence in sequences[1:]:
bnagaev@161 18 lines = sequence.split('\n')[1:]
bnagaev@161 19 if len(lines) >= 2:
bnagaev@161 20 return len(lines[0].strip())
bnagaev@161 21 return 70