스프레드 시트의 입력을 사용하여 결과를 인쇄하고 pubmed
을 검색해야하는 프로젝트를 진행하고 있습니다. 나는이 작업을 수행하기 위해 xlrd
과 entrez
을 사용 해왔다. 여기 내가 시도한 것이있다.XLRD/Entrez : Pubmed를 통해 검색하고 카운트를 추출하십시오.
가 나는
Excel
스프레드 시트에있는 저자, 그/그녀의 의과 대학, 년의 범위 및 그/그녀의 스승의 이름의 이름을 사용pubmed
를 검색 할 필요가있다.xlrd
을 사용하여 필요한 정보가있는 각 열을 문자열 목록으로 변환했습니다.from xlrd import open_workbook book = xlrd.open_workbook("HEENT.xlsx").sheet_by_index(0) med_name = [] for row in sheet.col(2): med_name.append(row) med_school = [] for row in sheet.col(3): med_school.append(row) mentor = [] for row in sheet.col(9): mentor.append(row)
Entrez를 사용하여 특정 쿼리의 개수를 인쇄 할 수있었습니다.
from Bio import Entrez Entrez.email = "[email protected]" handle = Entrez.egquery(term="Jennifer Runch AND ((2012[Date - Publication] : 2017[Date - Publication])) ") handle_1 = Entrez.egquery(term = "Jennifer Runch AND ((2012[Date - Publication] : 2017[Date - Publication])) AND Leoard P. Byk") handle_2 = Entrez.egquery(term = "Jennifer Runch AND ((2012[Date - Publication] : 2017[Date - Publication])) AND Southern Illinois University School of Medicine") 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.append(row["Count"]) for row in record_1["eGQueryResult"]: if row["DbName"] == "pubmed": pubmed_count.append(row["Count"]) for row in record_2["eGQueryResult"]: if row["DbName"] == "pubmed": pubmed_count.append(row["Count"]) print(pubmed_count) >>>['3', '0', '0']
문제는 내가, 학생 이름 목록 ("med_name")의 다음 학생 이름 학생 이름 ("제니퍼 Runch")를 대체하기 위해 다음 학교와 의과 대학을 필요로하고 있다는 점이다 현재 멘토의 이름과 목록의 다음 멘토의 이름.
은 내가 pubmed
에 내 이메일을 선언 한 후 루프를 작성해야 생각하지만, 나는 함께 코드의 두 블록을 연결하는 방법을 잘 모르겠습니다. 누구든지 두 블록의 코드를 연결하는 효율적인 방법을 알고 있거나 시도한 것보다 더 효율적인 방법으로이 작업을 수행하는 방법을 알고 있습니까? 감사합니다.
질문이 아직 열립니까? –
@ MaximilianPeters 다른 스레드에 게시 한이 질문에 대한 후속 질문이 있습니다. http://stackoverflow.com/questions/40161460/searching-on-pubmed-using-biopython –