首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python编程

Python编程
EN

Stack Overflow用户
提问于 2010-09-21 05:17:55
回答 1查看 378关注 0票数 1

我的任务要求做一个函数调用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看起来像:

代码语言:javascript
复制
>one
atctac
>two
gggaccttgg
>three
gacattac

然后a.readFasta(f)返回:

代码语言:javascript
复制
[‘one’ : ‘atctac’,
‘two’ : ‘gggaccttgg’,
‘three’: ‘gacattac’]

如果我试着编写一些代码,但由于我在编程方面完全是新手,对我来说就不太好了。大家能帮帮我吗。非常感谢。这是我的密码:

代码语言:javascript
复制
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

三加达克

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-09-21 05:44:10

你的帖子有点让人困惑。我想你是想把它还给我。在这种情况下,您可以将其写为{'one': 'actg', 'two': 'aaccttgg' }。如果您正确地呈现了文件格式,那么这个函数就能做到这一点。

代码语言:javascript
复制
import gzip

def read_fasta(filename):
    with gzip.open(filename) as f:
        return dict(line.split() for line in f)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3757480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档