Python 通过PyCogent在本地MySQL EnsEMBL数据库中列出物种名称?
我们有一个本地EnsEMBL MySQL数据库,其中包含带注释的蚊子基因组 PyCogent cookbook声明您可以通过Python 通过PyCogent在本地MySQL EnsEMBL数据库中列出物种名称?,python,mysql,database,bioinformatics,biopython,Python,Mysql,Database,Bioinformatics,Biopython,我们有一个本地EnsEMBL MySQL数据库,其中包含带注释的蚊子基因组 PyCogent cookbook声明您可以通过cogent.db.EnsEMBL.HostAccount模块从本地MySQL EnsEMBL数据库访问/查询数据。是PyCogent的EnsemblAPI的源代码 但我无法访问数据,因为函数假定我事先知道我试图查询其基因组的物种(字符串)的确切名称。。。经过数小时的在线搜索,如果有人能告诉我如何列出物种名称(PyCogent会理解),以便我最终查询本地数据库中的基因组数据
cogent.db.EnsEMBL.HostAccount
模块从本地MySQL EnsEMBL数据库访问/查询数据。是PyCogent的EnsemblAPI的源代码
但我无法访问数据,因为函数假定我事先知道我试图查询其基因组的物种(字符串)的确切名称。。。经过数小时的在线搜索,如果有人能告诉我如何列出物种名称(PyCogent会理解),以便我最终查询本地数据库中的基因组数据,我将不胜感激
此代码显示了我的问题,请注意注释:
Release = 73
from cogent.db.ensembl import HostAccount, Genome
acc = HostAccount('localhost', 'username1', 'password1') # login details to MySQL server
genome = Genome(Species='?????',Release=73,account=acc) # Where can I find the available Species list so I can replace the '?????'
在@dpryan79(来自Biostars)提供了一个有用的提示之后,我查看了PyCogent的源代码,结果发现我查看可用物种名称的唯一方法是实际登录MySQL服务器并列出数据库,数据库名称本身需要一个命名约定,其中前两个字符串由下划线(u)分隔分别是属和种的名称 所以通过终端登录mysql服务器:
mysql -hlocalhost -uuser1 -ppass1
然后键入:
SHOW DATABASES
我可以通过查看每个数据库的名称来查看可用的物种,特别是由下划线分隔的前两个字符串,例如列出的以下数据库:
anopheles_gambiae_core_1312_73_1
anopheles_arabeinsis_core_1312_73_1
anopheles_funestus_core_1312_73_1
anopheles_gambiaeM_core_1312_73_1
建议我提供以下物种:冈比亚按蚊、阿拉伯按蚊、福内斯特按蚊
和冈比亚按蚊M型
交叉张贴在biostars上: