无法调用Biopython SeqUtils six_frame_translations

时间:2012-08-28 19:03:16

标签: python global biopython

执行以下代码时:

from Bio.SeqUtils import six_frame_translations

blah = six_frame_translations("ATCGATCGATCG")
print(blah)

我收到以下错误:

File "C:\Python32\lib\site-packages\Bio\SeqUtils\__init__.py", line 263, in six_frame_translations
    frames[-(i+1)] = reverse(translate(anti[i:], genetic_code))
NameError: global name 'reverse' is not defined

我正在使用Python 3.23,Biopython 1.59

有什么建议吗?谢谢,

查尔斯

1 个答案:

答案 0 :(得分:1)

这是一个错误。在2011年8月11日之前,SeqUtils模块具有函数reverse。它已在1.54版和removed in 1.58中弃用。

来自档案DEPRECATED

  

Bio.SeqUtils中的函数'reverse'在版本1.54中已弃用,并且   在版本1.58中删除。而只是使用字符串的切片方法   减一步。

因此,看起来他们在six_frame_translations()中无法进行此转化。 您可以向OBF Redmine网站提交错误报告,或自行修补,并向GitHub上的Biopython repository提交拉取请求。

如果您感觉特别慷慨,您可以考虑编写一个单元测试来自动检测此功能的失败 - 这将有助于像您这样的未来用户。 =)