Biopython获取更新的数据库

时间:2014-07-03 07:12:10

标签: biopython pubmed

有没有办法,使用Biopython,找出数据库的更新状态?

我正在尝试做这样的事情;

  1. 我有100000个医疗术语列表

  2. 7月1日,我检索了所有100000个条款的ID列表。

  3. 今天(7月3日)我想知道是否为100000个条款中的任何一个添加了新文章。

  4. 这样做的一种方法是重复整个过程(获取所有100000个术语),如下所示;

    'termlist' = ['Malaria', 'Flu' ,...........]
    
    for term in termlist:
        handle = Entrez.esearch(db = "pubmed", term = 'Malaria')
        record = Entrez.read(handle)
        record['Count']
    

    有没有办法只找出今天发布的更新条款?

    如果我的条款是更新列表的一部分,我只需要搜索更新的条款,而不是所有100000条款。

1 个答案:

答案 0 :(得分:0)

这里有所有与esearch相关的参数:

http://www.ncbi.nlm.nih.gov/books/NBK25499/#chapter4.ESearch

您感兴趣的是:reldate,datetype,mindate和maxdate。如果将这些参数传递给esearch命令,Biopython只需将它们插入NCBI查询中。

# Retrieve the entries of the last 3 days
handle = Entrez.esearch(db = "pubmed", term = 'Malaria',
                        datetype = "edat", reldate = 3)

# Retrieve the entries between two dates:
handle = Entrez.esearch(db = "pubmed", term = 'Malaria',
                        mindate = "2014/07/03", maxdate = "2014/07/01")

此外,您可以使用语法加入术语来加快查询过程:

term = "Malaria+OR+Cancer+OR+Anopheles"