Gaborandi's picture
Update app.py
a58cf86
raw
history blame contribute delete
No virus
1.64 kB
import pandas as pd
import gradio as gr
from pymed import PubMed
from Bio import Entrez
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()