Spaces:
Running
Running
File size: 1,762 Bytes
372e7c3 fd23452 dcb44a1 fd23452 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
import pandas as pd
import gradio as gr
from pymed import PubMed
import urllib.parse
import urllib.request
import ipywidgets as widgets
import debinterface
from Bio import Entrez
from IPython.display import HTML
def search_pubmed_with_gradio(search_term, max_results, include_pubmed_id, include_title, include_abstract):
pubmed = PubMed(tool="MyTool", email="aalamel@clemson.edu")
results = pubmed.query(search_term, max_results=max_results)
article_list = []
for article in results:
article_dict = article.toDict()
if include_pubmed_id:
pubmed_id = article_dict['pubmed_id'].partition('\n')[0]
else:
pubmed_id = ""
if include_title:
title = article_dict['title']
else:
title = ""
if include_abstract:
abstract = article_dict['abstract']
else:
abstract = ""
article_list.append({'pubmed_id': pubmed_id, 'title': title, 'abstract': abstract})
df = pd.DataFrame(article_list)
return df
interface = gr.Interface(search_pubmed_with_gradio,
[gr.inputs.Textbox(label="Search Term"),
gr.inputs.Slider(minimum=1, maximum=10000, default=100, label="Max Results"),
gr.inputs.Checkbox("pubmed_id", label="Pubmed ID"),
gr.inputs.Checkbox("title", label="Title"),
gr.inputs.Checkbox("abstract", label="Abstract")],
"dataframe",
title="PubMed Search",
description="Enter a keyword or more than a keyword to search in PubMed database")
if __name__ == "__main__":
interface.launch() |