python - 解析 GFF 文件抛出 TypeError
问题描述
我正在尝试使用 Biopython 解析 gif 文件,并且正在使用他们网站上的示例代码。这是代码:
from BCBio import GFF
in_file = "infile.gff"
in_handle = open(in_file)
for rec in GFF.parse(in_handle):
print(rec)
in_handle.close()
当我运行代码时,出现以下错误:
Traceback (most recent call last):
File "/Users/juliofdiaz/anaconda2/envs/python37/lib/python3.7/site-packages/Bio/SeqIO/Interfaces.py", line 47, in __init__
self.stream = open(source, "r" + mode)
TypeError: expected str, bytes or os.PathLike object, not FakeHandle
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "get_genes_dpt.py", line 37, in <module>
for rec in GFF.parse(in_handle):
File "/Users/juliofdiaz/anaconda2/envs/python37/lib/python3.7/site-packages/BCBio/GFF/GFFParser.py", line 746, in parse
target_lines):
File "/Users/juliofdiaz/anaconda2/envs/python37/lib/python3.7/site-packages/BCBio/GFF/GFFParser.py", line 322, in parse_in_parts
for results in self.parse_simple(gff_files, limit_info, target_lines):
File "/Users/juliofdiaz/anaconda2/envs/python37/lib/python3.7/site-packages/BCBio/GFF/GFFParser.py", line 343, in parse_simple
for results in self._gff_process(gff_files, limit_info, target_lines):
File "/Users/juliofdiaz/anaconda2/envs/python37/lib/python3.7/site-packages/BCBio/GFF/GFFParser.py", line 637, in _gff_process
for out in self._lines_to_out_info(line_gen, limit_info, target_lines):
File "/Users/juliofdiaz/anaconda2/envs/python37/lib/python3.7/site-packages/BCBio/GFF/GFFParser.py", line 699, in _lines_to_out_info
fasta_recs = self._parse_fasta(FakeHandle(line_iter))
File "/Users/juliofdiaz/anaconda2/envs/python37/lib/python3.7/site-packages/BCBio/GFF/GFFParser.py", line 560, in _parse_fasta
return list(SeqIO.parse(in_handle, "fasta"))
File "/Users/juliofdiaz/anaconda2/envs/python37/lib/python3.7/site-packages/Bio/SeqIO/__init__.py", line 607, in parse
return iterator_generator(handle)
File "/Users/juliofdiaz/anaconda2/envs/python37/lib/python3.7/site-packages/Bio/SeqIO/FastaIO.py", line 183, in __init__
super().__init__(source, mode="t", fmt="Fasta")
File "/Users/juliofdiaz/anaconda2/envs/python37/lib/python3.7/site-packages/Bio/SeqIO/Interfaces.py", line 51, in __init__
if source.read(0) != "":
TypeError: read() takes 1 positional argument but 2 were given
我不确定如何解决该错误,因为我似乎传递的是 astr
而不是 a FakeHandle
。我正在使用 conda 运行 biopython 1.78。
解决方案
推荐阅读
- react-native - 如何在功能组件中使用recyclerlistview
- python - 如何通过 Django 视图中的 QuerySet 过滤器访问 Django 模型的属性属性?
- yaml - 是否可以在 startagy 矩阵 github 动作中给出动态值?
- ansible - Ansible:使用 group_vars/all/FILE.yaml 作为默认值
- java - java String 方法中的“toffset”和“ooffset”分别代表什么:regionMatches(int toffset, String other, int ooffset, int len)?
- java - 根据一些输入从父类创建子类的实例
- python - 针对组织字符串映射的数据块集群中 Pyspark Dataframes 代码的优化
- dpdk - dpdk l2fwd-nv:匹配错误 CPU 和 GPU 指针
- java - 如何使用 Apache POI 在 Excel 中逐列写入数据?
- node.js - 数据验证嵌套 js 不适用于扩展文档类