Мое задание попросить сделать вызов функции readFasta, который принимает один аргумент: имя файла fasta format (fn), содержащего одну или несколько последовательностей. Функция должна читать файл и возвращать словарь, где ключи являются заголовками fasta, а значения представляют собой соответствующие последовательности из файла fn, преобразованного в строки. Убедитесь, что вы не включаете никаких новых строк или других символов пробела в последовательности в словаре.Программирование на Python
Для экс, если afile.fa выглядит так:
>one
atctac
>two
gggaccttgg
>three
gacattac
то a.readFasta (е) возвращает:
[‘one’ : ‘atctac’,
‘two’ : ‘gggaccttgg’,
‘three’: ‘gacattac’]
Если попытался написать некоторые коды, но, как я полностью новичок в программировании, это не очень помогло мне. Могут ли все помочь мне. Огромное спасибо. Вот мои коды:
import gzip
def readFasta(fn):
if fn.endswith('.gz'):
fh = gzip.gzipfile(fn)
else:
fh = open(fn,'r')
d = {}
while 1:
line = fh.readline()
if not line:
fh.close()
break
vals = line.rstrip().split('\t')
number = vals[0]
sequence = vals[1]
if d.has_key(number):
lst = d[number]
if gene not in lst:
# this test may not be necessary
lst.append(sequence)
else:
d[number] = [sequence]
return d
Вот что я получил в моем AFile.txt
one atctac
two gggaccttgg
three gacattac
Вы бы, наверное, гораздо лучше удачи в http://biostar.stackexchange.com Это лучше редукторный для типа биоинформатики вопросы – GWW
Вы должны переформатировать свой код. выделите свой код и нажмите значок с цифрами. –
Я пытаюсь отредактировать форматирование, и оно отображается правильно в предварительном просмотре, но мои изменения влияют только на строку 'import gzip'. я моюсь руками, рискуя об их вики-сообществе. – aaronasterling