【发布时间】:2014-09-09 00:45:19
【问题描述】:
我正在寻找一个脚本,通过提供 PubMed ID (PMID) 编号列表(例如,从 . .csv 文件)。理想的脚本是 R 和 Python,但我当然愿意接受任何解决方案或建议。 PubMed 可以找到here。
顺便说一句,我确实找到了一个名为 MedlineR 的旧包,但这个包从未进入 Bioconductor,而且最近似乎没有任何关于它的讨论。
【问题讨论】:
标签: python r web-scraping
我正在寻找一个脚本,通过提供 PubMed ID (PMID) 编号列表(例如,从 . .csv 文件)。理想的脚本是 R 和 Python,但我当然愿意接受任何解决方案或建议。 PubMed 可以找到here。
顺便说一句,我确实找到了一个名为 MedlineR 的旧包,但这个包从未进入 Bioconductor,而且最近似乎没有任何关于它的讨论。
【问题讨论】:
标签: python r web-scraping
biopython 模块提供此功能。稍微修改教程中的例子(http://biopython.org/DIST/docs/tutorial/Tutorial.html#sec136):
from Bio import Medline, Entrez
pmids = ['18680603', '18665331', '18661158', '18627489', '18627452', '18612381']
Entrez.email = 'your_email@your_address.com'
handle = Entrez.efetch(db="pubmed", id=pmids, rettype="medline", retmode="text")
records = Medline.parse(handle)
# returns a generator containing dicts
# E.g. to get journal titles back
for record in records:
print record['JT'] # Abstracts would be record['AB']
返回
BMC pregnancy and childbirth Journal of natural medicines Mycorrhiza The New phytologist Molecular ecology PloS one
【讨论】:
RISmed 软件包似乎可以满足您的需求。 这是从手册中抄来的。
require("RISmed")
res <- EUtilsSummary("myeloma[ti] jones[au]")
summary(res)
Query:
myeloma[ti] AND jones[au]
Result count: 66
fetch <- EUtilsGet(res)
PMID(fetch)
> [1] "25188537" "25181509" "25042852" ...
AbstractText(fetch)[[1]]
[1] "The cause of follicular spicules in multiple myeloma (MM) is not known."
【讨论】:
不是 100% 肯定,但我认为您可以使用 R 中的 metafor 包做一些非常相似的事情,这是一个用于执行元分析的优秀包......也许值得一试。
【讨论】:
metafor 的积极cmet。但只是为了节省 OP 一点时间,metafor 没有提供任何功能可以满足 OP 的要求。