执行以下代码时:
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
有什么建议吗?谢谢,
查尔斯
答案 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提交拉取请求。
如果您感觉特别慷慨,您可以考虑编写一个单元测试来自动检测此功能的失败 - 这将有助于像您这样的未来用户。 =)