comparison cite_seq_count.xml @ 0:3df3d1b51110 draft default tip

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/tools/cite_seq_count commit 70fe293f480c4d0e9f14d4373ecac4cbcf4fe17f
author iuc
date Wed, 18 Jan 2023 16:04:20 +0000
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:3df3d1b51110
1 <tool name="CITE-seq-Count" id="cite_seq_count" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@">
2 <description>Count CMO/HTO</description>
3 <macros>
4 <token name="@TOOL_VERSION@">1.4.4</token>
5 <token name="@VERSION_SUFFIX@">0</token>
6 </macros>
7 <edam_topics>
8 <edam_topic>topic_3170</edam_topic>
9 <edam_topic>topic_4028</edam_topic>
10 <edam_topic>topic_3308</edam_topic>
11 </edam_topics>
12 <xrefs>
13 <xref type="bio.tools">CITE-seq-Count</xref>
14 </xrefs>
15 <requirements>
16 <requirement type="package" version="@TOOL_VERSION@">cite-seq-count</requirement>
17 <requirement type="package" version="3.7.12">python</requirement>
18 <requirement type="package" version="1.0.0">umi_tools</requirement>
19 <requirement type="package" version="0.20.7">python-levenshtein</requirement>
20 <requirement type="package" version="0.20.7">levenshtein</requirement>
21 <requirement type="package" version="0.25.3">pandas</requirement>
22 <requirement type="package" version="1.0.0">umi_tools</requirement>
23 <!-- The next dependencies are here to help conda to solve the environment -->
24 <requirement type="package" version="1.0.8">bzip2</requirement>
25 <requirement type="package" version="2.5.0">expat</requirement>
26 <requirement type="package" version="0.70.14">multiprocess</requirement>
27 <requirement type="package" version="1.21.6">numpy</requirement>
28 <requirement type="package" version="0.16">pysam</requirement>
29 <requirement type="package" version="1.7.3">scipy</requirement>
30 </requirements>
31 <stdio>
32 <exit_code range="1:" level="fatal"/>
33 </stdio>
34 <version_command>CITE-seq-Count --version</version_command>
35 <command><![CDATA[
36 ## This is taken from the star solo wrapper:
37 ## Check that the input pairs are of the same type.
38 ## We consume either repeats of two inputs R1 + R2
39 ## or a collection of paired reads.
40 #if str($input_types.use) == "repeat":
41 #assert len(str($input_types.input1).split(",")) == len(str($input_types.input2).split(","))
42 #set $reads1 = $input_types.input1
43 #set $reads2 = $input_types.input2
44 #elif str($input_types.use) == "list_paired":
45 #set $reads1 = $input_types.input_collection.forward
46 #set $reads2 = $input_types.input_collection.reverse
47 #end if
48 CITE-seq-Count
49 --threads \${GALAXY_SLOTS:-4}
50 --read1 '$reads1'
51 --read2 '$reads2'
52 --tags '$tags'
53 ## Chemistry:
54 #if str($params.chemistry) == "v2":
55 --cell_barcode_first_base 1
56 --cell_barcode_last_base 16
57 --umi_first_base 17
58 --umi_last_base 26
59 #else if str($params.chemistry) == "v3":
60 --cell_barcode_first_base 1
61 --cell_barcode_last_base 16
62 --umi_first_base 17
63 --umi_last_base 28
64 #else if str($params.chemistry) == "custom":
65 --cell_barcode_first_base $params.cell_barcode_first_base
66 --cell_barcode_last_base $params.cell_barcode_last_base
67 --umi_first_base $params.umi_first_base
68 --umi_last_base $params.umi_last_base
69 #end if
70 --bc_collapsing_dist $bc_collapsing_dist
71 --umi_collapsing_dist $umi_collapsing_dist
72 $no_umi_correction
73 --expected_cells $expected_cells
74 #if $whitelist:
75 --whitelist '$whitelist'
76 #end if
77 --max-error $max_error
78 #if str($start_trim) != "0":
79 --start-trim $start_trim
80 #end if
81 $sliding_window
82 $dense
83 #if str($first_n) != "0":
84 --first_n $first_n
85 #end if
86 #if str($unmapped.output) == "true":
87 --unknown-top-tags $unknown_top_tags
88 #end if
89
90 ## Outputs are gzip
91 && gunzip Results/read_count/barcodes.tsv.gz
92 && gunzip Results/read_count/features.tsv.gz
93 && gunzip Results/read_count/matrix.mtx.gz
94 && gunzip Results/umi_count/barcodes.tsv.gz
95 && gunzip Results/umi_count/features.tsv.gz
96 && gunzip Results/umi_count/matrix.mtx.gz
97 ]]>
98 </command>
99 <inputs>
100 <conditional name="input_types" >
101 <param name="use" type="select" label="Input Type" >
102 <option value="repeat" >Separate barcode and CMO/HTO reads</option>
103 <option value="list_paired" >Paired collection of barcode and CMO/HTO reads</option>
104 </param>
105 <when value="repeat">
106 <param format="fastq.gz,fastqsanger.gz" name="input1" type="data" multiple="true"
107 label="RNA-Seq FASTQ file, Barcode reads" />
108 <param format="fastq.gz,fastqsanger.gz" name="input2" type="data" multiple="true"
109 label="RNA-Seq FASTQ file, HTO/CMO reads"/>
110 </when>
111 <when value="list_paired">
112 <param name="input_collection" collection_type="paired" type="data_collection" format="fastq.gz,fastqsanger.gz" label="Collection of Pairs" />
113 </when>
114 </conditional>
115 <param argument="--tags" type="data" format="csv" label="the CMO/HTO barcodes as well as their respective names" help="first column is the sequence and second column is the name" />
116 <conditional name="params" >
117 <param name="chemistry" type="select" label="Configure Chemistry Options">
118 <option value="v2" selected="true">Chromium Chemistry v2</option>
119 <option value="v3">Chromium Chemistry v3</option>
120 <option value="custom">Custom</option>
121 </param>
122 <when value="v2" />
123 <when value="v3" />
124 <when value="custom" >
125 <param argument="--cell_barcode_first_base" type="integer" min="1" value="1" label="Cell Barcode First Base" />
126 <param argument="--cell_barcode_last_base" type="integer" min="1" value="16" label="Cell Barcode Last Base" />
127 <param argument="--umi_first_base" type="integer" min="1" value="17" label="UMI First Base" />
128 <param argument="--umi_last_base" type="integer" min="1" value="26" label="UMI Last Base" />
129 </when>
130 </conditional>
131 <param argument="--bc_collapsing_dist" type="integer" min="0" value="1" label="How many errors are allowed between two cell barcodes to collapse them onto one cell." />
132 <param argument="--umi_collapsing_dist" type="integer" min="0" value="2" label="How many errors are allowed between two umi within the same cell and TAG to collapse." />
133 <param argument="--no_umi_correction" type="boolean" truevalue="--no_umi_correction" falsevalue="" checked="false" label="Deactivate UMI correction" />
134 <param argument="--expected_cells" type="integer" min="1" value="3000" label="How many cells you expect in your run" />
135 <param argument="--whitelist" type="data" format="txt,csv,tsv" label="Whitelist of cell barcodes" optional="true"/>
136 <param name="max_error" type="integer" min="0" value="2" label="Maximum Levenshtein distance allowed for CMO/HTO."/>
137 <param name="start_trim" type="integer" min="0" value="0" label="How many bases should be trimmed on CMO/HTO read before starting to map"/>
138 <param name="sliding_window" type="boolean" truevalue="--sliding-window" falsevalue="" checked="false" label="Activate sliding window alignement."/>
139 <param argument="--dense" type="boolean" truevalue="--dense" falsevalue="" checked="false" label="Output in tsv format (in addition to the dense format)"/>
140 <param argument="--first_n" type="integer" value="0" label="Select N reads to run on instead of all." />
141 <conditional name="unmapped">
142 <param name="output" type="select" label="Write table of unknown TAGs to file.">
143 <option value="false">No</option>
144 <option value="true">Yes</option>
145 </param>
146 <when value="false"/>
147 <when value="true">
148 <param name="unknown_top_tags" type="integer" min="1" value="100" label="Top n unmapped TAGs to output."/>
149 </when>
150 </conditional>
151 </inputs>
152 <outputs>
153 <data name="report" format="yaml" label="${tool.name} on ${on_string}: report" from_work_dir="Results/run_report.yaml" />
154 <data format="tsv" name="output_features" label="${tool.name} on ${on_string}: Features raw"
155 from_work_dir="Results/read_count/features.tsv" />
156 <data format="tsv" name="output_barcodes" label="${tool.name} on ${on_string}: Barcodes raw"
157 from_work_dir="Results/read_count/barcodes.tsv" />
158 <data format="mtx" name="output_matrix" label="${tool.name} on ${on_string}: Matrix Features Counts raw"
159 from_work_dir="Results/read_count/matrix.mtx" />
160 <data format="tsv" name="output_features_filtered" label="${tool.name} on ${on_string}: Features filtered"
161 from_work_dir="Results/umi_count/features.tsv" />
162 <data format="tsv" name="output_barcodes_filtered" label="${tool.name} on ${on_string}: Barcodes filtered"
163 from_work_dir="Results/umi_count/barcodes.tsv" />
164 <data format="mtx" name="output_matrix_filtered" label="${tool.name} on ${on_string}: Matrix Features Counts filtered (UMI)"
165 from_work_dir="Results/umi_count/matrix.mtx" />
166 <data format="tsv" name="dense_output_matrix" label="${tool.name} on ${on_string}: Dense Matrix With UMI"
167 from_work_dir="Results/dense_umis.tsv" >
168 <filter>dense</filter>
169 </data>
170 </outputs>
171 <tests>
172 <test expect_num_outputs="7">
173 <!-- test 1 -->
174 <param name="tags" value="tags.csv"/>
175 <param name="expected_cells" value="2"/>
176 <param name="whitelist" value="whitelist.txt"/>
177 <conditional name="input_types">
178 <param name="use" value="repeat"/>
179 <param name="input1" value="correct_R1.fastq.gz" ftype="fastqsanger.gz"/>
180 <param name="input2" value="correct_R2.fastq.gz" ftype="fastqsanger.gz"/>
181 </conditional>
182 <conditional name="params" >
183 <param name="chemistry" value="v2"/>
184 </conditional>
185 <output name="report">
186 <assert_contents>
187 <has_line line="CITE-seq-Count Version: @TOOL_VERSION@"/>
188 <has_line line="Reads processed: 200"/>
189 <has_line line="Uncorrected cells: 0"/>
190 </assert_contents>
191 </output>
192 <output name="output_barcodes">
193 <assert_contents>
194 <has_line line="TAGAGGGAAGTCAAGC"/>
195 <has_line line="TACATATTCTTTACTG"/>
196 <has_n_lines n="4"/>
197 </assert_contents>
198 </output>
199 <output name="output_features">
200 <assert_contents>
201 <has_line line="test2-CGTACGTAGCCTAGC-CGTACGTAGCCTAGC"/>
202 <has_line line="test1-CGTAGCTCG-CGTAGCTCG"/>
203 <has_line line="unmapped"/>
204 <has_n_lines n="3"/>
205 </assert_contents>
206 </output>
207 <output name="output_matrix">
208 <assert_contents>
209 <has_line_matching expression="[1-2]\s+[1-4]\s+43"/>
210 <has_n_lines n="9"/>
211 </assert_contents>
212 </output>
213 <output name="output_barcodes_filtered">
214 <assert_contents>
215 <has_line line="TAGAGGGAAGTCAAGC"/>
216 <has_line line="TACATATTCTTTACTG"/>
217 <has_n_lines n="4"/>
218 </assert_contents>
219 </output>
220 <output name="output_features_filtered">
221 <assert_contents>
222 <has_line line="test2-CGTACGTAGCCTAGC-CGTACGTAGCCTAGC"/>
223 <has_line line="test1-CGTAGCTCG-CGTAGCTCG"/>
224 <has_line line="unmapped"/>
225 <has_n_lines n="3"/>
226 </assert_contents>
227 </output>
228 <output name="output_matrix_filtered">
229 <assert_contents>
230 <has_line_matching expression="[1-2]\s+[1-4]\s+36"/>
231 <has_n_lines n="9"/>
232 </assert_contents>
233 </output>
234 </test>
235 <test expect_num_outputs="8">
236 <!-- test 2 -->
237 <!-- change input style use dense no whitelist-->
238 <param name="tags" value="tags.csv"/>
239 <param name="expected_cells" value="2"/>
240 <conditional name="input_types">
241 <param name="use" value="list_paired" />
242 <param name="input_collection" >
243 <collection type="paired">
244 <element name="forward" value="correct_R1.fastq.gz" ftype="fastqsanger.gz" />
245 <element name="reverse" value="correct_R2.fastq.gz" ftype="fastqsanger.gz" />
246 </collection>
247 </param>
248 </conditional>
249 <conditional name="params" >
250 <param name="chemistry" value="v2"/>
251 </conditional>
252 <param name="dense" value="true"/>
253 <output name="report">
254 <assert_contents>
255 <has_line line="CITE-seq-Count Version: @TOOL_VERSION@"/>
256 <has_line line="Reads processed: 200"/>
257 <has_line line="Uncorrected cells: 0"/>
258 </assert_contents>
259 </output>
260 <output name="output_barcodes">
261 <assert_contents>
262 <has_line line="TAGAGGGAAGTCAAGC"/>
263 <has_line line="TACATATTCTTTACTG"/>
264 <has_n_lines n="2"/>
265 </assert_contents>
266 </output>
267 <output name="output_features">
268 <assert_contents>
269 <has_line line="test2-CGTACGTAGCCTAGC-CGTACGTAGCCTAGC"/>
270 <has_line line="test1-CGTAGCTCG-CGTAGCTCG"/>
271 <has_line line="unmapped"/>
272 <has_n_lines n="3"/>
273 </assert_contents>
274 </output>
275 <output name="output_matrix">
276 <assert_contents>
277 <has_line_matching expression="[1-2]\s+[1-2]\s+43"/>
278 <has_n_lines n="9"/>
279 </assert_contents>
280 </output>
281 <output name="output_barcodes_filtered">
282 <assert_contents>
283 <has_line line="TAGAGGGAAGTCAAGC"/>
284 <has_line line="TACATATTCTTTACTG"/>
285 <has_n_lines n="2"/>
286 </assert_contents>
287 </output>
288 <output name="output_features_filtered">
289 <assert_contents>
290 <has_line line="test2-CGTACGTAGCCTAGC-CGTACGTAGCCTAGC"/>
291 <has_line line="test1-CGTAGCTCG-CGTAGCTCG"/>
292 <has_line line="unmapped"/>
293 <has_n_lines n="3"/>
294 </assert_contents>
295 </output>
296 <output name="output_matrix_filtered">
297 <assert_contents>
298 <has_line_matching expression="[1-2]\s+[1-2]\s+36"/>
299 <has_n_lines n="9"/>
300 </assert_contents>
301 </output>
302 <output name="dense_output_matrix">
303 <assert_contents>
304 <has_line_matching expression="test2-CGTACGTAGCCTAGC-CGTACGTAGCCTAGC\s+2[79]\s+2[79]"/>
305 <has_line_matching expression="test1-CGTAGCTCG-CGTAGCTCG\s+[23][56]\s+[23][56]"/>
306 <has_line_matching expression="unmapped\s+2[17]\s+2[17]"/>
307 <has_n_lines n="4"/>
308 </assert_contents>
309 </output>
310 </test>
311 <test expect_num_outputs="7">
312 <!-- test 3 -->
313 <!-- custom chemistry max_error 5 -->
314 <param name="tags" value="tags.csv"/>
315 <param name="expected_cells" value="2"/>
316 <param name="whitelist" value="whitelist.txt"/>
317 <conditional name="input_types">
318 <param name="use" value="repeat"/>
319 <param name="input1" value="correct_R1.fastq.gz" ftype="fastqsanger.gz"/>
320 <param name="input2" value="correct_R2.fastq.gz" ftype="fastqsanger.gz"/>
321 </conditional>
322 <conditional name="params" >
323 <param name="chemistry" value="custom"/>
324 <param name="cell_barcode_first_base" value="1"/>
325 <param name="cell_barcode_last_base" value="16"/>
326 <param name="umi_first_base" value="17"/>
327 <param name="umi_last_base" value="26"/>
328 </conditional>
329 <param name="max_error" value="5"/>
330 <output name="report">
331 <assert_contents>
332 <has_line line="CITE-seq-Count Version: @TOOL_VERSION@"/>
333 <has_line line="Reads processed: 200"/>
334 <has_line line="Uncorrected cells: 0"/>
335 </assert_contents>
336 </output>
337 <output name="output_barcodes">
338 <assert_contents>
339 <has_line line="TAGAGGGAAGTCAAGC"/>
340 <has_line line="TACATATTCTTTACTG"/>
341 <has_n_lines n="4"/>
342 </assert_contents>
343 </output>
344 <output name="output_features">
345 <assert_contents>
346 <has_line line="test2-CGTACGTAGCCTAGC-CGTACGTAGCCTAGC"/>
347 <has_line line="test1-CGTAGCTCG-CGTAGCTCG"/>
348 <has_line line="unmapped"/>
349 <has_n_lines n="3"/>
350 </assert_contents>
351 </output>
352 <output name="output_matrix">
353 <assert_contents>
354 <has_line_matching expression="[1-2]\s+[1-4]\s+68"/>
355 <has_n_lines n="7"/>
356 </assert_contents>
357 </output>
358 <output name="output_barcodes_filtered">
359 <assert_contents>
360 <has_line line="TAGAGGGAAGTCAAGC"/>
361 <has_line line="TACATATTCTTTACTG"/>
362 <has_n_lines n="4"/>
363 </assert_contents>
364 </output>
365 <output name="output_features_filtered">
366 <assert_contents>
367 <has_line line="test2-CGTACGTAGCCTAGC-CGTACGTAGCCTAGC"/>
368 <has_line line="test1-CGTAGCTCG-CGTAGCTCG"/>
369 <has_line line="unmapped"/>
370 <has_n_lines n="3"/>
371 </assert_contents>
372 </output>
373 <output name="output_matrix_filtered">
374 <assert_contents>
375 <has_line_matching expression="[1-2]\s+[1-4]\s+52"/>
376 <has_n_lines n="7"/>
377 </assert_contents>
378 </output>
379 </test>
380 <test expect_num_outputs="7">
381 <!-- test 4 -->
382 <!-- incompatible whitelist -->
383 <param name="tags" value="tags.csv"/>
384 <param name="expected_cells" value="2"/>
385 <param name="whitelist" value="incompatible_whitelist.txt"/>
386 <conditional name="input_types">
387 <param name="use" value="repeat"/>
388 <param name="input1" value="correct_R1.fastq.gz" ftype="fastqsanger.gz"/>
389 <param name="input2" value="correct_R2.fastq.gz" ftype="fastqsanger.gz"/>
390 </conditional>
391 <conditional name="params" >
392 <param name="chemistry" value="v2"/>
393 </conditional>
394 <output name="report">
395 <assert_contents>
396 <has_line line="CITE-seq-Count Version: @TOOL_VERSION@"/>
397 <has_line line="Reads processed: 200"/>
398 <has_line line="Uncorrected cells: 0"/>
399 </assert_contents>
400 </output>
401 <output name="output_barcodes">
402 <assert_contents>
403 <has_line line="AAAAAAAAAAAAAAAA"/>
404 <has_line line="TTTTTTTTTTTTTTTT"/>
405 <has_n_lines n="2"/>
406 </assert_contents>
407 </output>
408 <output name="output_features">
409 <assert_contents>
410 <has_line line="test2-CGTACGTAGCCTAGC-CGTACGTAGCCTAGC"/>
411 <has_line line="test1-CGTAGCTCG-CGTAGCTCG"/>
412 <has_line line="unmapped"/>
413 <has_n_lines n="3"/>
414 </assert_contents>
415 </output>
416 <output name="output_matrix">
417 <assert_contents>
418 <has_n_lines n="3"/>
419 </assert_contents>
420 </output>
421 <output name="output_barcodes_filtered">
422 <assert_contents>
423 <has_line line="AAAAAAAAAAAAAAAA"/>
424 <has_line line="TTTTTTTTTTTTTTTT"/>
425 <has_n_lines n="2"/>
426 </assert_contents>
427 </output>
428 <output name="output_features_filtered">
429 <assert_contents>
430 <has_line line="test2-CGTACGTAGCCTAGC-CGTACGTAGCCTAGC"/>
431 <has_line line="test1-CGTAGCTCG-CGTAGCTCG"/>
432 <has_line line="unmapped"/>
433 <has_n_lines n="3"/>
434 </assert_contents>
435 </output>
436 <output name="output_matrix_filtered">
437 <assert_contents>
438 <has_n_lines n="3"/>
439 </assert_contents>
440 </output>
441 </test>
442 <test expect_num_outputs="7">
443 <!-- test 5 -->
444 <!-- umi_collapsing_dist 5 -->
445 <param name="tags" value="tags.csv"/>
446 <param name="expected_cells" value="2"/>
447 <param name="whitelist" value="whitelist.txt"/>
448 <conditional name="input_types">
449 <param name="use" value="repeat"/>
450 <param name="input1" value="correct_R1.fastq.gz" ftype="fastqsanger.gz"/>
451 <param name="input2" value="correct_R2.fastq.gz" ftype="fastqsanger.gz"/>
452 </conditional>
453 <conditional name="params" >
454 <param name="chemistry" value="v2"/>
455 </conditional>
456 <param name="umi_collapsing_dist" value="5"/>
457 <output name="report">
458 <assert_contents>
459 <has_line line="CITE-seq-Count Version: @TOOL_VERSION@"/>
460 <has_line line="Reads processed: 200"/>
461 <has_line line="Uncorrected cells: 0"/>
462 </assert_contents>
463 </output>
464 <output name="output_barcodes">
465 <assert_contents>
466 <has_line line="TAGAGGGAAGTCAAGC"/>
467 <has_line line="TACATATTCTTTACTG"/>
468 <has_n_lines n="4"/>
469 </assert_contents>
470 </output>
471 <output name="output_features">
472 <assert_contents>
473 <has_line line="test2-CGTACGTAGCCTAGC-CGTACGTAGCCTAGC"/>
474 <has_line line="test1-CGTAGCTCG-CGTAGCTCG"/>
475 <has_line line="unmapped"/>
476 <has_n_lines n="3"/>
477 </assert_contents>
478 </output>
479 <output name="output_matrix">
480 <assert_contents>
481 <has_line_matching expression="[1-2]\s+[1-4]\s+43"/>
482 <has_n_lines n="9"/>
483 </assert_contents>
484 </output>
485 <output name="output_barcodes_filtered">
486 <assert_contents>
487 <has_line line="TAGAGGGAAGTCAAGC"/>
488 <has_line line="TACATATTCTTTACTG"/>
489 <has_n_lines n="4"/>
490 </assert_contents>
491 </output>
492 <output name="output_features_filtered">
493 <assert_contents>
494 <has_line line="test2-CGTACGTAGCCTAGC-CGTACGTAGCCTAGC"/>
495 <has_line line="test1-CGTAGCTCG-CGTAGCTCG"/>
496 <has_line line="unmapped"/>
497 <has_n_lines n="3"/>
498 </assert_contents>
499 </output>
500 <output name="output_matrix_filtered">
501 <assert_contents>
502 <has_line_matching expression="[1-2]\s+[1-4]\s+10"/>
503 <has_n_lines n="9"/>
504 </assert_contents>
505 </output>
506 </test>
507 <test expect_num_outputs="7">
508 <!-- test 6 -->
509 <!-- multiple fastqs -->
510 <param name="tags" value="tags.csv"/>
511 <param name="expected_cells" value="2"/>
512 <param name="whitelist" value="whitelist.txt"/>
513 <conditional name="input_types">
514 <param name="use" value="repeat"/>
515 <param name="input1" value="correct_R1.fastq.gz,correct_R1.fastq.gz" ftype="fastqsanger.gz"/>
516 <param name="input2" value="correct_R2.fastq.gz,correct_R2.fastq.gz" ftype="fastqsanger.gz"/>
517 </conditional>
518 <conditional name="params" >
519 <param name="chemistry" value="v2"/>
520 </conditional>
521 <output name="report">
522 <assert_contents>
523 <has_line line="CITE-seq-Count Version: @TOOL_VERSION@"/>
524 <has_line line="Reads processed: 400"/>
525 <has_line line="Uncorrected cells: 0"/>
526 </assert_contents>
527 </output>
528 <output name="output_barcodes">
529 <assert_contents>
530 <has_line line="TAGAGGGAAGTCAAGC"/>
531 <has_line line="TACATATTCTTTACTG"/>
532 <has_n_lines n="4"/>
533 </assert_contents>
534 </output>
535 <output name="output_features">
536 <assert_contents>
537 <has_line line="test2-CGTACGTAGCCTAGC-CGTACGTAGCCTAGC"/>
538 <has_line line="test1-CGTAGCTCG-CGTAGCTCG"/>
539 <has_line line="unmapped"/>
540 <has_n_lines n="3"/>
541 </assert_contents>
542 </output>
543 <output name="output_matrix">
544 <assert_contents>
545 <has_line_matching expression="[1-2]\s+[1-4]\s+86"/>
546 <has_n_lines n="9"/>
547 </assert_contents>
548 </output>
549 <output name="output_barcodes_filtered">
550 <assert_contents>
551 <has_line line="TAGAGGGAAGTCAAGC"/>
552 <has_line line="TACATATTCTTTACTG"/>
553 <has_n_lines n="4"/>
554 </assert_contents>
555 </output>
556 <output name="output_features_filtered">
557 <assert_contents>
558 <has_line line="test2-CGTACGTAGCCTAGC-CGTACGTAGCCTAGC"/>
559 <has_line line="test1-CGTAGCTCG-CGTAGCTCG"/>
560 <has_line line="unmapped"/>
561 <has_n_lines n="3"/>
562 </assert_contents>
563 </output>
564 <output name="output_matrix_filtered">
565 <assert_contents>
566 <has_line_matching expression="[1-2]\s+[1-4]\s+36"/>
567 <has_n_lines n="9"/>
568 </assert_contents>
569 </output>
570 </test>
571 </tests>
572 <help><![CDATA[
573 CITE-seq-Count is a program that outputs UMI and read counts from raw fastq CITE-seq or hashing data.
574
575 Here is an image explaining the expected structure of read1 and read2 from the sequencer:
576
577 .. image:: read_structure.png
578 :alt: Read1: --barcode--|--umi--|TTTT and Read2: --CMO/HTO--|AAA
579
580 ]]></help>
581 <citations>
582 <citation type="doi">10.5281/zenodo.2585469</citation>
583 </citations>
584 </tool>