日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Python 利用Entrez庫篩選下載PubMed文獻摘要的示例

瀏覽:159日期:2022-07-04 13:59:02

作者:xiaolanLin

聲明 :本文版權歸作者和博客園共有,來源網址:https://www.cnblogs.com/xiaolan-Lin

一個不是學生物的孩子來搞生物,當真是變成了一塊廢鐵啊,但也是讓我體會到了一把生物信息的力量。

廢話不多說,開整!

任務:快速高效從PubMed上下載滿足條件的文獻PMID、標題(TI)、摘要(AB)。

PubMed官網 https://pubmed.ncbi.nlm.nih.gov

此處有幾種選擇可以達到目的:

(1)官網上匹配篩選條件(注:匹配快速,但是下載下來的數量受到限制,每次只能下載10000條數據,甚至更少。)

Python 利用Entrez庫篩選下載PubMed文獻摘要的示例

可以看到,我需要的數據是有三十多萬條,但是每次只能下載10000條,那我豈不是要手動n次。。很明顯,在大批量下載文獻的情況下,官網不是很友好。

(2)R語言有個R包,叫做easyPubMed,這里我也給大家貼上學習指南(https://cran.r-project.org/web/packages/easyPubMed/vignettes/getting_started_with_easyPubMed.html)

由于我不喜歡用R寫代碼,所以我寫一半還是換了Python,熟練R的小伙伴可以自行根據指南走通需求。

(3)重量級庫來了,Python自帶的Bio包中的Entrez檢索庫,簡直就是我的救星,以下是我的代碼:

注:Entrez在Bio包中,Bio的安裝請移步 https://www.cnblogs.com/xiaolan-Lin/p/14023147.html

import numpy as np from Bio import Medline, Entrez # 一般是通過BioPython的Bio.Entrez模塊訪問Entrez from collections import Counter Entrez.email = '(此處寫你自己在官網注冊的郵箱賬號)' # 應用自己的賬號訪問NCBI數據庫 # 此處需將服務器協議指定為1.0,否則會出現報錯。http.client.IncompleteRead: IncompleteRead(0 bytes read) # 服務器http協議1.0,而python的是1.1,解決辦法就是指定客戶端http協議版本 import http.client http.client.HTTPConnection._http_vsn = 10 http.client.HTTPConnection._http_vsn_str = ’HTTP/1.0’ ''' Entrez 是一個檢索系統,可以用其訪問NCBI數據庫,比如說PubMed,GenBank,GEO等。 獲得有關 global PBDE 的所有文獻的PubMed IDs ''' # handle_0 = Entrez.esearch(db='pubmed', term='drug therapy[Subheading] AND adverse effects[Subheading] AND humans[MeSH Terms]', retmax=306431) handle_0 = Entrez.esearch(db='pubmed', term='drug therapy[MeSH Subheading] AND adverse effects[MeSH Subheading] AND humans[MeSH Terms] AND (2000/01/01[Date - Publication] : 2021/12/31[Date - Publication])', ptyp='Review', usehistory='y', retmax=306431) record = Entrez.read(handle_0) # 獲取檢索條件的所有文獻 idlist = record['IdList'] # 提取出文獻id print ('Total: ', record['Count']) No_Papers = len(idlist) # 共306431篇文獻 2000-01-01:2021-12-31 webenv = record[’WebEnv’] query_key = record[’QueryKey’] total = No_Papers step = 1300 print('Result items:', total) with open('./Data_PubMed/PBDE1.txt', ’w’) as f: for start in range(0, total, step): print('Download record %i to %i' % (start + 1, int(start + step))) handle_1 = Entrez.efetch(db='pubmed', retstart=start, rettype='medline', retmode='text', retmax=step, webenv=webenv, query_key=query_key) # 獲取上述所有文獻的PubMed IDs records = Medline.parse(handle_1) records = list(records) # 將迭代器轉換至列表(list) for index in np.arange(len(records)): id = records[index].get('PMID', '?') title = records[index].get('TI', '?') title = title.replace(’[’, ’’).replace(’].’, ’’) # 若提取的標題出現[].符號,則去除 abstract = records[index].get('AB', '?') f.write(id) f.write('n') f.write(title) f.write('n') f.write(abstract) f.write('n')

話不多說,結果跑出來了我真的很快樂~

Python 利用Entrez庫篩選下載PubMed文獻摘要的示例

最后的結果是存放在txt文件中,大伙兒根據自己的需求改變代碼所需字段啊。

現在我來解釋一下,我貼上的這串代碼的實現原理,首先是通過Entrez檢索到符合我篩選條件的文獻,里邊的限制條件包括了幾個詞匯匹配以及時間限制,時間我限制在了2000年1月1日到2021年的12月31日(這里的時間我選用的是Date - Publication,時間選取Date - Completion、Date - Modification還是Date - Publication其實還是有爭議的,大家自行考慮選取)。

Entrez.esearch的作用就是用來檢索的,里邊的參數db指向你要檢索的數據庫,代碼中的注釋也寫了,Entrez作為一個接口檢索,除了能夠檢索PubMed中的文獻,也能去到別的數據庫檢索文獻;term是寫你的篩選語句,注意你寫的檢索語句不能帶有引號,單引號也不行,否則會檢索不到,如果不知道檢索語句怎么寫,或者是不知道字段是否被定義,可以在官網的檢索那里https://pubmed.ncbi.nlm.nih.gov/advanced/選擇字段輸入內容自動生成query,但是生成的語句是不太智能的,會有很多括號是你不需要的,自己寫代碼的時候要適當去掉;ptyp我這里用的是Review,usehistory是y,意思是后邊我的檢索要記住這個語句,根據歷史查詢來檢索;retmax如果不進行設置的話,默認給你的最大數據量好像是只有1000,我要的檢索內容是超過這個值的,因此我需要自定義檢索的數量。

Entrez.read是對Entrez.esearch檢索到的內容進行讀取,里邊包含了9種元素,我們主要是想從中得到文獻的id號,只有拿到了文獻的id號,我們后面進行摘要的提取才能準確定位。

Python 利用Entrez庫篩選下載PubMed文獻摘要的示例

最后是循環當中步長的設置,這里就要根據自己的需求來定義了,包括內容的提取,因為我只需要PMID、標題(TI)、摘要(AB),所以我就沒有加載別的內容進來,這里也有一點要注意,標題下載下來是大部分帶有[ ].的,方便操作我直接就在下載的時候給去除了,這也是上面replace代碼的由來。

附上我參考的鏈接,如果我這篇文章解決不了你的問題,那么希望下面的渠道能夠幫助到你

https://zhuanlan.zhihu.com/p/54611852

https://zhuanlan.zhihu.com/p/262957260

以上就是Python 利用Entrez庫篩選下載PubMed文獻摘要的示例的詳細內容,更多關于Python Entrez庫下載PubMed文獻的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩在线观看不卡| 国产在线看片免费视频在线观看| 精品久久久亚洲| 日韩欧美中文字幕在线视频| 欧洲在线一区| 国产经典一区| 国产精品草草| 欧美一区久久| 国产精品白浆| 日韩精品一级二级 | 亚洲人成在线网站| 女生影院久久| 国产精品精品国产一区二区| 久久的色偷偷| a天堂资源在线| 国产一区二区三区天码| 国产精品99久久久久久董美香| 国产精品午夜一区二区三区| 国产探花一区二区| 欧美亚洲综合视频| 国产精品资源| 国产精品亚洲片在线播放| 日本成人精品| 亚洲黄色在线| 日韩在线短视频| 桃色av一区二区| 日韩一区二区三区在线免费观看| 欧美美女一区| 亚洲欧美视频一区二区三区| 欧美日韩精品一本二本三本| 蜜臀av一区二区在线免费观看| 亚洲综合图色| 91欧美极品| 国产999精品在线观看| 国产一区二区三区四区二区| 久久97视频| 精精国产xxxx视频在线播放| 蜜桃视频在线网站| 91亚洲一区| 国产精品毛片一区二区三区| 国产精品毛片在线看| 喷白浆一区二区| 国产福利资源一区| 国产真实久久| 欧美视频久久| 久久精品导航| 欧美日韩a区| 99精品视频精品精品视频| 亚洲色图网站| 亚洲国产福利| 在线日韩电影| 天海翼精品一区二区三区| 久久中文字幕一区二区三区| 你懂的网址国产 欧美| 成人午夜亚洲| 亚洲免费一区三区| 国产精品玖玖玖在线资源| 激情中国色综合| 巨乳诱惑日韩免费av| 欧美综合精品| 欧美激情三区| 亚洲作爱视频| 国产精品22p| 夜夜嗨一区二区| 日韩精品午夜视频| 精品一区av| 性欧美精品高清| 国产精品久av福利在线观看| 国产精品久久久网站| 日韩精品免费一区二区三区| 亚洲毛片在线免费| 日韩av专区| 老牛国产精品一区的观看方式| 免费看久久久| 香蕉久久一区| av亚洲一区二区三区| 免费看日韩精品| аⅴ资源天堂资源库在线| 在线视频精品| 欧美www视频在线观看| 亚洲精品一区二区在线播放∴| 久久精品伊人| 欧美日韩国产高清| 国产精品免费精品自在线观看| 色吊丝一区二区| 少妇久久久久| 国产亚洲精aa在线看| 亚洲天堂1区| 国产精品一国产精品| 91精品国产调教在线观看| 一区二区电影在线观看| 亚洲不卡系列| 国产欧美二区| 黄色日韩在线| 亚洲精品一级二级| 日本午夜精品一区二区三区电影| 精品国产免费人成网站| 麻豆久久久久久| 伊人成人在线视频| 国内自拍视频一区二区三区| 日韩高清在线不卡| 欧美va天堂在线| 国产伦精品一区二区三区千人斩| 日韩在线一区二区| 亚洲精品欧洲| 国产亚洲精品美女久久 | 久久精品免费看| 国际精品欧美精品| 美女网站一区| 久久精品国产999大香线蕉| 国产中文一区| 中文字幕日韩亚洲| 高清av不卡| 日韩成人在线看| 亚洲欧美视频一区二区三区| 日韩免费小视频| 欧美国产三级| 日韩av一区二区三区四区| 欧美精品一二| 日韩美女一区二区三区在线观看| 欧美国产极品| 青青伊人久久| 一区二区三区四区在线观看国产日韩| 亚洲激情av| 999久久久国产精品| 精品国产aⅴ| 国产精品久久久久av蜜臀| 免费的成人av| 日韩午夜精品| 亚洲综合五月| 久久福利精品| 欧美~级网站不卡| av亚洲一区二区三区| 国产精品毛片久久| 亚洲精品**中文毛片| 精品视频自拍| 麻豆一区二区在线| 国产va免费精品观看精品视频| 国产经典一区| 日韩av自拍| 97人人精品| 久久影院资源站| 国产色播av在线| 97人人精品| 欧美久久天堂| 九九久久婷婷| 亚洲精品1区2区| 99精品在线观看| 91精品高清| 夜夜精品视频| 激情黄产视频在线免费观看| 欧美三级精品| 久久久久99| 亚洲a在线视频| 欧美成人综合| 亚洲激情婷婷| 91精品国产自产精品男人的天堂| 久久亚洲影院| 在线精品视频一区| 日本在线成人| 日本免费一区二区视频| 日韩av不卡一区二区| 欧美日韩精品一区二区三区在线观看| 91欧美日韩在线| 国产精品亚洲人成在99www| 国产欧美日本| 精品久久久久久久| 午夜久久免费观看| 久久亚洲欧美| 91嫩草精品| 日韩欧美精品综合| 婷婷精品视频| 日本不卡免费高清视频在线| 99精品一区| 国产精品日本| 精品在线99| 日韩国产高清在线| 国产黄色一区| 红桃视频亚洲| 婷婷精品在线观看| 亚洲视频电影在线| 久久一区视频| 日韩精品一区二区三区免费观看| 亚洲一二av| 另类小说一区二区三区| 在线观看精品| 日本欧美韩国一区三区| 久久国产精品免费一区二区三区| 日韩中文在线电影| 久久国产精品99国产| 日韩激情一二三区| 久久久精品午夜少妇| 综合一区av| 国产极品一区| 日韩精品一区第一页| 久久av中文| 欧美日韩国产高清电影| 911亚洲精品| 蜜桃av.网站在线观看| 欧美一区免费|