Spaces:
Running
Running
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() |