【问题标题】:How to get the latest papers from pubmed如何从 pubmed 获取最新论文
【发布时间】:2017-02-26 15:30:57
【问题描述】:

这是一个具体的问题,但以前一定有人做过。我想从 pubmed 获得最新的论文。不是关于某些主题的论文,而是所有主题的论文。我想根据修改日期(mdat)进行查询。我使用 biopython.py,我的代码看起来像这样

handle = Entrez.egquery(mindate='2015/01/10',maxdate='2017/02/19',datetype='mdat')
results = Entrez.read(handle)
for row in results["eGQueryResult"]:
        if row["DbName"]=="nuccore":
            print(row["Count"])

但是,这会导致零论文。如果我添加 term='cancer' 我会得到大量论文。所以查询似乎需要术语关键字......但我想要所有论文,而不是某些主题的论文。任何想法如何做到这一点? 谢谢 卡尔

【问题讨论】:

    标签: api bioinformatics biopython pubmed


    【解决方案1】:

    termrequired parameter,因此您不能在调用 Entrez.egquery 时省略它。

    如果您需要指定时间范围内的所有论文,您可能需要a local copy of MEDLINE and PubMed Central

    对于 MEDLINE,这涉及获取 license。对于 PubMed Central,您 可以通过ftp免费下载开放访问子集。

    【讨论】:

      【解决方案2】:

      这很草率,我想听听反馈,但这里的代码认为最新发布的 id 与最新论文相同(我不确定这是否属实)。基本上对最新的 PMID 进行二进制搜索,然后给出最近的 n 列表。这不看日期,只返回 PMID,所以我不确定这是一个合适的答案,但也许可以调整这个想法。

      代码:

      import urllib2
      
      def pmid_exists(pmid):
          url_stem = 'https://www.ncbi.nlm.nih.gov/pubmed/'
          query = url_stem+str(pmid)
          try:
              request = urllib2.urlopen(query)
              return True
          except urllib2.HTTPError:
              return False
      
      
      def get_latest_pmid(max_exists = 27239557, min_missing = -1):
          #print max_exists,'-->',min_missing
          if abs(min_missing-max_exists) <= 1:
              return max_exists
      
          guess = (max_exists+min_missing)/2
          if min_missing == -1:
              guess = 2*max_exists
      
          if pmid_exists(guess):
              return get_latest_pmid(guess, min_missing)
          else:
              return get_latest_pmid(max_exists, guess)
      
      #Start of program
      if __name__ == '__main__':
          n = 5
          latest_pmid = get_latest_pmid()
          most_recent_n_pmids = range(latest_pmid-n, latest_pmid)
          print most_recent_n_pmids
      

      输出:

      [28245638, 28245639, 28245640, 28245641, 28245642]
      

      【讨论】:

      • 非常感谢...我还真以为他们在pubmed有一些批量下载...一定有人对最新的文章感兴趣?我不敢相信没有标准的方法可以做到这一点?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多