我的任务要求做一个函数调用readFasta, 接受 one 参数: name of a fasta format file (fn) ,包含 one 或 more 序列。 的 函数存储应该读取you文件,并返回一本字典,其中键是fasta fasta ,其中键是fasta fasta ,而值是来自fn/fn文件的对应序列,fn,fn。确保将En50#您输入了51##。不要 包括 , ,新的 线, 或 ,其他 ,空格, 字符, 序列, 字典。
对于ex,如果afile.fa看起来像:
>one
atctac
>two
gggaccttgg
>three
gacattac然后a.readFasta(f)返回:
[‘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
两个gggaccttgg
三加达克
发布于 2010-09-21 05:44:10
你的帖子有点让人困惑。我想你是想把它还给我。在这种情况下,您可以将其写为{'one': 'actg', 'two': 'aaccttgg' }。如果您正确地呈现了文件格式,那么这个函数就能做到这一点。
import gzip
def read_fasta(filename):
with gzip.open(filename) as f:
return dict(line.split() for line in f)https://stackoverflow.com/questions/3757480
复制相似问题