Commit 9c5d488a authored by letournd's avatar letournd
Browse files

20.04.2022 / v5.17 / Changing live Constellation interface to formulafinding...

20.04.2022 / v5.17 / Changing live Constellation interface to formulafinding branch as it appears to be functional & stable
parent 38eb8bac
- Here you can upload a file containing formulas found for each peak your raw HRMS data file.
- This file must originate from William Kew's "FTMS Visualization" software (available at https://github.com/wkew/FTMSVisualization).
- It should be .csv or .txt, comma or tab delimited (select the option that applies).
- The file should AT LEAST contain the following columns of data: Exp. m/z, Theor. Mass, Isotopic Abundance, Error, Abundance, DBE, Formula, HeteroClass
- As above, the "Load" and "Clear" buttons must be used to initialize and remove datafiles, respectively.
\ No newline at end of file
- Formula Finder utilizes the FT-MS molecular formulae search and assignment algorithm from CoreMS (https://github.com/EMSL-Computing/CoreMS)
- Once a raw data file is uploaded (containing m/z and intensity information), you can run Formula Finder to assign molecular formulae to your mass list.
- The resulting information is available to download as a .csv, and also exists as a data layer in the Graph area, in the Hover- and Selected Data boxes.
- As above, the "Load" and "Clear" buttons can be used to initialize and remove existing datafiles produced by Formula Finder, respectively.
- Details regarding what each of the Formula Finder parameters control can be accessed from the Info box within the Formula Finder popup
\ No newline at end of file
- MINIMUM ERROR (ppm):
- MAXIMUM ERROR (ppm):
- MS NOISE THRESHOLD:
- MINIMUM DBE:
- MAXIMUM DBE:
- PROTONATED/RADICAL/ADDUCT:
- ISOTOPOLOGUE FILTER OPTIONS:
- MINIMUM PEAKS FILTER OPTIONS:
- ATOM SETTINGS:
\ No newline at end of file
......@@ -81,7 +81,8 @@ app.title = 'Constellation'
# Here we import the text for the information modals
infotext = []
filelist = ['info/' + 'section' + str(x) + '.txt' for x in list(string.ascii_lowercase)[:11]]
filelist.insert(4, 'info/sectiond2.txt')
filelist.insert(2, 'info/sectionb2.txt')
filelist.insert(5, 'info/sectiond2.txt')
for filepath in filelist:
textfile = open(filepath, 'r')
infotext.append(textfile.read())
......@@ -132,7 +133,7 @@ def serve_layout():
html.B('''A. Data File Upload'''),
'\n', infotext[0], '\n'], style=gv.styles['infoboxparagraph']),
html.Div(children=[
html.B('''B. Formulas File Upload'''),
html.B('''B. Formula Finder'''),
'\n', infotext[1], '\n'], style=gv.styles['infoboxparagraph']),
html.Div(children=[
html.B('''C. Graph KMD Base Selection'''),
......@@ -144,7 +145,7 @@ def serve_layout():
# This is the popup window with controls for formula finding routines (IN DEVELOPMENT)
dbc.Modal([
dbc.ModalHeader(children=[
html.Img(src='assets/coremslogo.png', style={'height': '40px', 'padding': '0px 11px 10px 0px'}),
html.Img(src='assets/logo7.jpg', style={'height': '40px', 'padding': '0px 11px 10px 0px'}),
html.H5('''Formula Finder''', style=gv.styles['h5']),
dbc.Button("Close", id='closemodal2', className='ml-auto', outline=True, active=True, color='primary',
style={'float': 'right', 'fontSize': '13px'}),
......@@ -377,7 +378,7 @@ def serve_layout():
# This is the popup window with information about formula finding routines (IN DEVELOPMENT)
dbc.Modal([
dbc.ModalHeader(children=[
html.Img(src='assets/coremslogo.png', style={'height': '50px', 'padding': '0px 11px 10px 0px'}),
html.Img(src='assets/logo7.jpg', style={'height': '50px', 'padding': '0px 11px 10px 0px'}),
html.H5('''Formula Finder''', style=gv.styles['h5']),
dbc.Button("Close", id='closemodal3', className='ml-auto', outline=True, active=True, color='primary',
style={'float': 'right', 'fontSize': '13px'}),
......@@ -387,10 +388,12 @@ def serve_layout():
], close_button=False, style={'width': '100%', 'display': 'inline-block'}),
dbc.ModalBody(html.Div(children=[
html.Div([
"INFO"
], style={'width': '100%', 'display': 'block', 'borderStyle': 'none'})
html.Div(children=[
html.B('''B. Formula Finder'''),
'\n', infotext[2], '\n'], style=gv.styles['infoboxparagraph']),
html.Div(children=[
html.B('''FORMULA FINDER PARAMETERS'''),
'\n', infotext[3], '\n'], style=gv.styles['infoboxparagraph']),
], style={'float': 'left', 'fontSize': '12px', 'width': '100%', 'padding': '0px 0px 10px 0px'})),
], id='formulafindinginfo', size='lg', scrollable=True, centered=True, style={'white-space': 'pre'}),
......@@ -406,26 +409,26 @@ def serve_layout():
dbc.ModalBody(html.Div(children=[
html.Div(children=[
html.B('''D. Optimization'''),
'\n', infotext[3], '\n'], style=gv.styles['infoboxparagraph']),
'\n', infotext[4], '\n'], style=gv.styles['infoboxparagraph']),
html.Div(children=[
html.B('***CAUTION***'),
html.B('The optimization function may not work for your dataset. If you are unable to get usable '
'results, please enter values manually.')], style=gv.styles['infoboxparagraph']),
html.B(''),
html.B('***CAUTION*** The optimization function may not work for your dataset. If you are unable to'
' get usable results, please enter values manually.')], style=gv.styles['infoboxparagraph']),
html.Div(children=[
html.B('''Trend Finder Parameters'''),
'\n', infotext[4], '\n'], style=gv.styles['infoboxparagraph']),
html.B('''TREND FINDER PARAMETERS'''),
'\n', infotext[5], '\n'], style=gv.styles['infoboxparagraph']),
html.Div(children=[
html.B('''E. Unit and Base Selection'''),
'\n', infotext[5], '\n'], style=gv.styles['infoboxparagraph']),
'\n', infotext[6], '\n'], style=gv.styles['infoboxparagraph']),
html.Div(children=[
html.B('''F. Trend Finder'''),
'\n', infotext[6], '\n'], style=gv.styles['infoboxparagraph']),
'\n', infotext[7], '\n'], style=gv.styles['infoboxparagraph']),
html.Div(children=[
html.B('''G. Trend Series Selection'''),
'\n', infotext[7], '\n'], style=gv.styles['infoboxparagraph']),
'\n', infotext[8], '\n'], style=gv.styles['infoboxparagraph']),
html.Div(children=[
html.B('''H. Load Saved Series File'''),
'\n', infotext[8]], style=gv.styles['infoboxparagraph']),
'\n', infotext[9]], style=gv.styles['infoboxparagraph']),
], style=gv.styles['modal'])),
], id='trendfindinginfo', size='xl', scrollable=True, centered=True, style={'white-space': 'pre'}),
......@@ -441,13 +444,13 @@ def serve_layout():
dbc.ModalBody(html.Div(children=[
html.Div(children=[
html.B('''Graph Display'''),
'\n', infotext[9], '\n'], style=gv.styles['infoboxparagraph']),
'\n', infotext[10], '\n'], style=gv.styles['infoboxparagraph']),
html.Div(children=[
html.B('''Hover Data'''),
'\n', infotext[10], '\n'], style=gv.styles['infoboxparagraph']),
'\n', infotext[11], '\n'], style=gv.styles['infoboxparagraph']),
html.Div(children=[
html.B('''Selected Data'''),
'\n', infotext[11]], style=gv.styles['infoboxparagraph']),
'\n', infotext[12]], style=gv.styles['infoboxparagraph']),
], style=gv.styles['modal'])),
], id='graphinginfo', size='xl', scrollable=True, centered=True, style={'white-space': 'pre'}),
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment