根据GSE号在NCBI批量获取文献
生活随笔
收集整理的這篇文章主要介紹了
根据GSE号在NCBI批量获取文献
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
如今,在ncbi查找文獻已經成為了讀研必不可少的技能之一,今天記錄下根據GSE號批量在ncbi獲取文獻
需要安裝biopython
安裝方法:pip install biopython
biopython教程:https://biopython-cn.readthedocs.io/zh_CN/latest/cn/chr09.html
1、查看ncbi當前所有的數據庫
from Bio import Entrez hd_info = Entrez.einfo() # 獲取所有數據庫列表 read_info = Entrez.read(hd_info) for db in read_info['DbList']:print (db)2、根據gse號批量獲取文獻
from Bio import Entrez from Bio import Medline from Bio import Geo import csv # 參數設置 Entrez.email = "abcd@163.com" #告訴ncbi你是誰 Entrez.tool = "abcd"# GEO.csv文件為一列數據全部為gse號 list1=[] with open('GEO.csv', encoding='utf-8')as f:f_csv = csv.reader(f)for i, rows in enumerate(f_csv):if i >= 1:list1.append(rows)for t in list1:print(t)# uid為gse的uid號,取了第一個 gds為gse所在的geo庫的名字handle = Entrez.esearch(db="gds", term=t)record = Entrez.read(handle)uid = record["IdList"][0]# print(uid)# print(record)# print(record["Count"])# print(record["IdList"][0])# print(record["IdList"])read_elink = Entrez.read(Entrez.elink(dbfrom="gds", db="pubmed", id=uid))print ("LinkSetDb: ", read_elink[0]["LinkSetDb"])# 查看所有相關的目標庫for lsd in read_elink[0]["LinkSetDb"]:print (lsd["DbTo"], lsd["LinkName"], len(lsd["Link"]))# 查看相關的所有文獻 pmidfor link in read_elink[0]["LinkSetDb"][0]["Link"]:mid = link["Id"]print(mid)# 根據gse號的pmid獲取對應文獻# 用 efetch下載hd_efetch = Entrez.efetch(db="pubmed", id=mid, rettype="medline", retmode="text", )parse_medline = Medline.parse(hd_efetch)with open("mouse_pubmed.xls", "a") as file:file.write("title\tauthors\tsource\tPubMed\n")for i, ele in enumerate(list(parse_medline)):line = ele['TI'] + "\t" + ",".join(ele['AU']) + "\t" + ele['SO'] + "\t" + ele['PMID'] + "\n"file.write(line)print(i, line)#有的文章作者很多,比如encode計劃等,這種文章再批量獲取時,需要把’AU‘作者去掉,不然總會報錯總結
以上是生活随笔為你收集整理的根据GSE号在NCBI批量获取文献的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 经济学硕士毕业论文题目【282个】
- 下一篇: 极简 ssh之 scp