Pubmed是最常用的生物医药文献检索网站,它能够帮助我们查找包括期刊论文、预印本、文摘和技术报告在内的学术文献,内容主要涵盖自然科学、人文科学、社会科学等。

同时Pubmed提供了广泛的API支持,对于文献挖掘和分析更是一大便利:https://www.ncbi.nlm.nih.gov/pmc/tools/developers/

对于之前文章介绍的《Biopython-计算分子生物学工具集》也对Pubmed提供了支持。下面我们利用biopython来对pubmed文献进行简单的检索和挖掘演示:


# 按照关键词搜索Pubmed,并展示前10篇文章
from Bio import Entrez

Entrez.email = "A.N.Other@example.com"
# term 关键词
# db 包含:'pubmed', 'protein', 'nuccore', 'ipg', 'nucleotide', 
# 'structure', 'sparcle', 'genome', 'annotinfo', 'assembly', 
# 'bioproject', 'biosample', 'blastdbinfo', 'books', 'cdd', 'clinvar', 
# 'gap', 'gapplus', 'grasp', 'dbvar', 'gene', 'gds', 'geoprofiles', 
# 'homologene', 'medgen', 'mesh', 'ncbisearch', 'nlmcatalog', 'omim', 
# 'orgtrack', 'pmc', 'popset', 'probe', 'proteinclusters', 'pcassay', 
# 'biosystems', 'pccompound', 'pcsubstance', 'seqannot', 'snp', 'sra', 
# 'taxonomy', 'biocollections', 'gtr'

handle = Entrez.esearch(db="pubmed", term="cancer", retmax=10)
record = Entrez.read(handle)
handle.close()

idlist = record["IdList"]
# 输出Pubmed ID列表
print(idlist)

# 检索文章信息
from Bio import Medline

handle = Entrez.efetch(db="pubmed", 
                       id=idlist, 
                       rettype="medline",
                       retmode="text")
records = Medline.parse(handle)
records = list(records)

for record in records:
    # 打印关键信息
    print("title:", record.get("TI", "?"))
    print("authors:", record.get("AU", "?"))
    print("address:", record.get("AD", "?"))
    print("source:", record.get("SO", "?"))
    print("----------------------------------------------------------")

后续的挖掘可以基于NLP等技术手段进行分析。本文对Pubmed文献检索进行了简单的演示,更多的信息可以参考官方API进行深度挖掘。

参考资料:

1.https://pubmed.ncbi.nlm.nih.gov/