{
"$schema": "http://json-schema.org/draft-07/schema",
"title": "trimgalore",
"description": "A wrapper tool around Cutadapt and FastQC to consistently apply quality and adapter trimming to FastQ files. \n",
"type": "object",
"definitions": {

    
    
    "input" : {
    "title": "Input",
    "type": "object",
    "description": "No description",
    "properties": {
    
        
                "input": {
                "type":
                "string",
                "description": "Type: List of `file`, required, example: `sample1_r1.fq;sample1_r2.fq;sample2_r1.fq;sample2_r2.fq`, multiple_sep: `\";\"`. Input files",
                "help_text": "Type: List of `file`, required, example: `sample1_r1.fq;sample1_r2.fq;sample2_r1.fq;sample2_r2.fq`, multiple_sep: `\";\"`. Input files. Note that paired-end files need to be supplied in a pairwise fashion, e.g. file1_1.fq file1_2.fq SRR2_1.fq.gz SRR2_2.fq.gz"
            
            }
    

}
},
    
    
    "trimming options" : {
    "title": "Trimming options",
    "type": "object",
    "description": "No description",
    "properties": {
    
        
                "quality": {
                "type":
                "integer",
                "description": "Type: `integer`, example: `20`. Trim low-quality ends (below the specified Phred score) from reads in addition to adapter removal",
                "help_text": "Type: `integer`, example: `20`. Trim low-quality ends (below the specified Phred score) from reads in addition to adapter removal. For RRBS samples, quality trimming will be performed first, and adapter trimming is carried in a second round. Other files are quality and adapter trimmed in a single pass. The algorithm is the same as the one used by BWA (Subtract INT from all qualities; compute partial sums from all indices to the end of the sequence; cut sequence at the index at which the sum is minimal)."
            
            }
    

        ,
                "phred33": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Instructs Cutadapt to use ASCII+33 quality scores as Phred scores (Sanger/Illumina 1",
                "help_text": "Type: `boolean_true`, default: `false`. Instructs Cutadapt to use ASCII+33 quality scores as Phred scores (Sanger/Illumina 1.9+ encoding) for quality trimming."
            ,
                "default":false
            }
    

        ,
                "phred64": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Instructs Cutadapt to use ASCII+64 quality scores as Phred scores (Illumina 1",
                "help_text": "Type: `boolean_true`, default: `false`. Instructs Cutadapt to use ASCII+64 quality scores as Phred scores (Illumina 1.5 encoding) for quality trimming."
            ,
                "default":false
            }
    

        ,
                "fastqc": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Run FastQC in the default mode on the FastQ file once trimming is complete",
                "help_text": "Type: `boolean_true`, default: `false`. Run FastQC in the default mode on the FastQ file once trimming is complete."
            ,
                "default":false
            }
    

        ,
                "fastqc_args": {
                "type":
                "string",
                "description": "Type: `string`, example: `--nogroup --noextract`. Passes extra arguments (excluding files) to FastQC",
                "help_text": "Type: `string`, example: `--nogroup --noextract`. Passes extra arguments (excluding files) to FastQC. If more than one argument is to be passed to FastQC they must be in the form \"arg1 arg2 ...\". Passing extra arguments will automatically invoke FastQC, so --fastqc does not have to be specified separately."
            
            }
    

        ,
                "fastqc_contaminants": {
                "type":
                "string",
                "description": "Type: `file`, example: `contaminants.txt`. Specifies a non-default file which contains the list of contaminants for FastQC to screen overrepresented sequences against",
                "help_text": "Type: `file`, example: `contaminants.txt`. Specifies a non-default file which contains the list of contaminants for FastQC to screen overrepresented sequences against. The file must contain sets of named contaminants in the form name[tab]sequence. Lines prefixed with a hash will be ignored."
            
            }
    

        ,
                "fastqc_adapters": {
                "type":
                "string",
                "description": "Type: `file`, example: `adapters.txt`. Specifies a non-default file which contains the list of adapter sequences which which FasstQC will explicity search against the library",
                "help_text": "Type: `file`, example: `adapters.txt`. Specifies a non-default file which contains the list of adapter sequences which which FasstQC will explicity search against the library. The file must contain sets of named adapters in the form name[tab]sequence.  Lines prefixed with a hash will be ignored."
            
            }
    

        ,
                "fastqc_limits": {
                "type":
                "string",
                "description": "Type: `file`, example: `limits.txt`. Specifies a non-default file which contains a set of criteria which FastQC will use to determine the warn/error limits for the various modules",
                "help_text": "Type: `file`, example: `limits.txt`. Specifies a non-default file which contains a set of criteria which FastQC will use to determine the warn/error limits for the various modules. This file can also be used to selectively remove some modules from the output all together.  The format needs to mirror the default limits.txt file found in the Configuration folder."
            
            }
    

        ,
                "adapter": {
                "type":
                "string",
                "description": "Type: `string`, example: `AGCTCCCG`. Adapter sequence to be trimmed",
                "help_text": "Type: `string`, example: `AGCTCCCG`. Adapter sequence to be trimmed. If not specified explicitly, Trim Galore will try to auto-detect whether the Illumina universal, Nextera transposase or Illumina small RNA adapter sequence was used. A single base may also be given as e.g. -a A{10}, to be expanded to -a AAAAAAAAAA. \nAt a special request, multiple adapters can also be specified like so: \n  -a  \" AGCTCCCG -a TTTCATTATAT -a TTTATTCGGATTTAT\" -a2 \" AGCTAGCG -a TCTCTTATAT -a TTTCGGATTTAT\", \nor so:\n  -a \"file:../multiple_adapters.fa\" -a2 \"file:../different_adapters.fa\"\nPotentially in conjucntion with the parameter \"-n 3\" to trim all adapters. \n"
            
            }
    

        ,
                "adapter2": {
                "type":
                "string",
                "description": "Type: `string`, example: `AGCTCCCG`. Optional adapter sequence to be trimmed off read 2 of paired-end files",
                "help_text": "Type: `string`, example: `AGCTCCCG`. Optional adapter sequence to be trimmed off read 2 of paired-end files. This option requires \u0027--paired\u0027 to be specified as well. If the libraries to be trimmed are smallRNA then a2 will be set to the Illumina small RNA 5\u0027 adapter automatically (GATCGTCGGACT). A single base may also be given as e.g. -a2 A{10}, to be expanded to -a2 AAAAAAAAAA."
            
            }
    

        ,
                "illumina": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Adapter sequence to be trimmed is the first 13bp of the Illumina universal adapter \u0027AGATCGGAAGAGC\u0027 instead of the default auto-detection of adapter sequence",
                "help_text": "Type: `boolean_true`, default: `false`. Adapter sequence to be trimmed is the first 13bp of the Illumina universal adapter \u0027AGATCGGAAGAGC\u0027 instead of the default auto-detection of adapter sequence."
            ,
                "default":false
            }
    

        ,
                "stranded_illumina": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Adapter sequence to be trimmed is the first 13bp of the Illumina stranded mRNA or Total RNA adapter \u0027ACTGTCTCTTATA\u0027 instead of the default auto-detection of adapter sequence",
                "help_text": "Type: `boolean_true`, default: `false`. Adapter sequence to be trimmed is the first 13bp of the Illumina stranded mRNA or Total RNA adapter \u0027ACTGTCTCTTATA\u0027 instead of the default auto-detection of adapter sequence."
            ,
                "default":false
            }
    

        ,
                "nextera": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Adapter sequence to be trimmed is the first 12bp of the Nextera adapter \u0027CTGTCTCTTATA\u0027 instead of the default auto-detection of adapter sequence",
                "help_text": "Type: `boolean_true`, default: `false`. Adapter sequence to be trimmed is the first 12bp of the Nextera adapter \u0027CTGTCTCTTATA\u0027 instead of the default auto-detection of adapter sequence."
            ,
                "default":false
            }
    

        ,
                "small_rna": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Adapter sequence to be trimmed is the first 12bp of the Illumina Small RNA 3\u0027 Adapter \u0027TGGAATTCTCGG\u0027 instead of the default auto-detection of adapter sequence",
                "help_text": "Type: `boolean_true`, default: `false`. Adapter sequence to be trimmed is the first 12bp of the Illumina Small RNA 3\u0027 Adapter \u0027TGGAATTCTCGG\u0027 instead of the default auto-detection of adapter sequence. Selecting to trim smallRNA adapters will also lower the --length value to 18bp. If the smallRNA libraries are paired-end then a automatically (GATCGTCGGACT) unless -a 2 had been defined explicitly."
            ,
                "default":false
            }
    

        ,
                "consider_already_trimmed": {
                "type":
                "integer",
                "description": "Type: `integer`. During adapter auto-detection, the limit set by this argument allows the user to set a threshold up to which the file is considered already adapter-trimmed",
                "help_text": "Type: `integer`. During adapter auto-detection, the limit set by this argument allows the user to set a threshold up to which the file is considered already adapter-trimmed. If no adapter sequence exceeds this threshold, no additional adapter trimming will be performed (technically, the adapter is set to \u0027-a X\u0027). Quality trimming is still performed as usual."
            
            }
    

        ,
                "max_length": {
                "type":
                "integer",
                "description": "Type: `integer`. Discard reads that are longer than the specified value after trimming",
                "help_text": "Type: `integer`. Discard reads that are longer than the specified value after trimming. This is only advised for smallRNA sequencing to remove non-small RNA sequences."
            
            }
    

        ,
                "stringency": {
                "type":
                "integer",
                "description": "Type: `integer`, example: `1`. Overlap with adapter sequence required to trim a sequence",
                "help_text": "Type: `integer`, example: `1`. Overlap with adapter sequence required to trim a sequence. Defaults to a very stringent setting of 1, i.e. even a single bp of overlapping sequence will be trimmed off from the 3\u0027 end of any read."
            
            }
    

        ,
                "error_rate": {
                "type":
                "number",
                "description": "Type: `double`, example: `0.1`. Maximum allowed error rate (no",
                "help_text": "Type: `double`, example: `0.1`. Maximum allowed error rate (no. of errors divided by the length of the matching region)"
            
            }
    

        ,
                "gzip": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Compress the output file with GZIP",
                "help_text": "Type: `boolean_true`, default: `false`. Compress the output file with GZIP. If the input files are GZIP-compressed the output files will automatically be GZIP compressed as well. As of v0.2.8 the compression will take place on the fly."
            ,
                "default":false
            }
    

        ,
                "dont_gzip": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Output files won\u0027t be compressed with GZIP",
                "help_text": "Type: `boolean_true`, default: `false`. Output files won\u0027t be compressed with GZIP. This option overrides --gzip."
            ,
                "default":false
            }
    

        ,
                "length": {
                "type":
                "integer",
                "description": "Type: `integer`, example: `20`. Discard reads that became shorter than the specified length because of either quality or adapter trimming",
                "help_text": "Type: `integer`, example: `20`. Discard reads that became shorter than the specified length because of either quality or adapter trimming. A value of \u00270\u0027 effectively disables this behaviour. For paired-end files, both reads of a read-pair need to be longer than the specified length to be printed out to validated paired-end files. If only one read became too short there is the possibility of keeping such unpaired single-end reads using the --retain_unpaired option."
            
            }
    

        ,
                "max_n": {
                "type":
                "integer",
                "description": "Type: `integer`. The total number of Ns a read may contain before it will be removed altogether",
                "help_text": "Type: `integer`. The total number of Ns a read may contain before it will be removed altogether.In a paired-end setting, either read exceeding this limit will result in the entire pair being removed from the trimmed output files. If COUNT is a number between 0 and 1, it is interpreted as a fraction of the read length."
            
            }
    

        ,
                "trim_n": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Removes Ns from either side of the read",
                "help_text": "Type: `boolean_true`, default: `false`. Removes Ns from either side of the read. This option does currently not work in RRBS mode."
            ,
                "default":false
            }
    

        ,
                "no_report_file": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. If specified no report file will be generated",
                "help_text": "Type: `boolean_true`, default: `false`. If specified no report file will be generated."
            ,
                "default":false
            }
    

        ,
                "suppress_warn": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. If specified any output to STDOUT or STDERR will be suppressed",
                "help_text": "Type: `boolean_true`, default: `false`. If specified any output to STDOUT or STDERR will be suppressed."
            ,
                "default":false
            }
    

        ,
                "clip_R1": {
                "type":
                "integer",
                "description": "Type: `integer`. Instructs TrimGalore to remove given number of bp from the 5\u0027 end of read 1 (or single-end reads)",
                "help_text": "Type: `integer`. Instructs TrimGalore to remove given number of bp from the 5\u0027 end of read 1 (or single-end reads). This may be useful if the qualities were very poor, or if there is some sort of unwanted bias at the 5\u0027 end."
            
            }
    

        ,
                "clip_R2": {
                "type":
                "integer",
                "description": "Type: `integer`. Instructs TrimGalore to remove given number bp from the 5\u0027 end of read 2 (paired-end reads only)",
                "help_text": "Type: `integer`. Instructs TrimGalore to remove given number bp from the 5\u0027 end of read 2 (paired-end reads only). This may be useful if the qualities were very poor, or if there is some sort of unwanted bias at the 5\u0027 end. For paired-end BS-Seq, it is recommended to remove the first few bp because the end-repair reaction may introduce a bias towards low methylation."
            
            }
    

        ,
                "three_prime_clip_R1": {
                "type":
                "integer",
                "description": "Type: `integer`. Instructs Trim Galore to remove spacified number of bp from the 3\u0027 end of read 1 (or single-end reads) AFTER adapter/quality trimming has been performed",
                "help_text": "Type: `integer`. Instructs Trim Galore to remove spacified number of bp from the 3\u0027 end of read 1 (or single-end reads) AFTER adapter/quality trimming has been performed. This may remove some  bias from the 3\u0027 end that is not directly related to adapter sequence or basecall quality."
            
            }
    

        ,
                "three_prime_clip_R2": {
                "type":
                "integer",
                "description": "Type: `integer`. Instructs Trim Galore to remove \u003cint\u003e bp from the 3\u0027 end of read 2 AFTER adapter/quality trimming has been performed",
                "help_text": "Type: `integer`. Instructs Trim Galore to remove \u003cint\u003e bp from the 3\u0027 end of read 2 AFTER adapter/quality trimming has been performed. This may remove some unwanted bias from the 3\u0027 end that is not directly related to adapter sequence or basecall quality."
            
            }
    

        ,
                "nextseq": {
                "type":
                "integer",
                "description": "Type: `integer`. This enables the option \u0027--nextseq-trim=3\u0027CUTOFF\u0027 within Cutadapt, which will set a quality cutoff (that is normally given with -q instead), but qualities of G bases are ignored",
                "help_text": "Type: `integer`. This enables the option \u0027--nextseq-trim=3\u0027CUTOFF\u0027 within Cutadapt, which will set a quality cutoff (that is normally given with -q instead), but qualities of G bases are ignored. This trimming is in common for the NextSeq- and NovaSeq-platforms, where basecalls without any signal are called as high-quality G bases. This is mutually exlusive with \u0027-q INT\u0027."
            
            }
    

        ,
                "basename": {
                "type":
                "string",
                "description": "Type: `string`. Use specified name (PREFERRED_NAME) as the basename for output files, instead of deriving the filenames from the input files",
                "help_text": "Type: `string`. Use specified name (PREFERRED_NAME) as the basename for output files, instead of deriving the filenames from the input files. Single-end data would be called PREFERRED_NAME_trimmed.fq(.gz), or PREFERRED_NAME_val_1.fq(.gz) and PREFERRED_NAME_val_2.fq(.gz) for paired-end data. --basename only works when 1 file (single-end) or 2 files (paired-end) are specified, but not for longer lists."
            
            }
    

}
},
    
    
    "specific trimming options without adapter/quality trimming" : {
    "title": "Specific trimming options without adapter/quality trimming",
    "type": "object",
    "description": "No description",
    "properties": {
    
        
                "hardtrim5": {
                "type":
                "integer",
                "description": "Type: `integer`. Instead of performing adapter-/quality trimming, this option will simply hard-trim sequences to \u003cint\u003e bp at the 5\u0027-end",
                "help_text": "Type: `integer`. Instead of performing adapter-/quality trimming, this option will simply hard-trim sequences to \u003cint\u003e bp at the 5\u0027-end. Once hard-trimming of files is complete, Trim Galore will exit. Hard-trimmed output files will end in .\u003cint\u003e_5prime.fq(.gz)."
            
            }
    

        ,
                "hardtrim3": {
                "type":
                "integer",
                "description": "Type: `integer`. Instead of performing adapter-/quality trimming, this option will simply hard-trim sequences to \u003cint\u003e bp at the 3\u0027-end",
                "help_text": "Type: `integer`. Instead of performing adapter-/quality trimming, this option will simply hard-trim sequences to \u003cint\u003e bp at the 3\u0027-end. Once hard-trimming of files is complete, Trim Galore will exit. Hard-trimmed output files will end in .\u003cint\u003e_3prime.fq(.gz)."
            
            }
    

        ,
                "clock": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. In this mode, reads are trimmed in a specific way that is currently used for the Mouse Epigenetic Clock",
                "help_text": "Type: `boolean_true`, default: `false`. In this mode, reads are trimmed in a specific way that is currently used for the Mouse Epigenetic Clock."
            ,
                "default":false
            }
    

        ,
                "polyA": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. This is a new, still experimental, trimming mode to identify and remove poly-A tails from sequences",
                "help_text": "Type: `boolean_true`, default: `false`. This is a new, still experimental, trimming mode to identify and remove poly-A tails from sequences. When --polyA is selected, Trim Galore attempts to identify from the first supplied sample whether sequences contain more often a stretch of either \u0027AAAAAAAAAA\u0027 or \u0027TTTTTTTTTT\u0027. This determines if Read 1 of a paired-end end file, or single-end files, are trimmed for PolyA or PolyT. In case of paired-end sequencing, Read2 is trimmed for the complementary base from the start of the reads. The auto-detection uses a default of A{20} for Read1 (3\u0027-end trimming) and T{150} for Read2 (5\u0027-end trimming). These values may be changed manually using the options -a and -a2. In addition to trimming the sequences, white spaces are replaced with _ and it records in the read ID how many bases were trimmed so it can later be used to identify PolyA trimmed sequences. This is currently done by writing tags to both the start (\"32:A:\") and end (\"_PolyA:32\") of the reads. The poly-A trimming mode expects that sequences were both adapter and quality  before looking for Poly-A tails, and it is the user\u0027s responsibility to carry out an initial round of trimming."
            ,
                "default":false
            }
    

        ,
                "implicon": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. This is a special mode of operation for paired-end data, such as required for the IMPLICON method, where a UMI sequence is getting transferred from the start of Read 2 to the readID of both reads",
                "help_text": "Type: `boolean_true`, default: `false`. This is a special mode of operation for paired-end data, such as required for the IMPLICON method, where a UMI sequence is getting transferred from the start of Read 2 to the readID of both reads. Following this, Trim Galore will exit. In it\u0027s current implementation, the UMI carrying reads come in the following format\n  Read 1  5\u0027 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 3\u0027\n  Read 2  3\u0027 UUUUUUUUFFFFFFFFFFFFFFFFFFFFFFFFFFFF 5\u0027\nWhere UUUUUUUU is a random 8-mer unique molecular identifier (UMI) and FFFFFFF... is the actual fragment to be sequenced. The UMI of Read 2 (R2) is written into the read ID of both reads and removed from the actual sequence.\n"
            ,
                "default":false
            }
    

}
},
    
    
    "rrbs-specific options" : {
    "title": "RRBS-specific options",
    "type": "object",
    "description": "No description",
    "properties": {
    
        
                "rrbs": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Specifies that the input file was an MspI digested RRBS sample (recognition site is CCGG)",
                "help_text": "Type: `boolean_true`, default: `false`. Specifies that the input file was an MspI digested RRBS sample (recognition site is CCGG). Single-end or Read 1 sequences (paired-end) which were adapter-trimmed will have a further 2 bp removed from their 3\u0027 end. Sequences which were merely trimmed because of poor quality will not be shortened further. Read 2 of paired-end libraries will in addition have the first 2 bp removed from the 5\u0027 end (by setting \u0027--clip_r2 2\u0027). This is to avoid using artificial methylation calls from the filled-in cytosine positions close to the 3\u0027 MspI site in sequenced fragments. This option is not recommended for users of the Tecan Ovation RRBS Methyl-Seq with TrueMethyl oxBS 1-16 kit (see below)."
            ,
                "default":false
            }
    

        ,
                "non_directional": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Selecting this option for non-directional RRBS libraries will screen quality-trimmed sequences for \u0027CAA\u0027 or \u0027CGA\u0027 at the start of the read and, if found, removes the first two basepairs",
                "help_text": "Type: `boolean_true`, default: `false`. Selecting this option for non-directional RRBS libraries will screen quality-trimmed sequences for \u0027CAA\u0027 or \u0027CGA\u0027 at the start of the read and, if found, removes the first two basepairs. Like with the option \u0027--rrbs\u0027 this avoids using cytosine positions that were filled-in during the end-repair step. \u0027--non_directional\u0027 requires \u0027--rrbs\u0027 to be specified as well. Note that this option does not set \u0027--clip_r2 2\u0027 in paired-end mode."
            ,
                "default":false
            }
    

        ,
                "keep": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. Keep the quality trimmed intermediate file",
                "help_text": "Type: `boolean_true`, default: `false`. Keep the quality trimmed intermediate file."
            ,
                "default":false
            }
    

}
},
    
    
    "paired-end specific options" : {
    "title": "Paired-end specific options",
    "type": "object",
    "description": "No description",
    "properties": {
    
        
                "paired": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. This option performs length trimming of quality/adapter/RRBS trimmed reads for paired-end files",
                "help_text": "Type: `boolean_true`, default: `false`. This option performs length trimming of quality/adapter/RRBS trimmed reads for paired-end files. To pass the validation test, both sequences of a sequence pair are required to have a certain minimum length which is governed by the option --length (see above). If only one read passes this length threshold the other read can be rescued (see option --retain_unpaired). Using this option lets you discard too short read pairs without disturbing the sequence-by-sequence order of FastQ files which is required by many aligners. Trim Galore expects paired-end files to be supplied in a pairwise fashion, e.g. file1_1.fq file1_2.fq SRR2_1.fq.gz SRR2_2.fq.gz ... ."
            ,
                "default":false
            }
    

        ,
                "retain_unpaired": {
                "type":
                "boolean",
                "description": "Type: `boolean_true`, default: `false`. If only one of the two paired-end reads became too short, the longer read will be written to either \u0027",
                "help_text": "Type: `boolean_true`, default: `false`. If only one of the two paired-end reads became too short, the longer read will be written to either \u0027.unpaired_1.fq\u0027 or \u0027.unpaired_2.fq\u0027 output files. The length cutoff for unpaired single-end reads is governed by the parameters -r1/--length_1 and -r2/--length_2."
            ,
                "default":false
            }
    

        ,
                "length_1": {
                "type":
                "integer",
                "description": "Type: `integer`, example: `35`. Unpaired single-end read length cutoff needed for read 1 to be written to \u0027",
                "help_text": "Type: `integer`, example: `35`. Unpaired single-end read length cutoff needed for read 1 to be written to \u0027.unpaired_1.fq\u0027 output file. These reads may be mapped in single-end mode."
            
            }
    

        ,
                "length_2": {
                "type":
                "integer",
                "description": "Type: `integer`, example: `35`. Unpaired single-end read length cutoff needed for read 2 to be written to \u0027",
                "help_text": "Type: `integer`, example: `35`. Unpaired single-end read length cutoff needed for read 2 to be written to \u0027.unpaired_2.fq\u0027 output file. These reads may be mapped in single-end mode."
            
            }
    

}
},
    
    
    "output" : {
    "title": "Output",
    "type": "object",
    "description": "No description",
    "properties": {
    
        
                "output_dir": {
                "type":
                "string",
                "description": "Type: `file`, required, default: `$id.$key.output_dir.output_dir`. If specified all output will be written to this directory instead of the current directory",
                "help_text": "Type: `file`, required, default: `$id.$key.output_dir.output_dir`. If specified all output will be written to this directory instead of the current directory."
            ,
                "default":"$id.$key.output_dir.output_dir"
            }
    

        ,
                "trimmed_r1": {
                "type":
                "string",
                "description": "Type: `file`, default: `$id.$key.trimmed_r1.fastq`, example: `read_1.fastq`. Output file for read 1",
                "help_text": "Type: `file`, default: `$id.$key.trimmed_r1.fastq`, example: `read_1.fastq`. Output file for read 1. Only works when 1 file (single-end) or 2 files (paired-end) are specified, but not for longer lists."
            ,
                "default":"$id.$key.trimmed_r1.fastq"
            }
    

        ,
                "trimmed_r2": {
                "type":
                "string",
                "description": "Type: `file`, default: `$id.$key.trimmed_r2.fastq`, example: `read_2.fastq`. Output file for read 2",
                "help_text": "Type: `file`, default: `$id.$key.trimmed_r2.fastq`, example: `read_2.fastq`. Output file for read 2. Only works when 1 file (single-end) or 2 files (paired-end) are specified, but not for longer lists."
            ,
                "default":"$id.$key.trimmed_r2.fastq"
            }
    

        ,
                "trimming_report_r1": {
                "type":
                "string",
                "description": "Type: `file`, default: `$id.$key.trimming_report_r1.txt`, example: `read_1.trimming_report.txt`. Trimming report for read 1",
                "help_text": "Type: `file`, default: `$id.$key.trimming_report_r1.txt`, example: `read_1.trimming_report.txt`. Trimming report for read 1. Only works when 1 file (single-end) or 2 files (paired-end) are specified, but not for longer lists."
            ,
                "default":"$id.$key.trimming_report_r1.txt"
            }
    

        ,
                "trimming_report_r2": {
                "type":
                "string",
                "description": "Type: `file`, default: `$id.$key.trimming_report_r2.txt`, example: `read_2.trimming_report.txt`. Trimming report for read 1",
                "help_text": "Type: `file`, default: `$id.$key.trimming_report_r2.txt`, example: `read_2.trimming_report.txt`. Trimming report for read 1. Only works when 1 file (single-end) or 2 files (paired-end) are specified, but not for longer lists."
            ,
                "default":"$id.$key.trimming_report_r2.txt"
            }
    

        ,
                "trimmed_fastqc_html_1": {
                "type":
                "string",
                "description": "Type: `file`, default: `$id.$key.trimmed_fastqc_html_1.html`, example: `read_1.fastqc.html`. FastQC report for trimmed (single-end) reads (or read 1 for paired-end)",
                "help_text": "Type: `file`, default: `$id.$key.trimmed_fastqc_html_1.html`, example: `read_1.fastqc.html`. FastQC report for trimmed (single-end) reads (or read 1 for paired-end). Only works when 1 file (single-end) or 2 files (paired-end) are specified, but not for longer lists."
            ,
                "default":"$id.$key.trimmed_fastqc_html_1.html"
            }
    

        ,
                "trimmed_fastqc_html_2": {
                "type":
                "string",
                "description": "Type: `file`, default: `$id.$key.trimmed_fastqc_html_2.html`, example: `read_2.fastqc.html`. FastQC report for trimmed reads (read2 for paired-end)",
                "help_text": "Type: `file`, default: `$id.$key.trimmed_fastqc_html_2.html`, example: `read_2.fastqc.html`. FastQC report for trimmed reads (read2 for paired-end). Only works when 1 file (single-end) or 2 files (paired-end) are specified, but not for longer lists."
            ,
                "default":"$id.$key.trimmed_fastqc_html_2.html"
            }
    

        ,
                "trimmed_fastqc_zip_1": {
                "type":
                "string",
                "description": "Type: `file`, default: `$id.$key.trimmed_fastqc_zip_1.zip`, example: `read_1.fastqc.zip`. FastQC results for trimmed (single-end) reads (or read 1 for paired-end)",
                "help_text": "Type: `file`, default: `$id.$key.trimmed_fastqc_zip_1.zip`, example: `read_1.fastqc.zip`. FastQC results for trimmed (single-end) reads (or read 1 for paired-end). Only works when 1 file (single-end) or 2 files (paired-end) are specified, but not for longer lists."
            ,
                "default":"$id.$key.trimmed_fastqc_zip_1.zip"
            }
    

        ,
                "trimmed_fastqc_zip_2": {
                "type":
                "string",
                "description": "Type: `file`, default: `$id.$key.trimmed_fastqc_zip_2.zip`, example: `read_2.fastqc.zip`. FastQC results for trimmed reads (read2 for paired-end)",
                "help_text": "Type: `file`, default: `$id.$key.trimmed_fastqc_zip_2.zip`, example: `read_2.fastqc.zip`. FastQC results for trimmed reads (read2 for paired-end). Only works when 1 file (single-end) or 2 files (paired-end) are specified, but not for longer lists."
            ,
                "default":"$id.$key.trimmed_fastqc_zip_2.zip"
            }
    

        ,
                "unpaired_r1": {
                "type":
                "string",
                "description": "Type: `file`, default: `$id.$key.unpaired_r1.fastq`, example: `unpaired_read_1.fastq`. Output file for unpired read 1",
                "help_text": "Type: `file`, default: `$id.$key.unpaired_r1.fastq`, example: `unpaired_read_1.fastq`. Output file for unpired read 1. Only works when 1 file (single-end) or 2 files (paired-end) are specified, but not for longer lists."
            ,
                "default":"$id.$key.unpaired_r1.fastq"
            }
    

        ,
                "unpaired_r2": {
                "type":
                "string",
                "description": "Type: `file`, default: `$id.$key.unpaired_r2.fastq`, example: `unpaired_read_2.fastq`. Output file for unpaired read 2",
                "help_text": "Type: `file`, default: `$id.$key.unpaired_r2.fastq`, example: `unpaired_read_2.fastq`. Output file for unpaired read 2. Only works when 1 file (single-end) or 2 files (paired-end) are specified, but not for longer lists."
            ,
                "default":"$id.$key.unpaired_r2.fastq"
            }
    

}
},
    
    
    "nextflow input-output arguments" : {
    "title": "Nextflow input-output arguments",
    "type": "object",
    "description": "Input/output parameters for Nextflow itself. Please note that both publishDir and publish_dir are supported but at least one has to be configured.",
    "properties": {
    
        
                "publish_dir": {
                "type":
                "string",
                "description": "Type: `string`, required, example: `output/`. Path to an output directory",
                "help_text": "Type: `string`, required, example: `output/`. Path to an output directory."
            
            }
    

        ,
                "param_list": {
                "type":
                "string",
                "description": "Type: `string`, example: `my_params.yaml`. Allows inputting multiple parameter sets to initialise a Nextflow channel",
                "help_text": "Type: `string`, example: `my_params.yaml`. Allows inputting multiple parameter sets to initialise a Nextflow channel. A `param_list` can either be a list of maps, a csv file, a json file, a yaml file, or simply a yaml blob.\n\n* A list of maps (as-is) where the keys of each map corresponds to the arguments of the pipeline. Example: in a `nextflow.config` file: `param_list: [ [\u0027id\u0027: \u0027foo\u0027, \u0027input\u0027: \u0027foo.txt\u0027], [\u0027id\u0027: \u0027bar\u0027, \u0027input\u0027: \u0027bar.txt\u0027] ]`.\n* A csv file should have column names which correspond to the different arguments of this pipeline. Example: `--param_list data.csv` with columns `id,input`.\n* A json or a yaml file should be a list of maps, each of which has keys corresponding to the arguments of the pipeline. Example: `--param_list data.json` with contents `[ {\u0027id\u0027: \u0027foo\u0027, \u0027input\u0027: \u0027foo.txt\u0027}, {\u0027id\u0027: \u0027bar\u0027, \u0027input\u0027: \u0027bar.txt\u0027} ]`.\n* A yaml blob can also be passed directly as a string. Example: `--param_list \"[ {\u0027id\u0027: \u0027foo\u0027, \u0027input\u0027: \u0027foo.txt\u0027}, {\u0027id\u0027: \u0027bar\u0027, \u0027input\u0027: \u0027bar.txt\u0027} ]\"`.\n\nWhen passing a csv, json or yaml file, relative path names are relativized to the location of the parameter file. No relativation is performed when `param_list` is a list of maps (as-is) or a yaml blob.",
                "hidden": true
            
            }
    

}
}
},
"allOf": [

    {
    "$ref": "#/definitions/input"
    },

    {
    "$ref": "#/definitions/trimming options"
    },

    {
    "$ref": "#/definitions/specific trimming options without adapter/quality trimming"
    },

    {
    "$ref": "#/definitions/rrbs-specific options"
    },

    {
    "$ref": "#/definitions/paired-end specific options"
    },

    {
    "$ref": "#/definitions/output"
    },

    {
    "$ref": "#/definitions/nextflow input-output arguments"
    }
]
}
