Mercurial > repos > lain > ms_to_peakforest_it
diff config.yml @ 0:b58b229c4cbf draft
planemo upload commit 523a9c8df173302ad38e9f15e7d82eab01736551-dirty
author | lain |
---|---|
date | Fri, 03 Mar 2023 14:10:24 +0000 |
parents | |
children | 7e3085fc60c1 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/config.yml Fri Mar 03 14:10:24 2023 +0000 @@ -0,0 +1,250 @@ +## +## when you see {{ something }} in a string, this means the string is +## a template, and the "{{ something }}" will be replaced by its value +## at runtime. +## This is usefull to build strings from other strings. +## to reference an item in a tree, you can use dots as branches: +## {{ parameters.flags.help }} +## will be extrapolated to "Show this help" +## +## But beware: +## {{ parameters.mandatory }} +## will be extrapolated to +## "{'input': 'input file path'}" +## + +## this config is used for debug. +## it allows to define debug options before everything else is parsed +__meta_config__: + __debug__: False + __debug_stream__: stderr + __only_root_debug__: False + + +## the cli parameters +parameters: + mandatory: + ## input is mandatory + input: input file path + flags: + ## help, verbose and version can be provided with no parameter. + help: Show this help + verbose: More verbose outputs + version: Show this tool's version + debug: show debug outputs + do_run_dry: Runs the whole process, without the server. Usefull for tests. + embed_js: Embed js in html file instead of using a separated js file. + firefox: Open firefox on the web page. + chromium: Open chromium or chrome on the web page. + optional: + ## these optional parameters need a value "--opt value --opt2 value2" + method: "default is {{ defaults.method }}" + spectrum_type: "default is {{ defaults.spectrum_type }}" + sample_type: "default is {{ defaults.sample_type }}" + resolution: "default is {{ defaults.resolution }}" + resolution: "default is {{ defaults.resolution }}" + name: The precursor name + peakforest.url: "default={{ defaults.peakforest.url }}" + peakforest.token: The token to comunicate with peakforest api + polarity: positive|negative + raw_metadata: example - 1-1__INCHIKEY__=QNAYBMKLOCPYGJ-REOHCLBHSA-N_L-Alanine_MS_POS_plasma_RT__=0.84_filtree.csv + scan_type: ms|msms|rmn + run_dry_html: when "--run-dry", provides the output directory for {{ generated.html }} + run_dry_js: when "--run-dry", provides the output directory for {{ generated.js }} + raw_metadata_sep: "raw metadata separator" + logging.std: "Either out, err, or anything else to not output" + logging.file.path: "The file path to output logs to" + validation: "Set the default validation to the provided value, TRUE or FALSE." + output_json: "Provide a path to output a JSON file." + meta: + ## meta info about the tool itself + author: Lain Pavot + version: 1.1.0 + shortcuts: + ## to define things like: "we can use -p instead of --polarity" + peakforest.token: t + polarity: p + help: h + version: v + verbose: V + debug: d + logging.std: l + +## some default parameters +## logging defines two elements: std and file. +## std should be either empty, err or out. +## it tells where to outputs logs: +## - nowhere (empty value) +## - in sterr (err) +## - in stdout (out) +## and file. Id a path is provided, add outputs to this file. +## if append is true, outputs are appended to the file. +## otherwise, the file is emptied each time the app runs. +defaults: + peakforest: + url: https://nightly.peakforest.org + token: '' + spectrum_type: LC_MSMS + method: cf_pfem_urine_method1_qtof-msms + # api-msms-fia__idf-cea + # cf_pfem_plasma_method1_qtof-msms + # cf_pfem_urine_method1_qtof-msms + # lc-msms__test + scan_type: ms2 + resolution: high + sample_type: compound-ref + # sample_type: compound-mix + polarity: positive + raw_metadata: '' + name: '' + run_dry_html: + run_dry_js: + raw_metadata_sep: ',' + validation: "TRUE" + verbose: false + debug: true + logging: + std: out ## out || err + file: + path: + append: False + output_json: '' + +## token related info +token: + ## do you use a file to store your token? + use_file: false + ## if so, what path the file is located at? + file_path: .token + ## if not, you can provide you token here + value: + +network: + ip: 0.0.0.0 + port: 8000 + +workdir: + ## create a tmp directory + create_tmp: true + ## works in the created tmp directory, or if not created, in /tmp + work_in_tmp: true + ## generate outputs in the created tmp directory, or if not created, in /tmp + generate_in_tmp: true + +## the templates paths +templates: + ## meta is what wrapps the whole page. + main: meta.html + main_mix: meta-compound-mix.html + main_ref: meta-compound-ref.html + ## form is one instance of a pf form + # form: form.html + # form: compound-ref.html + form: form.html + form_mix: compound-mix.html + form_ref: compound-ref.html + ## one item of the tab list + tab_list: tab_list.html + ## the js for one form + js: add-one-spectrum-index.js + ## placeholders for the html templates. + ## this will not change the placeholders syntax for this file. + placeholders: + start: "{{ " + stop: " }}" + +generated: + ## what filename to give to the whole html file + html: pf.html + ## what filename to give to js files + js: add-one-spectrum-{{ index }}.js + +regex: + values: + ## reuse these smol regex in bigger regex! + spectrum_type: "NMR|LC_MS|LC_MSMS|MRM(_\\d+)?" + matrix: "[Uu]rine|[Pp]lasma|[Pp]las" + mode: "POS|NEG" + energy: "\\d+ev" + pool: "[Pp]ool\\d+" + rt: "\\d+\\.\\d+" + runs: "\\d+-\\d+" + inchikey: "[A-Z]{14}-[A-Z]{10}-[A-Z]" + + ## the "INCHIKEY" word + ## one or more underscores + ## may be followed by a equal sign + ## captures in the "inchikey" variable: + ## 14, 10 and 1 letters + ## in caps + ## separated by a hyphen + inchikey: "INCHIKEY_+=?(?P<inchikey>{{ regex.values.inchikey }})" + + ## method is one of values defined bellow, between underscores + spectrum_type: "_(?P<method>{{ regex.values.method }})_" + + ## matrix is one of values defined bellow, between underscores + matrix: "_(?P<matrix>{{ regex.values.matrix }})_" + + ## pool is one of values defined bellow, between underscores + pool: "_(?P<pool>{{ regex.values.pool }})_" + + ## molecule everything between inchikey and method. + molecule: "{{ regex.inchikey }}_(?P<molecule>.*?){{ regex.method }}" + + ## mode is one of values defined bellow, between underscores + mode: "_(?P<mode>{{ regex.values.mode }})_" + + ## energy is one of values defined bellow, between underscores + energy: "_(?P<energy>{{ regex.values.energy }})_" + + ## - A underscore, + ## - the "RT" word, + ## - some underscore(s), + ## - an optional interrogation mark, + ## - the actual RT value is captured here, + ## - there is a underscore at the end + rt: "_RT_+=?(?P<rt>{{ regex.values.rt }})_" + + ## "runs" is at the beginning, and ends with an underscore. + runs: "^(?P<runs>{{ regex.values.runs }})_" + + + ## BEGIN + ## anything + ## the inchikey + ## anything else can follow + ## END + # fragnot: ^.*{{ regex.inchikey }}.*$ + + + ## This is the most exhaustive regex I came with to extract info from + ## fragnot files name. + # fragnot: + # ^ + # .* (?# there may be anything at the begining) + # (?P<runs>\d+-\d+) (?# the run numbers) + # _+ (?# followed by anything - underscores usualy) + # INCHIKEY_+=?(?P<inchikey>{{ regex.inchikey }}) (?# we insert inchikey regex here - see above) + # _+ (?# there is one or more underscores) + # (?P<molecule>.*?) (?# the molecule name follows the inchikey) + # _+ (?# there is one or more underscores) + # (?P<method>{{ regex.method }}) (?# then, there is the method - nmr, ms or mrm???) + # _+ (?# there may be some underscores to separate) + # (?P<matrix>{{ regex.matrix }})? (?# the matrix - urine or plasma) + # _* (?# there may be some underscores to separate) + # (?P<mode>POS|NEG) (?# the acq mode - pos or neg) + # _+ (?# there may be some underscores to separate) + # (?P<pool>{{ regex.pool }})? (?# the pool - "Pool"+numbers, optional) + # _* (?# there may be some underscores to separate) + # (?P<energy>\d+ev)? (?# the energy - only for nmr, so it's optional) + # _* (?# there may be some underscores to separate) + # (?P<pool2>{{ regex.pool }})? (?# the pool - sometimes the pool if *after* the energy...) + # _* (?# there may be some underscores to separate) + # (?P<matrix2>{{ regex.matrix }})? (?# the matrix is here, sometimes) + # _* (?# there may be anything here) + # RT_+=?(?P<rt>\d+\.\d+) (?# the retension time is a decimal number) + # _* (?# there may be anything at the end) + # (?P<filtered>[fF]iltree)? (?# sometimes, "Filtree" appears, lets capture it) + # \.[ct]sv (?# the extension) + # $ \ No newline at end of file