comparison metascreen.xml @ 7:3a345b6f5d3d draft default tip

Deleted selected files
author sigven
date Wed, 21 Dec 2022 23:22:36 +0000
parents f6e6b6914b48
children
comparison
equal deleted inserted replaced
6:f6e6b6914b48 7:3a345b6f5d3d
1 <tool id="metascreenPre" name="metascreen: pre-experimental" version="0.2.4">
2 <description>Pre-experimental setup of drug combination screens</description>
3 <requirements>
4 <container type="docker">sigven/metascreen:0.2.0</container>
5 </requirements>
6 <command detect_errors="aggressive"><![CDATA[
7 ln -s $input_data.list_of_drugs "$input_data.list_of_drugs.element_identifier" &&
8 #set drugs_csv = './' + str($input_data.list_of_drugs.element_identifier)
9
10 ln -s $input_data.list_of_volumes "$input_data.list_of_volumes.element_identifier" &&
11 #set volumes_csv = './' + str($input_data.list_of_volumes.element_identifier)
12
13 ln -s $input_data.list_of_doses "$input_data.list_of_doses.element_identifier" &&
14 #set doses_csv = './' + str($input_data.list_of_doses.element_identifier)
15
16 ln -s $input_data.list_of_ctrls "$input_data.list_of_ctrls.element_identifier" &&
17 #set ctrls_csv = './' + str($input_data.list_of_ctrls.element_identifier)
18
19 ln -s $input_data.list_of_stock_cons "$input_data.list_of_stock_cons.element_identifier" &&
20 #set stock_cons_csv = './' + str($input_data.list_of_stock_cons.element_identifier)
21
22 #for $pmap in $input_data.platemaps
23 ln -s '$pmap' '$pmap.element_identifier';
24 #end for
25
26
27 #set excluded_well_ids_file = ''
28 #if $dispensing_options.well_exclusion.exclude_wells
29 echo $dispensing_options.well_exclusion.well_ids | sed 's/__cn__/\n/g' > excl_well_ids.csv &&
30 #set excluded_well_ids_file = './excl_well_ids.csv'
31 #end if
32
33 R -e 'suppressPackageStartupMessages(library(metascreen));
34
35 custom_excluded_wells = NULL;
36 #if $excluded_well_ids_file
37 custom_excluded_wells = read.csv(
38 "$excluded_well_ids_file", stringsAsFactors = F, header = F);
39 custom_excluded_wells = custom_excluded_wells[[1]];
40 #end if
41
42 list_of_drugs_raw <- read.csv(
43 file = "$drugs_csv",
44 check.names = FALSE,
45 na.strings = "",
46 dec = ".", encoding = "UTF-8");
47 list_of_volumes_raw <- read.csv(
48 file = "$volumes_csv",
49 check.names = FALSE,
50 na.strings = "",
51 dec = ".", encoding = "UTF-8");
52 list_of_doses_raw <- read.csv(
53 file = "$doses_csv",
54 check.names = FALSE,
55 na.strings = "",
56 dec = ".", encoding = "UTF-8");
57 list_of_controls_raw <- read.csv(
58 file = "$ctrls_csv",
59 check.names = FALSE,
60 na.strings = "",
61 dec = ".", encoding = "UTF-8");
62 list_of_stock_cons_raw <- read.csv(
63 file = "$stock_cons_csv",
64 check.names = FALSE,
65 na.strings = "",
66 dec = ".", encoding = "UTF-8");
67
68 listofDoses <-
69 metascreen::generateListofDoses(
70 list_of_doses_raw,
71 .dropCol = TRUE);
72
73
74 sourcePlate = data.frame();
75 #for $pmap in $input_data.platemaps
76
77 sourcePlate = dplyr::bind_rows(
78 sourcePlate,
79 metascreen::importPlateMap(
80 "$pmap.element_identifier",
81 .fileFormat = "PlateMap",
82 .sourcePlateConv = TRUE
83 )
84 );
85 #end for
86
87 combine_doses = c(1:min(unique(table(listofDoses[,"Drug"]))));
88 exclude_outer_wells = FALSE;
89
90 #if $dispensing_options.well_exclusion.exclude_wells
91 exclude_outer_wells = $dispensing_options.well_exclusion.outer_wells;
92 #end if
93
94 #if $combination_options.combo_design.type_combination == "all"
95 #if $combination_options.combo_design.inner_dosing
96 combine_doses = c(2:(min(unique(table(listofDoses[,"Drug"])))-1));
97 #end if
98 #end if
99
100 add_untreated = NULL;
101 #if $dispensing_options.add_untreated.untreated
102 add_untreated = list(
103 name = "$dispensing_options.add_untreated.untreated_name",
104 replicates = $dispensing_options.add_untreated.untreated_replicates);
105 #end if
106
107
108 listofExWells <-
109 metascreen::excludeWells(
110 plateType = $input_data.plateformat,
111 wells = custom_excluded_wells,
112 outer.wells = exclude_outer_wells);
113
114
115 listofCombinations <-
116 metascreen::combineDrugs(
117 listofDoses,
118 .combineDoses = combine_doses,
119 .noReplicates = $combination_options.num_replicates,
120 .drugRepAttrib = "$combination_options.combo_design.type_combination");
121
122
123 dispensingData <-
124 metascreen::generateDispensingData(
125 listofCombinations,
126 list_of_drugs_raw,
127 listofDoses,
128 list_of_volumes_raw,
129 list_of_controls_raw,
130 list_of_stock_cons_raw,
131 sourcePlate,
132 listofExWells,
133 .ctrlReplicates = $dispensing_options.num_control_replicates,
134 .addUntreated = add_untreated,
135 .finalWellVolume = $dispensing_options.well_volume,
136 .plateFormat = $input_data.plateformat,
137 .destinationPlateID = "$dispensing_options.dest_plate_ID",
138 .randomizeDispensing = $dispensing_options.randomise_dispensing,
139 .probeDispensing = $dispensing_options.probe_dispensing);
140
141 df = as.data.frame(dispensingData[["output"]]);
142 readr::write_tsv(listofCombinations,file="$doseComb",col_names=T, quote="none");
143 readr::write_tsv(df,file="$dispensingDF", col_names = T, quote = "none");' 2>&1
144
145 ]]></command>
146 <inputs>
147
148 <section name="input_data" title="User-defined input files - see below for strict formatting requirements" expanded="true">
149 <param name="list_of_doses" type="data" format="txt" label="List of drug doses (CSV)" multiple="false"/>
150 <param name="list_of_drugs" type="data" format="txt" label="List of drugs (CSV)" multiple="false"/>
151 <param name="list_of_volumes" type="data" format="txt" label="List of volumes (CSV)" multiple="false"/>
152 <param name="list_of_ctrls" type="data" format="txt" label="List of controls (CSV)" multiple="false"/>
153 <param name="list_of_stock_cons" type="data" format="txt" label="List of stock concentrations (CSV)" multiple="false"/>
154 <param name="platemaps" type="data" format="xml" label="PlateMap file (XML)" multiple="true"/>
155 <!--param name="convert_platemap_format" type="boolean" label="Convert platemap to a source plate format" truevalue="T" falsevalue="F" checked="false"/-->
156 <param name="plateformat" type="select" label="Plate format" display="radio" multiple="false">
157 <option value="6">6</option>
158 <option value="12">12</option>
159 <option value="24">24</option>
160 <option value="48">48</option>
161 <option value="96">96</option>
162 <option value="384">384</option>
163 <option value="1536">1536</option>
164 </param>
165 </section>
166
167 <section name="combination_options" title="Options - drug combination design" expanded="true">
168 <conditional name="combo_design">
169 <param name="type_combination" type="select" display="radio" multiple="false" label="Type of dose combinations">
170 <option value="all">All - both single treatments and combination treatments</option>
171 <option value="single">Single - only single treatments</option>
172 </param>
173 <when value="all">
174 <param name="inner_dosing" type="boolean" label="Exclude lowest and highest dose (inner dosing only)" truevalue="T" falsevalue="F" checked="false"/>
175 </when>
176 </conditional>
177 <param type="integer" name="num_replicates" label="Number of replicates for each dose combination" value="3" min="1" max="20"/>
178 </section>
179 <section name="dispensing_options" title="Options - dispensing layout" expanded="true">
180 <conditional name="well_exclusion">
181 <param name="exclude_wells" type="boolean" label="Exclusion of wells" truevalue="T" falsevalue="F" checked="false"/>
182 <when value="T">
183 <param name="well_ids" type="text" label="Custom set of well identifiers to exclude (one per line):" area="true"/>
184 <param name="outer_wells" type="boolean" label="Exclude all outer wells" truevalue="T" falsevalue="F" checked="true"/>
185 </when>
186 </conditional>
187 <param name="num_control_replicates" type="integer" label="Number of control replicates" value="5" min="1" max="10"/>
188 <param name="well_volume" type="integer" label="Final well volume" value="10" min="1" max="500"/>
189 <param name="randomise_dispensing" type="boolean" label="Randomise dispensing" truevalue="T" falsevalue="F" checked="true"/>
190 <param name="probe_dispensing" type="boolean" label="Probe dispensing" truevalue="T" falsevalue="F" checked="false"/>
191 <param name="dest_plate_ID" type="text" value="PLATE_012" label="A unique destination plate ID - for destination plate barcode"/>
192 <conditional name="add_untreated">
193 <param name="untreated" type="boolean" label="Add untreated" truevalue="T" falsevalue="F" checked="true"/>
194 <when value="T">
195 <param name="untreated_name" type="text" label="Identifier (name) for untreated" value="Untreated"/>
196 <param name="untreated_replicates" type="integer" label="Number of untreated replicates" value="5" min="1" max="500"/>
197 </when>
198 </conditional>
199
200 </section>
201 </inputs>
202 <outputs>
203 <!--data format="xlsx" name="output_xlsx" label="crisprFPA - xlsx"/-->
204 <data format="txt" name="doseComb" label="doseCombinations - tsv"/>
205 <data format="txt" name="dispensingDF" label="dispensingData - tsv"/>
206 </outputs>
207
208
209 <help><![CDATA[
210 .. class:: infomark
211
212 Limitations etc:
213
214 -----
215
216 **Dataset formats**
217
218 The input datasets are in text_ (CSV) format and in XML format. The output datasets are also in text_ formats.
219
220 .. _text: ${static_path}/formatHelp.html#text
221
222 Specific input file requirements:
223
224 - **List of drug doses** - `CSV <https://en.wikipedia.org/wiki/Comma-separated_values/>`_ file
225
226 Provides a list of all the doses for each drug used in
227 a drug sensitivity screen. The list needs to include a column with the drug number,
228 drug name, one or multiple columns for the doses, and a column with the unit.
229 ['Number', 'Drug', '6th Dose', ..., '1st Dose', 'Unit'].
230 An example is shown with https://raw.githubusercontent.com/Enserink-lab/metascreen/main/inst/extdata/library/listofdoses.csv
231
232 - **List of drugs.** - `CSV <https://en.wikipedia.org/wiki/Comma-separated_values/>`_ file
233
234 Provides a list of drugs used in the drug screen. The list
235 needs to include a column with a unique drug number / id for each drug, the
236 drug name and the CAS number. ['ID', 'NAME', 'CAS_NUMBER']. For custom
237 compunds without CAS number, include column, but leave field empty.
238 An example is shown with https://raw.githubusercontent.com/Enserink-lab/metascreen/main/inst/extdata/library/listofdrugs.csv
239
240 - **List of stock concentrations.** - A `CSV <https://en.wikipedia.org/wiki/Comma-separated_values/>`_ file
241
242 Provides a list of the stock concentrations
243 for each drug used in the drug screen. If the stock concentrations are not
244 known, use the highest dose. The list needs to include column with the unique
245 drug number / id, the drug name, the stock concentration and the concentration unit.
246 ['NUMBER', 'NAME', 'CONCENTRATION', 'UNIT'].
247 An example is shown with https://raw.githubusercontent.com/Enserink-lab/metascreen/main/inst/extdata/library/listofstockconcentrations.csv
248
249 - **List of controls.** - A `CSV <https://en.wikipedia.org/wiki/Comma-separated_values/>`_ file
250
251 Provides the controls to be used in a drug
252 screen. The list needs to include a column with the name, CAS number,
253 dose, unit, the source plate from which the control is dispensed from and the
254 volume. ['NAME', 'CAS_NUMBER', 'DOSE', 'UNIT', 'SOURCE_PLATE', 'VOLUME'].
255 An example is shown with https://raw.githubusercontent.com/Enserink-lab/metascreen/main/inst/extdata/library/listofctrls.csv
256
257 - **List of drug volumes.** - A `CSV <https://en.wikipedia.org/wiki/Comma-separated_values/>`_ file
258
259 Provides the volumes for each drug that
260 have been or will be dispensed. The list follows the same format as the
261 list of drug doses. The list needs to include a column with the drug number,
262 drug name, one or multiple columns with doses, and a column with the unit.
263 ['Number', 'Drug', 'Vol 6th Dose', ..., 'Vol 1st Dose', 'Unit'].
264 An example is shown with https://raw.githubusercontent.com/Enserink-lab/metascreen/main/inst/extdata/library/listofvolumes.csv
265
266
267 - **plateMap** - XML file (s)
268
269 One or more plate map files with the contents (usually compounds/drugs) of the
270 source plate from which drugs are dispensed from. Plate maps can currently be imported
271 using .PlateMap (XML files) provided by the IncuCyte® Plate Map Editor. **IMPORTANT: when uploading
272 PlateMap files to Galaxy, please make sure you denote file 'Type' as XML.**
273
274 An example is shown with https://github.com/Enserink-lab/metascreen/blob/main/inst/extdata/library/C008.PlateMap
275
276 -----
277
278 **What it does**
279
280 The *pre-experimental* modules of metascreen is intended to serve the following purposes:
281
282 allowing to set-up a drug combination screens by (a) generating drug combinations from a list of drugs and
283 (b) distributing those drug combinations across a number of experimental plates. (c) generating instructions
284 for dispensing robots for the creation of those experimental plates.
285
286
287
288
289
290
291 ]]>
292 </help>
293
294 </tool>