added pubmed search
This commit is contained in:
parent
c9a140900d
commit
ae27a5c999
|
@ -5,6 +5,9 @@
|
|||
[![DeepSource](https://static.deepsource.io/deepsource-badge-dark-mini.svg)](https://deepsource.io/gh/navanchauhan/Curie-Web/?ref=repository-badge)
|
||||
|
||||
|
||||
**Do Not Forget To Change DB Host configuration!**
|
||||
|
||||
|
||||
|
||||
```
|
||||
export PATH=$PATH:/home/pi/Desktop/Curie-Web/app/src/scripts
|
||||
|
|
|
@ -37,3 +37,6 @@ class statusForm(FlaskForm):
|
|||
class generateSMILES(FlaskForm):
|
||||
n = IntegerField('Number of Molecules to Generate',default=1,validators=[DataRequired()])
|
||||
#modelSelection = SelectField('Model',choices=[("alpha","Alpha"),("beta","Beta")])
|
||||
|
||||
class PyMedSearch(FlaskForm):
|
||||
query = StringField('Search Query for PubMed',default="Covid-19",validators=[DataRequired()])
|
|
@ -0,0 +1,50 @@
|
|||
{% extends 'base.html' %}
|
||||
|
||||
{% block main %}
|
||||
<h1>Curie Search</h1>
|
||||
<p>Search PubMed articles.</p>
|
||||
<form action="{{ url_for('pubmed') }}" method="post" enctype="multipart/form-data">
|
||||
{% include 'flash_messages.html' %}
|
||||
{{ form.csrf_token }}
|
||||
<div class="form-row">
|
||||
{{ form.query.label }}
|
||||
{{ form.query(class="form-control")}}
|
||||
</div>
|
||||
<!--<div class="form-row">
|
||||
{\{ form.modelSelection.label }}
|
||||
{\{ form.modelSelection(class="form-control")}}
|
||||
</div>-->
|
||||
<br>
|
||||
<div class="form-row">
|
||||
<button type="submit" class="btn btn-primary">Search</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
{% if result %}
|
||||
<h3>Search Results</h3>
|
||||
{% for x in range(result|length) %}
|
||||
<!--<i>{\{result}}</i>-->
|
||||
<!--<p>{{result[x]}}</p>-->
|
||||
<div class="card mb-3">
|
||||
<div class="row no-gutters">
|
||||
<div class="col-md-4 text-white bg-dark">
|
||||
<div class="card-body">
|
||||
<p class="card-text"><b>DOI: </b><a href="https://doi.org/{{result[x]['doi']}}">{{result[x]['doi']}}</a></p>
|
||||
<p class="card-text"><b>PubMed ID: </b><a href="https://pubmed.ncbi.nlm.nih.gov/{{result[x]['pubmed_id']}}">{{result[x]['pubmed_id']}}</a></p>
|
||||
<p class="card-text"><b>Download: </b><a href="https://sci-hub.tw/{{result[x]['doi']}}">Sci-Hub</a></p>
|
||||
<p class="card-text"><b>Journal: </b>{{result[x]['journal']}}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-8">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">{{result[x]["title"]}}</h5>
|
||||
<p class="card-text"><b>Abstract: </b>{{result[x]["abstract"]}}</p>
|
||||
<p class="card-text"><small class="text-muted">Published on {{result[x]['publication_date']}}</small></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
{% endblock %}
|
27
app/views.py
27
app/views.py
|
@ -9,10 +9,13 @@ from flask import render_template, request, flash
|
|||
from werkzeug.utils import secure_filename
|
||||
from random import choice, shuffle
|
||||
from string import digits, ascii_lowercase
|
||||
from pymed import PubMed
|
||||
from datetime import datetime
|
||||
import json
|
||||
|
||||
# Note: that when using Flask-WTF we need to import the Form Class that we created
|
||||
# in forms.py
|
||||
from .forms import MyForm, curieForm, statusForm, generateSMILES
|
||||
from .forms import MyForm, curieForm, statusForm, generateSMILES, PyMedSearch
|
||||
|
||||
def gen_word(N, min_N_dig, min_N_low):
|
||||
choose_from = [digits]*min_N_dig + [ascii_lowercase]*min_N_low
|
||||
|
@ -47,6 +50,26 @@ def visualise():
|
|||
"""Render visualisation page."""
|
||||
return render_template('visualise.html')
|
||||
|
||||
@app.route('/Search',methods=['GET','POST'])
|
||||
def pubmed():
|
||||
"""Query PubMed"""
|
||||
form = PyMedSearch()
|
||||
pubmed = PubMed(tool="Curie", email="navanchauhan@gmail.com")
|
||||
|
||||
if request.method == 'POST' and form.validate_on_submit():
|
||||
q = form.query.data
|
||||
print(form)
|
||||
print(pubmed)
|
||||
results = pubmed.query(q,max_results=100)
|
||||
search = []
|
||||
for x in results:
|
||||
search.append(x.toDict())
|
||||
|
||||
return render_template('search.html',result=search,form=form)
|
||||
|
||||
flash_errors(form)
|
||||
return render_template('search.html',form=form)
|
||||
|
||||
@app.route('/Status',methods=['GET','POST'])
|
||||
def status():
|
||||
taskStatusForm = statusForm()
|
||||
|
@ -110,7 +133,7 @@ def wtform():
|
|||
flash_errors(myform)
|
||||
return render_template('wtform.html', form=myform)
|
||||
|
||||
tfWorking = -1
|
||||
tfWorking = 0
|
||||
|
||||
if tfWorking == -1:
|
||||
try:
|
||||
|
|
|
@ -16,3 +16,12 @@ uvicorn
|
|||
tensorflow-cpu==2.2.0
|
||||
bunch
|
||||
tqdm
|
||||
prettytable
|
||||
gradio
|
||||
git+https://github.com/bp-kelley/descriptastorus
|
||||
pandas_flavor
|
||||
subword_nmt
|
||||
wget
|
||||
lifelines
|
||||
scikit-plot
|
||||
pymed
|
Loading…
Reference in New Issue