0

嘿伙计们,这是我在这里的第一个问题。我正在尝试在 SQL 中制作 UniprotKB 的本地副本。

UniprotKB 为 2.1GB,采用 XML 和 SwissProt 使用的特殊文本格式

这是我的选择:

1) 使用 SAX 解析器 (XML) - 我选择了 Ruby 和 Nokogiri。我开始编写解析器,但我最初的反应是:如何将 XML 模式映射到 SAX 解析器?

2) BioPython - 我已经安装了 BioSQL/Biopython,它确实为我创建了我的 SQL 模式,并且我能够成功地将一个 SwissProt/Uniprot txt 文件插入到数据库中。

我现在正在整个 2.1gb 上运行它(交叉手指)。这是我正在运行的代码:


from Bio import SeqIO
from BioSQL import BioSeqDatabase
from Bio import SwissProt

server = BioSeqDatabase.open_database(driver = "MySQLdb", user = "root", passwd = "", host="localhost", db = "bioseqdb")
db = server["uniprot"]
iterator = SeqIO.parse(open("/path/to/uniprot_sprot.dat", "r"), "swiss")
db.load(iterator)
server.commit()

编辑:它现在崩溃了,因为事务被锁定(因为表是 Innodb) 错误号:1205 超过锁定等待超时;尝试重新启动事务。我正在使用 MySQL 版本:5.1.43

我应该将我的数据库切换到 Postgrelsql 吗?

4

1 回答 1

0

为方便起见,切换到 PostgrelSQL。一些问题通过下载 NCBI 分类信息得到解决(我不知道这是必要的,应该在文档中更清楚),所以我最终使用了来自 BioPython 的 Swiss 解析器,因为它非常适合 BioSQL。

于 2010-05-27T18:07:57.633 回答