Biopython: SeqIO.parse() FileNotFoundError

Biopython: SeqIO.parse() FileNotFoundError

我是生物信息学和 Biopython 的新手,所以我有一些困难。

我正在阅读 Biopython (SeqIO) 文档,但是当我尝试执行一些 SeqIO.parse() 命令时,我得到了 FileNotFoundError。

例如,我想要获取 "example.fasta" 文件(我的电脑上没有)。我试着用这个命令来做:

for record in SeqIO.parse("example.fasta", "fasta"):
    print(record.id)

但是,我得到的只是 FileNotFoundError: [Errno 2] No such file or directory

有人可以帮我解决这个问题吗?

我的理解是 FileNotFoundError 当代码试图打开您计算机上的文件但找不到它时发生。

这可能是因为您根本没有此文件,或者您输入的名称有错,或者文件路径不正确(这是 an important notion:文件路径应该是绝对的,或者相对于当前工作目录(通常是您执行 python 脚本的目录)。

正如您问题的评论中所建议的那样,您似乎期待 SeqIO.parse 为您获取文件。不是这种情况。您为该函数提供的第一个参数(在示例 "example.fasta" 中)是您想要 "parse" 的现有文件的路径,即解释其信息内容并使该内容可供其他人使用以方便的形式编写您的程序。

因此,为了让这个示例正常运行,您首先需要获取一个 fasta 文件。如果您还没有,您可以从 genbank 手动下载一些,或者在 biopython 安装中找到一个(如果您从源代码安装它并且知道源代码位于何处),例如 Tests/Quality/example.fasta.