Mercurial > repos > gbcs-embl-heidelberg > je_demultiplex_illu
diff je-demultiplex-illu.xml @ 0:111ba1180318 draft
Initial upload
author | gbcs-embl-heidelberg |
---|---|
date | Wed, 25 Nov 2015 12:36:37 -0500 |
parents | |
children | 01fdc6d10660 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/je-demultiplex-illu.xml Wed Nov 25 12:36:37 2015 -0500 @@ -0,0 +1,428 @@ +<tool id="je_demultiplex_illu" name="Je-Demultiplex-Illu" version="1.0"> + <description>demultiplexes fastq files using Illumina Index file</description> + <macros> + <import>macros.xml</import> + </macros> + <stdio> + <exit_code range="1:" level="fatal" description="Tool exception" /> + </stdio> + <version_command>echo '1.0'</version_command> + <command interpreter="bash"> +<![CDATA[ + je demultiplex-illu + + ## Fastq inputs + @single_or_paired_illu_cmd@ + + @barcode_option_cmd@ + + #if str($INTERNAL_BARCODES_CON.INTERNAL_BARCODES) == 'true': + BPOS=${INTERNAL_BARCODES_CON.BPOS} + C=${INTERNAL_BARCODES_CON.CLIP_BARCODE} + #if str( $INTERNAL_BARCODES_CON.LEN ) != "": + BCLEN=$INTERNAL_BARCODES_CON.LEN + #end if + #else: + BPOS=NONE + C=false + #end if + + @common_options_cmd@ + + @demultiplexer_common_output_options_cmd@ + @demultiplexer_common_outputs_cmd@ +]]> + </command> + <configfiles> + <expand macro="barcode_config_file"/> + </configfiles> + <inputs> + <!-- single/paired - similar to macro 'single_or_paired_general' --> + <expand macro="single_or_paired_illu"> + <expand macro="demultiplex_illu_paired_end_options"/> + </expand> + <expand macro="barcode_option"/> + <conditional name="INTERNAL_BARCODES_CON"> + <param name="INTERNAL_BARCODES" type="select" + label="Do your reads contain Unique Molecular Identifiers(UMIs)"> + <option value="true">Yes</option> + <option value="false" selected="true">No</option> + </param> + <when value="true"> + <param name="BPOS" type="select" label="Barcode read position (BPOS)" help="where are the barcodes. + If not using paired-end it does not matter what you specify here."> + <option value="READ_1" selected="true">READ_1 (beginning of read from the first fastq file)</option> + <option value="READ_2">READ_2 (beginning of read from the second fastq file)</option> + <option value="BOTH">BOTH (beginning of both reads)</option> + </param> + <expand macro="barcode_len_option"/> + <expand macro="clip_barcode"/> + </when> + <when value="false"/> + </conditional> + + <expand macro="demultiplexer_common_options"/> + + <expand macro="common_options"/> + + <expand macro="demultiplexer_common_output_options"/> + + </inputs> + <outputs> + <expand macro="demultiplexer_common_outputs"/> + </outputs> + + <tests> + <test> + <!-- barcode at both ends, non-redundant --> + <param name="type" value="paired"/> + <param name="input_1" value="illu_file_1_sequence.txt" ftype="fastqsanger"/> + <param name="input_2" value="illu_file_2_sequence.txt" ftype="fastqsanger"/> + <param name="I1" value="illu_file_1_index.txt" ftype="fastqsanger"/> + <param name="I2_AVAILABLE" value="true"/> + <param name="I2" value="illu_file_2_index.txt" ftype="fastqsanger"/> + + <param name="INTERNAL_BARCODES" value="true"/> + <param name="barcode_list_type_con" value="file"/> + <param name="BARCODE_FILE" value="illu_dualindexing.txt" ftype="tabular"/> + <param name="LEN" value="8:8"/> + <param name="ZT" value="5:6"/> + <param name="BPOS" value="BOTH"/> + <param name="BM" value="BOTH"/> + <param name="BRED" value="false"/> + <param name="MM" value="3"/> + <param name="MMD" value="2"/> + <param name="Q" value="20"/> + <param name="DIAG" value="false"/> + <output name="METRICS_FILE_NAME" file="illu_summary_PE.txt" ftype="tabular" lines_diff="4"> + <discovered_dataset designation="unassigned_1" file="illu_unassigned_1_PE.txt" /> + <discovered_dataset designation="unassigned_2" file="illu_unassigned_2_PE.txt" /> + <discovered_dataset designation="emb681m5_GGACTCCTCTCTCTAT_2" file="emb681m5_GGACTCCTCTCTCTAT_2.txt"/> + <discovered_dataset designation="emb681m5_GGACTCCTCTCTCTAT_1" file="emb681m5_GGACTCCTCTCTCTAT_1.txt"/> + <discovered_dataset designation="emb681m4_TCCTGAGCCTCTCTAT_2" file="emb681m4_TCCTGAGCCTCTCTAT_2.txt"/> + <discovered_dataset designation="emb681m4_TCCTGAGCCTCTCTAT_1" file="emb681m4_TCCTGAGCCTCTCTAT_1.txt"/> + <discovered_dataset designation="emb681m1_TAAGGCGACTCTCTAT_2" file="emb681m1_TAAGGCGACTCTCTAT_2.txt"/> + <discovered_dataset designation="emb681m1_TAAGGCGACTCTCTAT_1" file="emb681m1_TAAGGCGACTCTCTAT_1.txt"/> + <discovered_dataset designation="emb6801m2_AGGCAGAATAGATCGC_2" file="emb6801m2_AGGCAGAATAGATCGC_2.txt"/> + <discovered_dataset designation="emb6801m2_AGGCAGAATAGATCGC_1" file="emb6801m2_AGGCAGAATAGATCGC_1.txt"/> + <discovered_dataset designation="emb6801m1_CGTACTAGTAGATCGC_2" file="emb6801m1_CGTACTAGTAGATCGC_2.txt"/> + <discovered_dataset designation="emb6801m1_CGTACTAGTAGATCGC_1" file="emb6801m1_CGTACTAGTAGATCGC_1.txt"/> + </output> + </test> + </tests> + + + <help> +<![CDATA[ +**What it does** + +Je demultiplex-illu: demultiplex fastq files using Illumina Index files, +with optional handling of Unique Molecular Identifiers for further use in 'markdupes' module +Input files are fastq files, and can be in gzip compressed format. + +Author: Charles Girardot (charles.girardot@embl.de). + +Wrapper by: Jelle Scholtalbers (jelle.scholtalbers@embl.de). + +------ + +**Know what you are doing** + +.. class:: warningmark + + You will want to read the `documentation`__. + + .. __: http://gbcs.embl.de/portal/Je + +------ + +**Parameter list** + +This is an exhaustive list of options:: + + FASTQ_FILE1=File + F1=File + + Input fastq file (optionally gzipped) for single end data, or first read in paired end + data. + + Required. + + FASTQ_FILE2=File + F2=File + + Input fastq file (optionally gzipped) for the second read of paired end data. + + Default value: null. + + INDEX_FILE1=File + I1=File + + Fastq file for index 1 (barcode) reads, optionally gzipped + + Required. + + INDEX_FILE2=File + I2=File + + Fastq file for index 2 (barcode) reads, optionally gzipped. + A INDEX_FILE1 MUST be provided when INDEX_FILE2 is given. This situation corresponds to + Illumina dual indexing. + + Default value: null. + + BARCODE_FILE=File + BF=File + + Barcode file describing sequence list and sample names. Tab-delimited file with 2 + columns, with the sample in col1 and the corresponding barcode in col2. + Simple barcode file format : 2 tab-delimited colums + If multiple barcode map to the same sample, either line can be duplicated e.g. + sample1 ATAT + sample1 GAGG + sample2 CCAA + sample2 TGTG + Or barcodes can be combined using the OR operator '|' i.e. the file above can be + re-written like + sample1 ATAT|GAGG + sample2 CCAA|TGTG + Finally, for the special situation of paired-end data in which barcodes differ at both + ends (ie BPOS=BOTH BRED=false BM=BOTH , see BRED option description), barcodes for read_1 + and read_2 can be distinguished using a ':' separator i.e. + sample1 ATAT:GAGG + sample2 CCAA:TGTG + This above syntax means that sample 1 is encoded with ATAT barcode at read_1 AND GAGG + barcode at read_2. Note that you can still combine barcodes using | e.g. + sample1 ATAT|GAGG:CCAA|TGTG + would mean that sample 1 is mapped by the combination of barcode: ATAT OR GAGG at read_1 + AND CCAA OR TGTG at read_2. + Extended barcode file format : 3 (single-end) or 4 (paired-end) tab-delimited colums + same as the simple barcode file format but the extra columns contains the file name(s) + to use to name output files. A unique extra column is expected for single-end while 2 + extra columns are expected for paired-end. In case, lines are duplicated (multiple + barcodesmapping the same sample), the same file name should be indicated in the third + (and fourth) column(s). + sample1 ATAT spl1_1.txt.gz spl1_2.txt.gz + sample1 GAGG spl1_1.txt.gz spl1_2.txt.gz + sample2 CCAA spl2_1.txt.gz spl2_2.txt.gz + Or + sample1 ATAT|GAGG:CCAA|TGTG spl1_1.txt.gz spl1_2.txt.gz + Ns in barcode sequence are allowed and are used to flag positions that should be ignored + in sample matching + i.e. they will be clipped off the read sequence (like in iCLIP protocol). + + Required. + + BARCODE_READ_POS=BarcodePosition + BPOS=BarcodePosition + + Indicates the location of additional barcodes present in the read(s). Setting this option + implies setting the LEN option. + Importantly, these additional barcodes must not encode sample identity information but + used for e.g. molecular barcoding (UMIs) or for any purpose other than sample identity encoding. + + Default value: BOTH. This option can be set to 'null' to clear the default value. + Possible values: {READ_1, READ_2, BOTH, NONE} + + BCLEN=String + LEN=String + + Length of the barcode sequences, optional. Taken from barcode file when not given. + In situations where BARCODE_READ_POS == BOTH AND REDUNDANT_BARCODES=false, two distinct + length can be provided using the syntax LEN=X:Z where X and Z are 2 integers representing + the barcode length for read_1 and read_2 respectively. + + Default value: null + + REDUNDANT_BARCODES=Boolean + BRED=Boolean + + This option only applies for paired-end data with *both* INDEX_FILE1 and INDEX_FILE2 + provided. + Indicates if both index barcodes encode redundant information i.e. if both barcodes are + supposed to be identical (or resolve to the same sample when a pool of barcodes is used + per sample). + When BRED=true, the STRICT option guides the sample lookup behavior When BRED=false, + barcodes are combined prior to sample lookup. + + Default value: true. This option can be set to 'null' to clear the default value. + Possible values: {true, false} + + STRICT=Boolean + S=Boolean + + For paired-end data and when two distinct barcodes/indices are used to encode samples, + this option tells if both barcodes should resolve to the same sample. + When true and if only one of the two reads has a barcode match, the read pair is + 'unassigned'. + When false and if only one of the two reads has a barcode match, the read pair is + assigned to the + corresponding sample + When reads resolve to different samples, the read pair is always 'unassigned'. + + Default value: false. This option can be set to 'null' to clear the default value. + Possible values: {true, false} + + MAX_MISMATCHES=String + MM=String + + Maximum mismatches for a barcode to be considered a match. In situations where both + barcodes are used for sample matching i.e. BPOS=BOTH BM=BOTH (or 2 INDEX_FILE given), two + distinct + values can be given here using the syntax MM=X:Z where X and Z are 2 integers to use for + read_1 and read_2 respectively. + MM=null is like MM=0 + + Default value: 1. This option can be set to 'null' to clear the default value. + + MIN_MISMATCH_DELTA=String + MMD=String + + Minimum difference between the number of mismatches against the best and the second best + barcode. When MMD is not respected, the read remains unassigned. + When two distinct barcodes are used for sample matching (dual encoding), two distinct + values can be given using the syntax MMD=X:Z where X and Z are 2 integers to use for + first (e.g. from read_1 or index_1) + MMD=null is like MMD=0 + + Default value: 1. This option can be set to 'null' to clear the default value. + + MIN_BASE_QUALITY=String + Q=String + + Minimum base quality during barcode matching: bases which quality is less than this + cutoff are always considered as a mismatch.When two distinct barcodes are used for sample + matching (dual encoding), two distinct values can be given using the syntax Q=X:Z where X + and Z are 2 integers to use for first (e.g. from read_1 or index_1) and second barcode + (e.g. from read_2 or index_2) respectively. + Q=null is like Q=0. + + Default value: 10. This option can be set to 'null' to clear the default value. + + XTRIMLEN=String + XT=String + + Optional extra number of base to be trimmed right after the barcode (only used if + CLIP_BARCODE=true). + When running paired-end, two distinct values can be given using the syntax XT=X:Z where X + and Z are 2 integers to use for read_1 and read_2 respectively. Note that even when + BPOS=READ_1 or BPOS=READ_2, a X:Y synthax can be given to trim the read w/o barcode as to + end up with reads of the same length (note that this can also be operated using ZT). If a + unique value is given, e.g. XT=1, while running paired-end the following rule applies: + (1) BPOS=READ_1 or BPOS=READ_2, no trim is applied at the read w/o barcode + (2) BPOS=BOTH, the value is used for both reads. + + Note that XT=null is like XT=0. + Default value: 0. This option can be set to 'null' to clear the default value. + + ZTRIMLEN=String + ZT=String + + Optional extra number of bases to be trimmed from the read end i.e. 3' end. + When running paired-end, two distinct values can be given here using the syntax ZT=X:Z + where X and Z are 2 integers to use for read_1 and read_2 respectively. Note that even + when BPOS=READ_1 or BPOS=READ_2, a X:Y synthax can be given to trim the read w/o barcode + as to end up with reads of the same length (note that this can also be operated using + XT). Note that if a single value is passed, the value always applies to both reads in + paired-end mode without further consideration. + ZT=null is like ZT=0. + + Default value: 0. This option can be set to 'null' to clear the default value. + + CLIP_BARCODE=Boolean + C=Boolean + + Clip barcode sequence from read sequence, as well as XTRIMLEN (and ZTRIMLEN) bases if + applicable, before writing to output file. + If false, reads are written without modification to output file. + Apply to both barcodes when BPOS=BOTH. + + Default value: true. This option can be set to 'null' to clear the default value. + Possible values: {true, false} + + ADD_BARCODE_TO_HEADER=Boolean + ADD=Boolean + + Add matched barcode at the end of the read header. Applies to both index when INDEX_FILE2 + is also provided. + First the sample encoding barcodes from I1 (and I2 when relevant) are added to the read + headers like + @D3FCO8P1:178:C1WLBACXX:7:1101:1836:1965 2:N:0:I1_BARCODE:I2_BARCODE + Then, if BPOS!=NONE, the additional barcodes (UMIs) clipped from the read(s) are added + to their own header, like + @D3FCO8P1:178:C1WLBACXX:7:1101:1836:1965 2:N:0:I1_BARCODE:I2_BARCODE:CLIPPED_SEQ_FROMREAD + + Default value: true. This option can be set to 'null' to clear the default value. + Possible values: {true, false} + + ENSURE_IDENTICAL_HEADER_NAMES=Boolean + SAME_HEADERS=Boolean + + Makes sure that headers of both reads of a pair are identical, using the following read + header pattern (for both reads of a pair): + @D3FCO8P1:178:C1WLBACXX:7:1101:1836:1965 I1_BARCODE:I2_BARCODE(:CLIPPED_SEQ_FROMREAD1:CLIPPED_SEQ_FROMREAD2) + This option only makes sense in paired end mode and ADD=true. Some (if not all) mappers + will indeed complain when the read headers are not identical. When molecular barcodes are + present in reads and the RCHAR is used, you will end with (problematic) read headers like + this: + HISEQ:44:C6KC0ANXX:5:1101:1491:1994:1:N:0:TAGAACAC:TGGAGTAG + HISEQ:44:C6KC0ANXX:5:1101:1491:1994:3:N:0:TAGAACAC:CGTTGTAT + SAME_HEADERS=true will instead genetates the following identical header for both reads: + HISEQ:44:C6KC0ANXX:5:1101:1491:1994:TAGAACAC:TGGAGTAG:CGTTGTAT + Note that we also clipped the useless '1:N:0' and '3:N:0' has they will also result in + generating different headers + Important: this option will force RCHAR=: UNLESS you specify RCHAR=null ; in which + case a space will be preserved ie: + HISEQ:44:C6KC0ANXX:5:1101:1491:1994 TAGAACAC:TGGAGTAG:CGTTGTAT + + Default value: true. This option can be set to 'null' to clear the default value. + Possible values: {true, false} + + READ_NAME_REPLACE_CHAR=String + RCHAR=String + + Replace spaces in read name/header using provided character. This is particularly handy + when you need to retain ADDed barcode in read name/header during mapping (everything + after space in read name is usually clipped in BAM files). For example, with RCHAR=':': + '@D3FCO8P1:178:C1WLBACXX:7:1101:1836:1965 2:N:0:' + becomes + '@D3FCO8P1:178:C1WLBACXX:7:1101:1836:1965:2:N:0:BARCODE' + Default value: null. + + QUALITY_FORMAT=FastqQualityFormat + V=FastqQualityFormat + + A value describing how the quality values are encoded in the fastq. Either 'Solexa' for + pre-pipeline 1.3 style scores (solexa scaling + 66), 'Illumina' for pipeline 1.3 and + above (phred scaling + 64) or 'Standard' for phred scaled scores with a character shift + of 33. If this value is not specified (or 'null' is given), the quality format will be + detected. + + Default value: Standard. This option can be set to 'null' to clear the default value. + Possible values: {Solexa, Illumina, Standard} + + KEEP_UNASSIGNED_READ=Boolean + UN=Boolean + + Should un-assigned reads be saved in files or simply ignored. File names are + automatically created or can be given using UF1 & UF2 options. + + Default value: true. This option can be set to 'null' to clear the default value. + Possible values: {true, false} + + BARCODE_DIAG_FILE=String + DIAG=String + + Name for a barcode match reporting file (not generated by default).Either a name (in + which case the file will be created in the output dir) or full path. This file will + contain a line per read pair with the barcode best matching the read subsequence or + 'null' when no match is found according to matching parameters ; and the final selected + sample. This file is useful for debugging or further processing in case both ends are + barcoded. + N.B: this file will have a size of about one of the fastq input files. + + Default value: null. +]]> + </help> + +</tool>