Spaces:
Running
Running
Improved publication formatting
Browse files- app.py +4 -4
- publications.py +46 -13
app.py
CHANGED
|
@@ -108,10 +108,10 @@ with tab_data:
|
|
| 108 |
from datasources import query_data_source
|
| 109 |
|
| 110 |
|
| 111 |
-
text = st.text_area("Which neuron would you like to know about
|
| 112 |
|
| 113 |
-
source = st.selectbox('
|
| 114 |
-
format = st.selectbox('Return format', FORMATS)
|
| 115 |
|
| 116 |
submitted = st.form_submit_button("Submit")
|
| 117 |
|
|
@@ -151,7 +151,7 @@ with tab_model:
|
|
| 151 |
ax.plot(ts,vs, label=key)
|
| 152 |
ax.legend()
|
| 153 |
|
| 154 |
-
plt.xlabel("Time (
|
| 155 |
plt.ylabel("(SI units)")
|
| 156 |
|
| 157 |
|
|
|
|
| 108 |
from datasources import query_data_source
|
| 109 |
|
| 110 |
|
| 111 |
+
text = st.text_area("Which neuron would you like to know about?", "AVBL")
|
| 112 |
|
| 113 |
+
source = st.selectbox('Select data source to use:', (DS_WORMNEUROATLAS,))
|
| 114 |
+
format = st.selectbox('Return format:', FORMATS)
|
| 115 |
|
| 116 |
submitted = st.form_submit_button("Submit")
|
| 117 |
|
|
|
|
| 151 |
ax.plot(ts,vs, label=key)
|
| 152 |
ax.legend()
|
| 153 |
|
| 154 |
+
plt.xlabel("Time (s)")
|
| 155 |
plt.ylabel("(SI units)")
|
| 156 |
|
| 157 |
|
publications.py
CHANGED
|
@@ -21,28 +21,61 @@ def find_basis_paper(query, result_limit=10):
|
|
| 21 |
if not query:
|
| 22 |
continue
|
| 23 |
|
| 24 |
-
|
| 25 |
-
|
| 26 |
-
|
| 27 |
-
|
| 28 |
-
|
| 29 |
-
|
| 30 |
-
|
| 31 |
-
|
| 32 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 33 |
|
| 34 |
-
|
| 35 |
-
|
| 36 |
-
info += format_paper_list(papers)
|
| 37 |
|
| 38 |
print(info)
|
| 39 |
return info
|
| 40 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 41 |
def format_paper_list(papers):
|
| 42 |
list = ''
|
| 43 |
for idx, paper in enumerate(papers):
|
| 44 |
print(paper)
|
| 45 |
-
list+=(f"{idx}: **{paper
|
| 46 |
if paper['tldr'] and paper['tldr']['text']:
|
| 47 |
list+=(f"> _{paper['tldr']['text'].strip()}_ \n\n")
|
| 48 |
|
|
|
|
| 21 |
if not query:
|
| 22 |
continue
|
| 23 |
|
| 24 |
+
try:
|
| 25 |
+
rsp = requests.get('https://api.semanticscholar.org/graph/v1/paper/search',
|
| 26 |
+
headers={'X-API-KEY': S2_API_KEY},
|
| 27 |
+
params={'query': query, 'limit': result_limit, 'fields': 'title,url,authors,year,tldr,journal'})
|
| 28 |
+
rsp.raise_for_status()
|
| 29 |
+
results = rsp.json()
|
| 30 |
+
total = results["total"]
|
| 31 |
+
if not total:
|
| 32 |
+
print('No matches found. Please try another query.')
|
| 33 |
+
continue
|
| 34 |
+
|
| 35 |
+
print(f'Found {total} results. Showing up to {result_limit}.')
|
| 36 |
+
papers = results['data']
|
| 37 |
+
info += format_paper_list(papers)
|
| 38 |
|
| 39 |
+
except Exception as e:
|
| 40 |
+
info += ('There was a problem...\n\n%s'%e)
|
|
|
|
| 41 |
|
| 42 |
print(info)
|
| 43 |
return info
|
| 44 |
|
| 45 |
+
|
| 46 |
+
def get_element(paper, part):
|
| 47 |
+
simple_parts = ['year','url','title']
|
| 48 |
+
if part in simple_parts:
|
| 49 |
+
if part in paper and paper[part] is not None:
|
| 50 |
+
v = paper[part]
|
| 51 |
+
return v.strip() if type(v)==str else v
|
| 52 |
+
else:
|
| 53 |
+
return '???'
|
| 54 |
+
|
| 55 |
+
elif part == 'journal':
|
| 56 |
+
if part in paper and paper[part] is not None:
|
| 57 |
+
return paper[part]['name'].strip()
|
| 58 |
+
else:
|
| 59 |
+
return '???'
|
| 60 |
+
elif part == 'authors':
|
| 61 |
+
if part in paper and paper[part] is not None:
|
| 62 |
+
return paper[part][0]['name'].strip()
|
| 63 |
+
else:
|
| 64 |
+
return '???'
|
| 65 |
+
elif part == 'tldr':
|
| 66 |
+
if part in paper and paper[part] is not None:
|
| 67 |
+
return paper[part]['text'].strip()
|
| 68 |
+
else:
|
| 69 |
+
return '???'
|
| 70 |
+
else:
|
| 71 |
+
return '<unknown field %s>'%part
|
| 72 |
+
|
| 73 |
+
|
| 74 |
def format_paper_list(papers):
|
| 75 |
list = ''
|
| 76 |
for idx, paper in enumerate(papers):
|
| 77 |
print(paper)
|
| 78 |
+
list+=(f"{idx}: **{get_element(paper, 'authors')} et al. {get_element(paper, 'year')}**, [{get_element(paper, 'journal')}]({get_element(paper, 'url')}) {get_element(paper, 'title')}\n\n")
|
| 79 |
if paper['tldr'] and paper['tldr']['text']:
|
| 80 |
list+=(f"> _{paper['tldr']['text'].strip()}_ \n\n")
|
| 81 |
|