# HG changeset patch # User sigven # Date 1668113411 0 # Node ID 80e9dd6942c09b55a8f3a3ecad5ddd7a448ca3fd # Parent c5deb8fae68673ff54bb521f131d7d870b88b8b3 Uploaded diff -r c5deb8fae686 -r 80e9dd6942c0 metascreen.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/metascreen.xml Thu Nov 10 20:50:11 2022 +0000 @@ -0,0 +1,295 @@ + + Pre-experimental setup of drug combination screens + + sigven/metascreen:0.1.1 + + excl_well_ids.csv && + #set excluded_well_ids_file = './excl_well_ids.csv' + #end if + + R -e 'suppressPackageStartupMessages(library(metascreen)); + + custom_excluded_wells = NULL; + #if $excluded_well_ids_file + custom_excluded_wells = read.csv( + "$excluded_well_ids_file", stringsAsFactors = F, header = F); + custom_excluded_wells = custom_excluded_wells[[1]]; + #end if + + list_of_drugs_raw <- read.csv( + file = "$drugs_csv", + check.names = FALSE, + na.strings = "", + dec = ".", encoding = "UTF-8"); + list_of_volumes_raw <- read.csv( + file = "$volumes_csv", + check.names = FALSE, + na.strings = "", + dec = ".", encoding = "UTF-8"); + list_of_doses_raw <- read.csv( + file = "$doses_csv", + check.names = FALSE, + na.strings = "", + dec = ".", encoding = "UTF-8"); + list_of_controls_raw <- read.csv( + file = "$ctrls_csv", + check.names = FALSE, + na.strings = "", + dec = ".", encoding = "UTF-8"); + list_of_stock_cons_raw <- read.csv( + file = "$stock_cons_csv", + check.names = FALSE, + na.strings = "", + dec = ".", encoding = "UTF-8"); + + listofDoses <- + metascreen::generateListofDoses( + list_of_doses_raw, + .dropCol = TRUE); + + + sourcePlate = data.frame(); + #for $pmap in $input_data.platemaps + + sourcePlate = dplyr::bind_rows( + sourcePlate, + metascreen::importPlateMap( + "$pmap.element_identifier", + .fileFormat = "PlateMap", + galaxy = TRUE, + .sourcePlateConv = $input_data.convert_platemap_format + ) + ); + #end for + + combine_doses = c(1:min(unique(table(listofDoses[,"Drug"])))); + exclude_outer_wells = FALSE; + + #if $dispensing_options.well_exclusion.exclude_wells + exclude_outer_wells = $dispensing_options.well_exclusion.outer_wells; + #end if + + #if $combination_options.combo_design.type_combination == "all" + #if $combination_options.combo_design.inner_dosing + combine_doses = c(2:(min(unique(table(listofDoses[,"Drug"])))-1)); + #end if + #end if + + add_untreated = NULL; + #if $dispensing_options.add_untreated.untreated + add_untreated = list( + name = "$dispensing_options.add_untreated.untreated_name", + replicates = $dispensing_options.add_untreated.untreated_replicates); + #end if + + + listofExWells <- + metascreen::excludeWells( + plateType = $input_data.plateformat, + wells = custom_excluded_wells, + outer.wells = exclude_outer_wells); + + + listofCombinations <- + metascreen::combineDrugs( + listofDoses, + .combineDoses = combine_doses, + .noReplicates = $combination_options.num_replicates, + .drugRepAttrib = "$combination_options.combo_design.type_combination"); + + + dispensingData <- + metascreen::generateDispensingData( + listofCombinations, + list_of_drugs_raw, + listofDoses, + list_of_volumes_raw, + list_of_controls_raw, + list_of_stock_cons_raw, + sourcePlate, + listofExWells, + .ctrlReplicates = $dispensing_options.num_control_replicates, + .addUntreated = add_untreated, + .finalWellVolume = $dispensing_options.well_volume, + .plateFormat = $input_data.plateformat, + .destinationPlateID = "$dispensing_options.dest_plate_ID", + .randomizeDispensing = $dispensing_options.randomise_dispensing, + .probeDispensing = $dispensing_options.probe_dispensing); + + df = as.data.frame(dispensingData[["output"]]); + readr::write_tsv(listofCombinations,file="$doseComb",col_names=T, quote="none"); + readr::write_tsv(df,file="$dispensingDF", col_names = T, quote = "none");' 2>&1 + + ]]> + + +
+ + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + `_ file + + Provides a list of all the doses for each drug used in + a drug sensitivity screen. The list needs to include a column with the drug number, + drug name, one or multiple columns for the doses, and a column with the unit. + ['Number', 'Drug', '6th Dose', ..., '1st Dose', 'Unit']. + An example is shown with https://raw.githubusercontent.com/Enserink-lab/metascreen/main/inst/extdata/library/listofdoses.csv + +- **List of drugs.** - `CSV `_ file + + Provides a list of drugs used in the drug screen. The list + needs to include a column with a unique drug number / id for each drug, the + drug name and the CAS number. ['ID', 'NAME', 'CAS_NUMBER']. For custom + compunds without CAS number, include column, but leave field empty. + An example is shown with https://raw.githubusercontent.com/Enserink-lab/metascreen/main/inst/extdata/library/listofdrugs.csv + +- **List of stock concentrations.** - A `CSV `_ file + + Provides a list of the stock concentrations + for each drug used in the drug screen. If the stock concentrations are not + known, use the highest dose. The list needs to include column with the unique + drug number / id, the drug name, the stock concentration and the concentration unit. + ['NUMBER', 'NAME', 'CONCENTRATION', 'UNIT']. + An example is shown with https://raw.githubusercontent.com/Enserink-lab/metascreen/main/inst/extdata/library/listofstockconcentrations.csv + + - **List of controls.** - A `CSV `_ file + + Provides the controls to be used in a drug + screen. The list needs to include a column with the name, CAS number, + dose, unit, the source plate from which the control is dispensed from and the + volume. ['NAME', 'CAS_NUMBER', 'DOSE', 'UNIT', 'SOURCE_PLATE', 'VOLUME']. + An example is shown with https://raw.githubusercontent.com/Enserink-lab/metascreen/main/inst/extdata/library/listofctrls.csv + + - **List of drug volumes.** - A `CSV `_ file + + Provides the volumes for each drug that + have been or will be dispensed. The list follows the same format as the + list of drug doses. The list needs to include a column with the drug number, + drug name, one or multiple columns with doses, and a column with the unit. + ['Number', 'Drug', 'Vol 6th Dose', ..., 'Vol 1st Dose', 'Unit']. + An example is shown with https://raw.githubusercontent.com/Enserink-lab/metascreen/main/inst/extdata/library/listofvolumes.csv + + + - **plateMap** - XML file (s) + + One or more plate map files with the contents (usually compounds/drugs) of the + source plate from which drugs are dispensed from. Plate maps can currently be imported + using .PlateMap (XML files) provided by the IncuCyte® Plate Map Editor. **IMPORTANT: when uploading + PlateMap files to Galaxy, please make sure you denote file 'Type' as XML.** + + An example is shown with https://github.com/Enserink-lab/metascreen/blob/main/inst/extdata/library/C008.PlateMap + +----- + +**What it does** + +The *pre-experimental* modules of metascreen is intended to serve the following purposes: + +allowing to set-up a drug combination screens by (a) generating drug combinations from a list of drugs and +(b) distributing those drug combinations across a number of experimental plates. (c) generating instructions +for dispensing robots for the creation of those experimental plates. + + + + + + +]]> + + +