Python编程
我的作业要求进行函数调用readFasta 接受 1 论据: 这个 名称 属于 A. 法斯塔 格式 文件 (fn) 包含 1 或 更多 序列。 这个 作用 应该 阅读 这个 文件 和 返回 A. 字典 哪里 这个 钥匙 是 这个 法斯塔 标题 及 这个 价值观 是 这个 相应的 序列 从…起 文件 fn 转换 到 串。 制作 当然 那个 你 不要 包括 任何 新的 线 或 其他 空白 人物 在里面 这个 序列 在里面 这个 字典 对于ex,如果afile.fa看起来像:Python编程,python,Python,我的作业要求进行函数调用readFasta 接受 1 论据: 这个 名称 属于 A. 法斯塔 格式 文件 (fn) 包含 1 或 更多 序列。 这个 作用 应该 阅读 这个 文件 和 返回 A. 字典 哪里 这个 钥匙 是 这个 法斯塔 标题 及 这个 价值观 是 这个 相应的 序列 从…起 文件 fn 转换 到 串。 制作 当然 那个 你 不要 包括 任何 新的 线 或 其他 空白 人物 在里面 这个 序列 在里面 这个 字典 对于ex,如果afile.fa看起来像
>one
atctac
>two
gggaccttgg
>three
gacattac
然后a.readFasta(f)返回:
如果我尝试过写一些代码,但由于我对编程完全是新手,它对我来说并不太奏效。大家能帮帮我吗。非常感谢你。这是我的密码:
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中得到的内容
一个atctac
两个gggaccttgg
三加卡塔克
你的帖子有点让人困惑。我假设您希望它返回一个dict。在这种情况下,您将把它写成
{'one':'actg','two':'aaccttgg'}
。如果您正确地显示了文件格式,那么这个函数应该可以完成这个任务
import gzip
def read_fasta(filename):
with gzip.open(filename) as f:
return dict(line.split() for line in f)
你的帖子有点让人困惑。我假设您希望它返回一个dict。在这种情况下,您将把它写成
{'one':'actg','two':'aaccttgg'}
。如果您正确地显示了文件格式,那么这个函数应该可以完成这个任务
import gzip
def read_fasta(filename):
with gzip.open(filename) as f:
return dict(line.split() for line in f)
你可能会有更好的运气,因为它更适合生物信息学类型的问题。你应该重新格式化你的代码。突出显示代码并按带有数字的图标。我正在尝试编辑格式,它在预览中正确显示,但我的更改只影响
import gzip
行。我洗了手,冒着被社区维基攻击的风险。奇怪。我试图格式化它,所有的东西都显示在预览窗格上。保存时,一切看起来都一团糟。@pmt0512:Python,我认为StackOverflow更不喜欢空格和制表符的混合。通常,强制编辑器忘记选项卡的存在是最容易的(至少对于Python源代码是这样)。你可能会有更好的运气,因为它更适合生物信息学类型的问题。你应该重新格式化你的代码。突出显示代码并按带有数字的图标。我正在尝试编辑格式,它在预览中正确显示,但我的更改只影响import gzip
行。我洗了手,冒着被社区维基攻击的风险。奇怪。我试图格式化它,所有的东西都显示在预览窗格上。保存时,一切看起来都一团糟。@pmt0512:Python,我认为StackOverflow更不喜欢空格和制表符的混合。通常,强制编辑器忘记选项卡的存在是最容易的(至少对于Python源代码是这样)。我刚刚使用了代码,但Python2.6版本仍然出现错误:>>>将readFasta作为b导入>>>b.readFasta('afile.txt')回溯(最近一次调用):文件“”,第1行,在文件“readFasta.py”中,第37行,在readFasta索引器中:列出索引range@pmt0512. 如果你把它单独放在一个文件中,那会有帮助。我不知道我给你的代码是从哪一行开始的。它应该在一个九行长的文件中作为参考。尽管如此,我的代码(AKAIK)中没有任何地方会产生索引错误。一个atctac两个gggaccttgg三个GACATTACH,我不知道如何在注释中编辑文件使其看起来准确,但它包含三行,第一行是一行,tab,atctac,第二行是两行,tab,ggaccttgg,第三行是三行,tab,gacattac。我只是想让函数在读取这个文件时返回,作为赋值给出的dict作为示例。ThanksI刚刚使用了代码,但在python 2.6版本中仍然出现错误:>>>将readFasta作为b导入>>>b.readFasta('afile.txt')回溯(最近一次调用):文件“”,第1行,在文件“readFasta.py”中,第37行,在readFasta索引器中:列出索引range@pmt0512. 如果你把它单独放在一个文件中,那会有帮助。我不知道我给你的代码是从哪一行开始的。它应该在一个九行长的文件中作为参考。尽管如此,我的代码(AKAIK)中没有任何地方会产生索引错误。一个atctac两个gggaccttgg三个GACATTACH,我不知道如何在注释中编辑文件使其看起来准确,但它包含三行,第一行是一行,tab,atctac,第二行是两行,tab,ggaccttgg,第三行是三行,tab,gacattac。我只是想让函数在读取这个文件时返回,作为赋值给出的dict作为示例。谢谢