2016-10-20 9 views
0

私は200人以上のエントリーをpubmedに入力しようとしていますが、著者の出版物の数を記録し、彼/彼女のメンターと機関を含めて検索を絞り込んでいます。私はbiopythonとxlrdを使ってこれをやろうとしましたが(コードは下にあります)、私は一貫して問い合わせの3つのフォーマットすべてに対して0の結果を得ています(名前によって、2.名前と施設の名前で、メンターの名前)。トラブルシューティングの手順はありますか?または、以下のキーワードを使用してpubmedで検索する際に別の形式を使用する必要がありますか?biopythonを使用してpubmedで検索

入力クエリの出力例; search_termは、入力クエリのリストを持つリンクリストです。

Entrez.email = "[email protected]" 
for search_term in search_terms[8:55]: 
    handle = Entrez.egquery(term="{0} AND ((2010[Date - Publication] : 2017[Date - Publication])) ".format(search_term[0])) 

    handle_1 = Entrez.egquery(term = "{0} AND ((2010[Date - Publication] : 2017[Date - Publication])) AND {1}".format(search_term[0], search_term[2])) 

    handle_2 = Entrez.egquery(term = "{0} AND ((2010[Date - Publication] : 2017[Date - Publication])) AND {1}".format(search_term[0], search_term[1])) 

    record = Entrez.read(handle) 
    record_1 = Entrez.read(handle_1) 
    record_2 = Entrez.read(handle_2) 
    pubmed_count = ['','',''] 
    for row in record["eGQueryResult"]: 
     if row["DbName"] == "pubmed": 
      pubmed_count[0] = row["Count"] 

    for row in record_1["eGQueryResult"]: 
     if row["DbName"] == "pubmed": 
      pubmed_count[1] = row["Count"] 

    for row in record_2["eGQueryResult"]: 
     if row["DbName"] == "pubmed": 
      pubmed_count[2] = row["Count"] 

答えて

1

あなたのインデントをチェックし、どのループに属する部分を知ることは困難である:

print(*search_term[8:15], sep='\n') 


[text:'Andrew Bland', 'Weill Cornell Medical College', text:'David Cutler MD'] 
[text:'Andy Price', 'University of Alabama at Birmingham School of Medicine', text:'Jason Warem, PhD'] 
[text:'Bah Chamin', 'University of Texas Southwestern Medical School', text:'Dr. Timothy Hillar'] 
[text:'Eduo Cera', 'University of Colorado School of Medicine', text:'Dr. Tim'] 

は、上記のコードは、入力されたクエリを生成するとPubMedのを検索するために使用しました。

トラブルシューティングをご希望の場合は、egqueryと入力してください。

print("{0} AND ((2010[Date - Publication] : 2017[Date - Publication])) ".format(search_term[0])) 

出力を貼り付けて、あなたが入手したものを参照してください。おそらくそれを少し修正して、どの検索用語が問題を引き起こすかを見てください。

あなたの入力フォーマットは少し推測しにくいです。クエリを印刷し、適切な検索値が得られていることを確認します。

著者名は、学術論文を取り除こうとすると、PubMedがイニシャルと混同する可能性があります。ハウスMD、マークデイヴィッドハウスかもしれない。

+0

「テキスト:」を取り除く方法はありますか?私はそれが文字列の一部だとは思わないので、str.replaceを使うことはできません。 –

+0

どこから検索語を取得しましたか? –

+0

事前に3つのリストを作成しました。それぞれのリストは生徒の名前、学校の名前、およびメンターの名前のために作成されています。次に、それらをsearch_termsに追加しました。 –

関連する問題