Skip to content

Creation

marinakiweler edited this page Jun 12, 2019 · 9 revisions

Create an own combination of the available requirements

First extract a term matching table for the used instruments without specifying the origin key.

full_tmt <- create_term_match_table(
  instrument_list = c("Thermo EASY-nLC", "Q Exactive - Orbitrap_MS"))
  # no origin key set

Now it is possible to subset or delete some rows with r tools.

sub_rows <- c(1, 6:8, 10) # wanted rows
subset_tmt <- full_tmt[sub_rows,]

knitr::kable(subset_tmt)
term term_verbose origin handle_type handle example
1 hplc_instrument High Performance Liquid Chromatography (HPLC) Instrument author;miape;jpr_guidelines_ms list_path Instruments.Thermo EASY-nLC.InstrumentFriendName Thermo EASY-nLC
6 hplc_samplevolume Injected Sample Volume author;miape list_path Instruments.Thermo EASY-nLC.Method.Sample pickup.Volume [µl] 4.00
7 hplc_gradient Chromatography Gradient author;miape;jpr_guidelines_ms function document_easy_nlc_gradient NA
8 ms_instrument Mass Spectrometer (MS) author;miape;jpr_guidelines_ms list_path Instruments.Q Exactive - Orbitrap MS.InstrumentFriendName Q Exactive - Orbitrap MS
10 ms_model MS Model author;miape;jpr_guidelines_ms literal QExactive QExactive

New rows can be added. It is mandatory to fill in term_verbose, handle_type and handle in their specific column. term_verbose should be a short desription for the column as it will show up as key in the final table.

If handle contains a string that just needs to be copied to the output table the collumn handle_type should contain "literal".

# create row
new_row <- data.frame(term = "example_line",
                      term_verbose = "Example line",        # Term in the final table
                      origin = "",
                      handle_type = "literal",            
                      handle = "this will be the value",    # Value in the final table
                      example = "")
# add to subset
subset_tmt <- rbind(subset_tmt, new_row)

If the row is meant to show an entry of the json handle_type needs to be "list_path" and handle should contain the path to the information in the flattened json after the group number.

# create the flattened json (explained in using_MARMoSET)
flat_json <- flatten_json(json = MARMoSET::testfile_json)

# choose/search for item of the flattened list, get path without group number.
fj_path <- stringi::stri_subset(names(flat_json), regex = "Flush")  %>% 
stringi::stri_replace_all_regex(pattern = "^Group.[:digit:].", replacement = "")

# create row
new_row <- data.frame(term = "second_example_line",
                      term_verbose = "Second example, Autosampler flush volume",    # Term in the final table
                      origin = "",
                      handle_type = "list_path",            
                      handle = fj_path,                                             # Value in the final table
                      example = "")
# add to subset
subset_tmt <- rbind(subset_tmt, new_row)

This so changed term matching table can be used with the function match_terms(). Of course this table can also be exported and reused.

subset_table <- one_group_match_terms(flat_json = flat_json, 
                                         term_matching_table = subset_tmt, 
                                         group_number = 1)
knitr::kable(subset_table[5:7,])
Term Value
5 MS Model QExactive
6 Example line this will be the value
7 Second example, Autosampler flush volume 100.00
Clone this wiki locally