diff --git a/assets/json_text.json b/assets/json_text.json index b8177a35f64f22f16224949cf9e8c88ae7fdbe6b..dcba36134119bf4d677974bd7f742c56c583e454 100644 --- a/assets/json_text.json +++ b/assets/json_text.json @@ -1 +1 @@ -{"nodes": [], "links": []} \ No newline at end of file +{"nodes": [{"doi": "https://doi.org/10.1021/acs.jcim.5b00332", "name": "Feasibility of Active Machine Learning for Multiclass Compound Classification", "author": ["Tobias Lang", "Florian Flachsenberg", "Ulrike von Luxburg", "Matthias Rarey"], "year": "January 7, 2016", "journal": "Journal of Chemical Information and Modeling", "group": "Input", "depth": 0, "citations": 31}, {"doi": "https://doi.org/10.1021/acs.jmedchem.1c01683", "name": "Active Learning for Drug Design: A Case Study on the Plasma Exposure of Orally Administered Drugs", "author": ["Xiaoyu Ding", "Rongrong Cui", "Jie Yu", "Tiantian Liu", "Tingfei Zhu", "Dingyan Wang", "Jie Chang", "Zisheng Fan", "Xiaomeng Liu", "Kaixian Chen", "Hualiang Jiang", "Xutong Li", "Xiaomin Luo", "Mingyue Zheng"], "year": "November 15, 2021", "journal": "Journal of Medicinal Chemistry", "group": "Citedby", "depth": 1, "citations": 0}, {"doi": "https://doi.org/10.1021/acs.chemrev.8b00728", "name": "Concepts of Artificial Intelligence for Computer-Assisted Drug Discovery", "author": ["Xin Yang", "Yifei Wang", "Ryan Byrne", "Gisbert Schneider", "Shengyong Yang"], "year": "July 11, 2019", "journal": "Chem. Rev.", "group": "Citedby", "depth": 1, "citations": 98}, {"doi": "https://doi.org/10.1021/acs.jcim.8b00626", "name": "De Novo Molecule Design by Translating from Reduced Graphs to SMILES", "author": ["Peter Pog\u00e1ny", "Navot Arad", "Sam Genway", "Stephen D. Pickett"], "year": "December 11, 2018", "journal": "Journal of Chemical Information and Modeling", "group": "Citedby", "depth": 1, "citations": 24}, {"doi": "https://doi.org/10.1021/acscentsci.8b00176", "name": "Designing Algorithms To Aid Discovery by Chemical Robots", "author": ["Alon B. Henson", "Piotr S. Gromski", "Leroy Cronin"], "year": "July 3, 2018", "journal": "ACS Cent. Sci.", "group": "Citedby", "depth": 1, "citations": 46}, {"doi": "https://doi.org/10.1021/acs.jcim.7b00729", "name": "Modeling Kinase Inhibition Using Highly Confident Data Sets", "author": ["Sorin Avram", "Alina Bora", "Liliana Halip", "Ramona Curp\u0103n"], "year": "April 30, 2018", "journal": "Journal of Chemical Information and Modeling", "group": "Citedby", "depth": 1, "citations": 8}, {"doi": "https://doi.org/10.1021/acs.jcim.5b00646", "name": "Predictive Models for Fast and Effective Profiling of Kinase Inhibitors", "author": ["Alina Bora", "Sorin Avram", "Ionel Ciucanu", "Marius Raica", "Stefana Avram"], "year": "April 11, 2016", "journal": "Journal of Chemical Information and Modeling", "group": "Citedby", "depth": 1, "citations": 14}, {"doi": "https://doi.org/10.1021/acs.jcim.6b00709", "name": "Matched Molecular Series: Measuring SAR Similarity", "author": ["Emanuel S. R. Ehmki", "Christian Kramer"], "year": "May 1, 2017", "journal": "Journal of Chemical Information and Modeling", "group": "Input", "depth": 0, "citations": 5}, {"doi": "https://doi.org/10.1021/acs.jcim.0c00269", "name": "Matched Molecular Series Analysis for ADME Property Prediction", "author": ["Mahendra Awale", "Sereina Riniker", "Christian Kramer"], "year": "May 5, 2020", "journal": "Journal of Chemical Information and Modeling", "group": "Citedby", "depth": 1, "citations": 6}], "links": [{"source": "https://doi.org/10.1021/acs.jmedchem.1c01683", "target": "https://doi.org/10.1021/acs.jcim.5b00332"}, {"source": "https://doi.org/10.1021/acs.chemrev.8b00728", "target": "https://doi.org/10.1021/acs.jcim.5b00332"}, {"source": "https://doi.org/10.1021/acs.jcim.8b00626", "target": "https://doi.org/10.1021/acs.jcim.5b00332"}, {"source": "https://doi.org/10.1021/acscentsci.8b00176", "target": "https://doi.org/10.1021/acs.jcim.5b00332"}, {"source": "https://doi.org/10.1021/acs.jcim.7b00729", "target": "https://doi.org/10.1021/acs.jcim.5b00332"}, {"source": "https://doi.org/10.1021/acs.jcim.5b00646", "target": "https://doi.org/10.1021/acs.jcim.5b00332"}, {"source": "https://doi.org/10.1021/acs.jcim.0c00269", "target": "https://doi.org/10.1021/acs.jcim.6b00709"}, {"source": "https://doi.org/10.1021/acs.chemrev.8b00728", "target": "https://doi.org/10.1021/acs.jcim.8b00626"}, {"source": "https://doi.org/10.1021/acs.jcim.7b00729", "target": "https://doi.org/10.1021/acs.jcim.5b00646"}]} \ No newline at end of file diff --git a/citation_parser_ui.py b/citation_parser_ui.py index c2b119dce5075fb6f1e11226dbf866abccd1d4fe..a9d9161f11635449d07535afa0804aae87a514ae 100644 --- a/citation_parser_ui.py +++ b/citation_parser_ui.py @@ -10,9 +10,9 @@ from dash.exceptions import PreventUpdate from input.interface import InputInterface import input.publication from verarbeitung.process_main import Processing -from dash.dependencies import Input, Output, State #Loading Bar +from dash.dependencies import Input, Output, State import plotly.express as px -import dash_bootstrap_components as dbc # pip install dash-bootstrap-components for Loading Bar +import dash_bootstrap_components as dbc # pip install dash-bootstrap-components @@ -28,9 +28,10 @@ boxcontent = f.read() f.close() app.layout = html.Div([ +html.Div(children=[ # Layer 0: For the Header and Help Function(s) dbc.Button( - 'show Info', + 'Show Info', id='collapse-button', className="me-1", color="primary", @@ -43,7 +44,7 @@ app.layout = html.Div([ ), # Layer 1: For the string input - html.Div([ + dbc.Spinner(html.Div([ "Input: ", # A simple box for inputting a string. # Value is transmitted upon pressing return or clicking out of the box. @@ -51,9 +52,9 @@ app.layout = html.Div([ style={ "width": "400px"}, ), - ]), + ]),size="lg", color="primary", type="border", fullscreen=True,), # Layer 2: For file input and recursion depths - html.Div([ + html.Div([ "Cited-by Depth: ", # Forward recursion. Values between 1 and 10 can be entered. dcc.Input(id='forward-depth',value='1',type='number',min='0',max='5', @@ -65,7 +66,7 @@ app.layout = html.Div([ style={"width": "50px"}, ), # Upload box. Can be used via drag-and-drop or byclicking on it to open a file viewer. - dcc.Upload( + dbc.Spinner(dcc.Upload( id="file-input", children=html.Div( #Drag and drop or click to select a file to upload @@ -79,7 +80,7 @@ app.layout = html.Div([ "borderRadius": "5px", "textAlign": "center", "margin": "10px", - }) + }),size="lg", color="primary", type="border", fullscreen=True,), ]), # Layer 3: For the checklist, Remove-/Start-Buttons and error message @@ -91,11 +92,11 @@ app.layout = html.Div([ # Displays error message if 'Smart Input' is active. html.Div(id='input-err',style={'color':'red'}), # Clears the entire list. - dbc.Button(id='clear-all-button',children='Clear All', color="primary", className="me-1"), + dbc.Button(id='clear-all-button',children='Clear All', color="primary", className="me-1",style={'display': 'inline-block'}), # Clear all selected elements. - dbc.Button(id='clear-selected-button',children='Clear Selected', color="primary", className="me-1"), + dbc.Button(id='clear-selected-button',children='Clear Selected', color="primary", className="me-1",style={'display': 'inline-block'}), # Starts the process that generates a graph. - dbc.Button(id='start-button',children='Generate Graph', color="primary", className="me-1") + dbc.Button(id='start-button',children='Generate Graph', color="primary", className="me-1",style={'display': 'inline-block'}) ]), # Layer 4: For additional Options html.Div([ @@ -105,15 +106,20 @@ app.layout = html.Div([ options=[{'label':k,'value':k} for k in additional_options], value=[]) ]), + + ], style={'padding': 10, 'flex': 0.8}), + + html.Div(children=[ # Layer 5: For the Graph and corresponding error messages - html.Div([ + dbc.Spinner(html.Div([ html.Div(id='generate-graph-error',style={'color':'red'}), html.Iframe( src="assets/index.html", style={"height": "600px", "width": "100%"}, ), - ]) -]) + ]),size="lg", color="primary", type="border", fullscreen=True,), + ], style={'padding': 10, 'flex': 1.2}) +], style={'display': 'flex', 'flex-direction': 'row'}) @app.callback( Output('input-checklist','options'),