2017-02-26 6 views
1

これは少し具体的な質問ですが、誰かがこれを前にしていたに違いありません。 pubmedから最新の論文を入手したいと思います。ある科目についての論文ではなく、すべての科目についての論文ではありません。私は変更日(mdat)に応じて照会すると思った。私はbiopython.pyを使用しています。私のコードは次のようになります。pubmedから最新の論文を入手する方法

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'を追加すると、私は論文のヒープを得る。だからクエリにはキーワードキーワードが必要なようだ...しかし、私はすべての論文を、特定の科目の論文ではない。どのようにこれを行うにはどのようなアイデア? おかげ カール

答えて

2

termrequired parameterあるので、あなたはEntrez.egqueryにお電話でそれを省略することはできません。

あなたが指定した期間内のすべての書類が必要な場合、あなたはおそらくa local copy of MEDLINE and PubMed Central必要があります。MEDLINEのために

を、これはlicenseを得る必要とします。 PubMed Centralの場合、 はftpによってライセンスなしでOpen Accessサブセットをダウンロードできます。

+0

私が見る...感謝の参照のためにたくさん.. – carl

3

これは駄目なことですが、私はフィードバックをお聞きしたいと思いますが、最新のpubmed idが最新のものと同じことを私は確信しています。基本的に最新のPMIDをバイナリ検索して、最新のnのリストを返します。これは日付を調べるのではなく、PMIDだけを返すので、適切な答えであるかどうかはわかりませんが、考え方を変えることができます。

CODE:

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 

OUTPUT:

[28245638, 28245639, 28245640, 28245641, 28245642] 
+0

はそんなにありがとう...私は本当に彼らが持っていると思っているだろうpubmedでいくつかの一括ダウンロード...最新の記事に興味がある人がいなければなりませんか?これを行う標準的な方法はないと私は信じられません。 – carl

関連する問題