Merge branch 'dev' into motus
18
.github/workflows/ci.yml
vendored
|
@ -29,18 +29,18 @@ jobs:
|
||||||
- NXF_VER: ""
|
- NXF_VER: ""
|
||||||
NXF_EDGE: "1"
|
NXF_EDGE: "1"
|
||||||
parameters:
|
parameters:
|
||||||
- "--perform_longread_clip false"
|
- "--perform_longread_qc false"
|
||||||
- "--perform_shortread_clipmerge false"
|
- "--perform_shortread_qc false"
|
||||||
- "--shortread_clipmerge_tool fastp"
|
- "--shortread_qc_tool fastp"
|
||||||
- "--shortread_clipmerge_tool fastp --shortread_clipmerge_mergepairs --shortread_clipmerge_excludeunmerged"
|
- "--shortread_qc_tool fastp --shortread_qc_mergepairs --shortread_qc_excludeunmerged"
|
||||||
- "--shortread_clipmerge_tool fastp --shortread_clipmerge_mergepairs"
|
- "--shortread_qc_tool fastp --shortread_qc_mergepairs"
|
||||||
- "--shortread_clipmerge_tool adapterremoval"
|
- "--shortread_qc_tool adapterremoval"
|
||||||
- "--shortread_clipmerge_tool adapterremoval --shortread_clipmerge_mergepairs --shortread_clipmerge_excludeunmerged"
|
- "--shortread_qc_tool adapterremoval --shortread_qc_mergepairs --shortread_qc_excludeunmerged"
|
||||||
- "--shortread_clipmerge_tool adapterremoval --shortread_clipmerge_mergepairs"
|
- "--shortread_qc_tool adapterremoval --shortread_qc_mergepairs"
|
||||||
- "--shortread_complexityfilter_tool bbduk"
|
- "--shortread_complexityfilter_tool bbduk"
|
||||||
- "--shortread_complexityfilter_tool prinseqplusplus"
|
- "--shortread_complexityfilter_tool prinseqplusplus"
|
||||||
- "--perform_runmerging"
|
- "--perform_runmerging"
|
||||||
- "--perform_runmerging --shortread_clipmerge_mergepairs"
|
- "--perform_runmerging --shortread_qc_mergepairs"
|
||||||
- "--shortread_complexityfilter false --perform_shortread_hostremoval"
|
- "--shortread_complexityfilter false --perform_shortread_hostremoval"
|
||||||
# Test different profiles
|
# Test different profiles
|
||||||
profile: ["test", "test_motus"]
|
profile: ["test", "test_motus"]
|
||||||
|
|
|
@ -56,6 +56,8 @@
|
||||||
|
|
||||||
> Buchfink, Benjamin, Chao Xie, and Daniel H. Huson. 2015. “Fast and Sensitive Protein Alignment Using DIAMOND.” Nature Methods 12 (1): 59-60. doi: 10.1038/nmeth.3176.
|
> Buchfink, Benjamin, Chao Xie, and Daniel H. Huson. 2015. “Fast and Sensitive Protein Alignment Using DIAMOND.” Nature Methods 12 (1): 59-60. doi: 10.1038/nmeth.3176.
|
||||||
|
|
||||||
|
- [FILTLONG](https://github.com/rrwick/Filtlong)
|
||||||
|
|
||||||
## Software packaging/containerisation tools
|
## Software packaging/containerisation tools
|
||||||
|
|
||||||
- [Anaconda](https://anaconda.com)
|
- [Anaconda](https://anaconda.com)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# ![nf-core/taxprofiler](docs/images/nf-core-taxprofiler_logo_light.png#gh-light-mode-only) ![nf-core/taxprofiler](docs/images/nf-core-taxprofiler_logo_dark.png#gh-dark-mode-only)
|
# ![nf-core/taxprofiler](docs/images/nf-core-taxprofiler_logo_custom_light.png#gh-light-mode-only) ![nf-core/taxprofiler](docs/images/nf-core-taxprofiler_logo_custom_dark.png#gh-dark-mode-only)
|
||||||
|
|
||||||
[![GitHub Actions CI Status](https://github.com/nf-core/taxprofiler/workflows/nf-core%20CI/badge.svg)](https://github.com/nf-core/taxprofiler/actions?query=workflow%3A%22nf-core+CI%22)
|
[![GitHub Actions CI Status](https://github.com/nf-core/taxprofiler/workflows/nf-core%20CI/badge.svg)](https://github.com/nf-core/taxprofiler/actions?query=workflow%3A%22nf-core+CI%22)
|
||||||
[![GitHub Actions Linting Status](https://github.com/nf-core/taxprofiler/workflows/nf-core%20linting/badge.svg)](https://github.com/nf-core/taxprofiler/actions?query=workflow%3A%22nf-core+linting%22)
|
[![GitHub Actions Linting Status](https://github.com/nf-core/taxprofiler/workflows/nf-core%20linting/badge.svg)](https://github.com/nf-core/taxprofiler/actions?query=workflow%3A%22nf-core+linting%22)
|
||||||
|
|
|
@ -9,3 +9,7 @@ report_section_order:
|
||||||
order: -1001
|
order: -1001
|
||||||
|
|
||||||
export_plots: true
|
export_plots: true
|
||||||
|
|
||||||
|
custom_logo: "nf-core-taxprofiler_logo_custom_light.png"
|
||||||
|
custom_logo_url: https://nf-co.re/taxprofiler
|
||||||
|
custom_logo_title: "nf-core/taxprofiler"
|
||||||
|
|
|
@ -51,10 +51,10 @@ process {
|
||||||
withName: FASTP_SINGLE {
|
withName: FASTP_SINGLE {
|
||||||
ext.args = [
|
ext.args = [
|
||||||
// trimming options
|
// trimming options
|
||||||
params.shortread_clipmerge_skipadaptertrim ? "--disable_adapter_trimming" : "",
|
params.shortread_qc_skipadaptertrim ? "--disable_adapter_trimming" : "",
|
||||||
params.shortread_clipmerge_adapter1 ? "--adapter_sequence ${params.shortread_clipmerge_adapter1}" : "",
|
params.shortread_qc_adapter1 ? "--adapter_sequence ${params.shortread_qc_adapter1}" : "",
|
||||||
// filtering options
|
// filtering options
|
||||||
"--length_required ${params.shortread_clipmerge_minlength}",
|
"--length_required ${params.shortread_qc_minlength}",
|
||||||
(params.perform_shortread_complexityfilter && params.shortread_complexityfilter_tool == 'fastp') ? "--low_complexity_filter --complexity_threshold ${params.shortread_complexityfilter_fastp_threshold}" : ''
|
(params.perform_shortread_complexityfilter && params.shortread_complexityfilter_tool == 'fastp') ? "--low_complexity_filter --complexity_threshold ${params.shortread_complexityfilter_fastp_threshold}" : ''
|
||||||
].join(' ').trim()
|
].join(' ').trim()
|
||||||
ext.prefix = { "${meta.id}_${meta.run_accession}" }
|
ext.prefix = { "${meta.id}_${meta.run_accession}" }
|
||||||
|
@ -69,13 +69,13 @@ process {
|
||||||
withName: FASTP_PAIRED {
|
withName: FASTP_PAIRED {
|
||||||
ext.args = [
|
ext.args = [
|
||||||
// collapsing options - option to retain singletons
|
// collapsing options - option to retain singletons
|
||||||
params.shortread_clipmerge_excludeunmerged ? '' : "--include_unmerged",
|
params.shortread_qc_excludeunmerged ? '' : "--include_unmerged",
|
||||||
// trimming options
|
// trimming options
|
||||||
params.shortread_clipmerge_skipadaptertrim ? "--disable_adapter_trimming" : "",
|
params.shortread_qc_skipadaptertrim ? "--disable_adapter_trimming" : "",
|
||||||
params.shortread_clipmerge_adapter1 ? "--adapter_sequence ${params.shortread_clipmerge_adapter1}" : "",
|
params.shortread_qc_adapter1 ? "--adapter_sequence ${params.shortread_qc_adapter1}" : "",
|
||||||
params.shortread_clipmerge_adapter2 ? "--adapter_sequence_r2 ${params.shortread_clipmerge_adapter2}" : "--detect_adapter_for_pe",
|
params.shortread_qc_adapter2 ? "--adapter_sequence_r2 ${params.shortread_qc_adapter2}" : "--detect_adapter_for_pe",
|
||||||
// filtering options
|
// filtering options
|
||||||
"--length_required ${params.shortread_clipmerge_minlength}",
|
"--length_required ${params.shortread_qc_minlength}",
|
||||||
params.perform_shortread_complexityfilter && params.shortread_complexityfilter_tool == 'fastp' ? "--low_complexity_filter --complexity_threshold ${params.shortread_complexityfilter_fastp_threshold}" : ''
|
params.perform_shortread_complexityfilter && params.shortread_complexityfilter_tool == 'fastp' ? "--low_complexity_filter --complexity_threshold ${params.shortread_complexityfilter_fastp_threshold}" : ''
|
||||||
].join(' ').trim()
|
].join(' ').trim()
|
||||||
ext.prefix = { "${meta.id}_${meta.run_accession}" }
|
ext.prefix = { "${meta.id}_${meta.run_accession}" }
|
||||||
|
@ -90,10 +90,10 @@ process {
|
||||||
withName: ADAPTERREMOVAL_SINGLE {
|
withName: ADAPTERREMOVAL_SINGLE {
|
||||||
ext.args = [
|
ext.args = [
|
||||||
// trimming options
|
// trimming options
|
||||||
params.shortread_clipmerge_skipadaptertrim ? "--adapter1 '' --adapter2 ''" : "",
|
params.shortread_qc_skipadaptertrim ? "--adapter1 '' --adapter2 ''" : "",
|
||||||
params.shortread_clipmerge_adapter1 ? "--adapter1 ${params.shortread_clipmerge_adapter1}" : "",
|
params.shortread_qc_adapter1 ? "--adapter1 ${params.shortread_qc_adapter1}" : "",
|
||||||
// filtering options
|
// filtering options
|
||||||
"--minlength ${params.shortread_clipmerge_minlength}"
|
"--minlength ${params.shortread_qc_minlength}"
|
||||||
].join(' ').trim()
|
].join(' ').trim()
|
||||||
ext.prefix = { "${meta.id}_${meta.run_accession}" }
|
ext.prefix = { "${meta.id}_${meta.run_accession}" }
|
||||||
publishDir = [
|
publishDir = [
|
||||||
|
@ -107,13 +107,13 @@ process {
|
||||||
withName: ADAPTERREMOVAL_PAIRED {
|
withName: ADAPTERREMOVAL_PAIRED {
|
||||||
ext.args = [
|
ext.args = [
|
||||||
// collapsing options
|
// collapsing options
|
||||||
params.shortread_clipmerge_mergepairs ? "--collapse" : "",
|
params.shortread_qc_mergepairs ? "--collapse" : "",
|
||||||
// trimming options
|
// trimming options
|
||||||
params.shortread_clipmerge_skipadaptertrim ? "--adapter1 '' --adapter2 ''" : "",
|
params.shortread_qc_skipadaptertrim ? "--adapter1 '' --adapter2 ''" : "",
|
||||||
params.shortread_clipmerge_adapter1 ? "--adapter1 ${params.shortread_clipmerge_adapter1}" : "",
|
params.shortread_qc_adapter1 ? "--adapter1 ${params.shortread_qc_adapter1}" : "",
|
||||||
params.shortread_clipmerge_adapter2 ? "--adapter2 ${params.shortread_clipmerge_adapter2}" : "",
|
params.shortread_qc_adapter2 ? "--adapter2 ${params.shortread_qc_adapter2}" : "",
|
||||||
// filtering options
|
// filtering options
|
||||||
"--minlength ${params.shortread_clipmerge_minlength}"
|
"--minlength ${params.shortread_qc_minlength}"
|
||||||
].join(' ').trim()
|
].join(' ').trim()
|
||||||
ext.prefix = { "${meta.id}_${meta.run_accession}" }
|
ext.prefix = { "${meta.id}_${meta.run_accession}" }
|
||||||
publishDir = [
|
publishDir = [
|
||||||
|
@ -134,6 +134,22 @@ process {
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
withName: FILTLONG {
|
||||||
|
ext.args = [
|
||||||
|
"--min_length ${params.longread_qc_minlength}",
|
||||||
|
"--keep_percent ${params.longread_qc_keep_percent}",
|
||||||
|
"--target_bases ${params.longread_qc_target_bases}"
|
||||||
|
]
|
||||||
|
.join(' ').trim()
|
||||||
|
ext.prefix = { "${meta.id}_${meta.run_accession}_filtered" }
|
||||||
|
publishDir = [
|
||||||
|
path: { "${params.outdir}/filtlong" },
|
||||||
|
mode: params.publish_dir_mode,
|
||||||
|
pattern: '*.fastq.gz',
|
||||||
|
enabled: params.save_preprocessed_reads
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
withName: BOWTIE2_BUILD {
|
withName: BOWTIE2_BUILD {
|
||||||
publishDir = [
|
publishDir = [
|
||||||
path: { "${params.outdir}/bowtie2/build" },
|
path: { "${params.outdir}/bowtie2/build" },
|
||||||
|
|
|
@ -24,8 +24,8 @@ params {
|
||||||
// TODO nf-core: Give any required params for the test so that command line flags are not needed
|
// TODO nf-core: Give any required params for the test so that command line flags are not needed
|
||||||
input = 'https://raw.githubusercontent.com/nf-core/test-datasets/taxprofiler/samplesheet.csv'
|
input = 'https://raw.githubusercontent.com/nf-core/test-datasets/taxprofiler/samplesheet.csv'
|
||||||
databases = 'https://raw.githubusercontent.com/nf-core/test-datasets/taxprofiler/database.csv'
|
databases = 'https://raw.githubusercontent.com/nf-core/test-datasets/taxprofiler/database.csv'
|
||||||
perform_shortread_clipmerge = true
|
perform_shortread_qc = true
|
||||||
perform_longread_clip = false
|
perform_longread_qc = true
|
||||||
perform_shortread_complexityfilter = true
|
perform_shortread_complexityfilter = true
|
||||||
perform_shortread_hostremoval = true
|
perform_shortread_hostremoval = true
|
||||||
perform_longread_hostremoval = true
|
perform_longread_hostremoval = true
|
||||||
|
|
|
@ -24,8 +24,8 @@ params {
|
||||||
// TODO nf-core: Give any required params for the test so that command line flags are not needed
|
// TODO nf-core: Give any required params for the test so that command line flags are not needed
|
||||||
input = 'https://raw.githubusercontent.com/nf-core/test-datasets/taxprofiler/samplesheet.csv'
|
input = 'https://raw.githubusercontent.com/nf-core/test-datasets/taxprofiler/samplesheet.csv'
|
||||||
databases = 'https://raw.githubusercontent.com/nf-core/test-datasets/taxprofiler/database.csv'
|
databases = 'https://raw.githubusercontent.com/nf-core/test-datasets/taxprofiler/database.csv'
|
||||||
perform_shortread_clipmerge = false
|
perform_shortread_qc = false
|
||||||
perform_longread_clip = false
|
perform_longread_qc = false
|
||||||
perform_shortread_complexityfilter = false
|
perform_shortread_complexityfilter = false
|
||||||
perform_shortread_hostremoval = false
|
perform_shortread_hostremoval = false
|
||||||
perform_longread_hostremoval = false
|
perform_longread_hostremoval = false
|
||||||
|
|
|
@ -24,8 +24,8 @@ params {
|
||||||
// TODO nf-core: Give any required params for the test so that command line flags are not needed
|
// TODO nf-core: Give any required params for the test so that command line flags are not needed
|
||||||
input = 'https://raw.githubusercontent.com/nf-core/test-datasets/taxprofiler/samplesheet.csv'
|
input = 'https://raw.githubusercontent.com/nf-core/test-datasets/taxprofiler/samplesheet.csv'
|
||||||
databases = 'https://raw.githubusercontent.com/nf-core/test-datasets/taxprofiler/database.csv'
|
databases = 'https://raw.githubusercontent.com/nf-core/test-datasets/taxprofiler/database.csv'
|
||||||
perform_shortread_clipmerge = true
|
perform_shortread_qc = true
|
||||||
perform_longread_clip = true
|
perform_longread_qc = true
|
||||||
perform_shortread_complexityfilter = true
|
perform_shortread_complexityfilter = true
|
||||||
perform_shortread_hostremoval = true
|
perform_shortread_hostremoval = true
|
||||||
perform_longread_hostremoval = true
|
perform_longread_hostremoval = true
|
||||||
|
|
BIN
docs/images/nf-core-taxprofiler_icon.png
Normal file
After Width: | Height: | Size: 131 KiB |
444
docs/images/nf-core-taxprofiler_icon.svg
Normal file
|
@ -0,0 +1,444 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
width="160mm"
|
||||||
|
height="120mm"
|
||||||
|
viewBox="0 0 160 120"
|
||||||
|
version="1.1"
|
||||||
|
id="svg5581"
|
||||||
|
inkscape:version="1.2 (1:1.2+202205241504+da316b6974)"
|
||||||
|
sodipodi:docname="nf-core-taxprofiler_icon.svg"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg">
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview5583"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1"
|
||||||
|
inkscape:document-units="mm"
|
||||||
|
showgrid="true"
|
||||||
|
inkscape:zoom="0.41291035"
|
||||||
|
inkscape:cx="541.27972"
|
||||||
|
inkscape:cy="445.61731"
|
||||||
|
inkscape:window-width="1920"
|
||||||
|
inkscape:window-height="1043"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="layer1">
|
||||||
|
<inkscape:grid
|
||||||
|
type="xygrid"
|
||||||
|
id="grid6096"
|
||||||
|
originx="-7.7520637"
|
||||||
|
originy="-7.8991986" />
|
||||||
|
</sodipodi:namedview>
|
||||||
|
<defs
|
||||||
|
id="defs5578">
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient21662"
|
||||||
|
id="linearGradient30057"
|
||||||
|
x1="10.213824"
|
||||||
|
y1="221.42242"
|
||||||
|
x2="218.95003"
|
||||||
|
y2="221.42242"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.6691607,0.01747377,-0.01751914,0.67089835,5.6293239,-100.28017)" />
|
||||||
|
<linearGradient
|
||||||
|
x1="0"
|
||||||
|
y1="0"
|
||||||
|
x2="1"
|
||||||
|
y2="0"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(37.87862,-29.594021,-29.594021,-37.87862,275.46292,136.24821)"
|
||||||
|
spreadMethod="pad"
|
||||||
|
id="linearGradient21662">
|
||||||
|
<stop
|
||||||
|
style="stop-opacity:1;stop-color:#000000"
|
||||||
|
offset="0"
|
||||||
|
id="stop21652" />
|
||||||
|
<stop
|
||||||
|
style="stop-opacity:1;stop-color:#0c542a"
|
||||||
|
offset="0.214724"
|
||||||
|
id="stop21654" />
|
||||||
|
<stop
|
||||||
|
style="stop-opacity:1;stop-color:#25af64"
|
||||||
|
offset="0.84662598"
|
||||||
|
id="stop21656" />
|
||||||
|
<stop
|
||||||
|
style="stop-opacity:1;stop-color:#25af64"
|
||||||
|
offset="0.846626"
|
||||||
|
id="stop21658" />
|
||||||
|
<stop
|
||||||
|
style="stop-opacity:1;stop-color:#25af64"
|
||||||
|
offset="1"
|
||||||
|
id="stop21660" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient21662"
|
||||||
|
id="linearGradient2708"
|
||||||
|
x1="14.381735"
|
||||||
|
y1="80.392174"
|
||||||
|
x2="49.04929"
|
||||||
|
y2="80.392174"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient21662"
|
||||||
|
id="linearGradient6027"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="14.381735"
|
||||||
|
y1="80.392174"
|
||||||
|
x2="49.04929"
|
||||||
|
y2="80.392174" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient21662"
|
||||||
|
id="linearGradient6029"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="14.381735"
|
||||||
|
y1="80.392174"
|
||||||
|
x2="49.04929"
|
||||||
|
y2="80.392174" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient21662"
|
||||||
|
id="linearGradient6031"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="14.381735"
|
||||||
|
y1="80.392174"
|
||||||
|
x2="49.04929"
|
||||||
|
y2="80.392174" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient21662"
|
||||||
|
id="linearGradient6033"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="14.381735"
|
||||||
|
y1="80.392174"
|
||||||
|
x2="49.04929"
|
||||||
|
y2="80.392174" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient21662"
|
||||||
|
id="linearGradient6035"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="14.381735"
|
||||||
|
y1="80.392174"
|
||||||
|
x2="49.04929"
|
||||||
|
y2="80.392174" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient21662"
|
||||||
|
id="linearGradient6037"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="14.381735"
|
||||||
|
y1="80.392174"
|
||||||
|
x2="49.04929"
|
||||||
|
y2="80.392174" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient21662"
|
||||||
|
id="linearGradient6039"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="14.381735"
|
||||||
|
y1="80.392174"
|
||||||
|
x2="49.04929"
|
||||||
|
y2="80.392174" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient21662"
|
||||||
|
id="linearGradient6041"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="14.381735"
|
||||||
|
y1="80.392174"
|
||||||
|
x2="49.04929"
|
||||||
|
y2="80.392174" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient21662"
|
||||||
|
id="linearGradient6043"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="14.381735"
|
||||||
|
y1="80.392174"
|
||||||
|
x2="49.04929"
|
||||||
|
y2="80.392174" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient21662"
|
||||||
|
id="linearGradient6045"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="14.381735"
|
||||||
|
y1="80.392174"
|
||||||
|
x2="49.04929"
|
||||||
|
y2="80.392174" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient21662"
|
||||||
|
id="linearGradient6047"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="14.381735"
|
||||||
|
y1="80.392174"
|
||||||
|
x2="49.04929"
|
||||||
|
y2="80.392174" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient21662"
|
||||||
|
id="linearGradient6049"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="14.381735"
|
||||||
|
y1="80.392174"
|
||||||
|
x2="49.04929"
|
||||||
|
y2="80.392174" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient21662"
|
||||||
|
id="linearGradient6051"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="14.381735"
|
||||||
|
y1="80.392174"
|
||||||
|
x2="49.04929"
|
||||||
|
y2="80.392174" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient21662"
|
||||||
|
id="linearGradient6053"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="14.381735"
|
||||||
|
y1="80.392174"
|
||||||
|
x2="49.04929"
|
||||||
|
y2="80.392174" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient21662"
|
||||||
|
id="linearGradient6055"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="14.381735"
|
||||||
|
y1="80.392174"
|
||||||
|
x2="49.04929"
|
||||||
|
y2="80.392174" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient21662"
|
||||||
|
id="linearGradient6057"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="14.381735"
|
||||||
|
y1="80.392174"
|
||||||
|
x2="49.04929"
|
||||||
|
y2="80.392174" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient21662"
|
||||||
|
id="linearGradient6059"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="14.381735"
|
||||||
|
y1="80.392174"
|
||||||
|
x2="49.04929"
|
||||||
|
y2="80.392174" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient21662"
|
||||||
|
id="linearGradient6061"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="14.381735"
|
||||||
|
y1="80.392174"
|
||||||
|
x2="49.04929"
|
||||||
|
y2="80.392174" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient21662"
|
||||||
|
id="linearGradient6063"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="14.381735"
|
||||||
|
y1="80.392174"
|
||||||
|
x2="49.04929"
|
||||||
|
y2="80.392174" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient21662"
|
||||||
|
id="linearGradient6065"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="14.381735"
|
||||||
|
y1="80.392174"
|
||||||
|
x2="49.04929"
|
||||||
|
y2="80.392174" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient21662"
|
||||||
|
id="linearGradient6067"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="14.381735"
|
||||||
|
y1="80.392174"
|
||||||
|
x2="49.04929"
|
||||||
|
y2="80.392174" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient21662"
|
||||||
|
id="linearGradient6069"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="14.381735"
|
||||||
|
y1="80.392174"
|
||||||
|
x2="49.04929"
|
||||||
|
y2="80.392174" />
|
||||||
|
</defs>
|
||||||
|
<g
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(-7.7520638,-7.8991986)">
|
||||||
|
<g
|
||||||
|
id="g6123"
|
||||||
|
transform="translate(7.3175494,9.6409068)">
|
||||||
|
<path
|
||||||
|
id="path30012-5"
|
||||||
|
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.424868;stroke-linecap:round"
|
||||||
|
d="M 9.5900834,8.8480637 C 7.5556439,12.028833 7.7408039,16.123943 7.7687039,19.769833 c 0.83412,6.65305 4.1623501,13.08043 9.6588001,17.05639 2.95411,2.45491 6.166,4.56934 9.30414,6.77667 -1.90794,4.17676 -2.98236,9.29825 -0.29786,13.40918 1.67713,3.72229 4.84583,6.89989 5.31985,11.06218 -0.73221,2.86643 -3.54676,6.3663 -0.97712,9.12477 2.12262,2.77099 4.06395,5.64907 5.35322,8.82231 2.02674,3.35439 6.5976,4.09759 10.20366,3.73748 2.47738,-0.18007 4.72202,-2.67715 3.28025,-5.08004 -1.18247,-2.55998 -4.28744,-2.18411 -6.38635,-3.25125 -1.36801,-2.44734 -3.00653,-5.99123 -0.26124,-8.17889 2.5926,-2.70872 4.69882,-5.81991 6.94515,-8.77398 2.71899,-1.24434 5.98816,-0.0654 8.84595,0.2859 10.88656,2.48435 21.31368,6.88721 32.36055,8.64773 3.13924,0.41138 6.76175,-0.45373 9.579516,0.92166 1.40942,4.43747 2.34224,9.45414 5.76225,12.84528 2.6934,1.93573 7.02228,2.12481 9.53599,-0.13787 1.60636,-2.93172 -1.52253,-5.89536 -4.20194,-6.62585 -0.40071,-2.8223 -0.37969,-5.87179 0.26854,-8.58529 3.77785,-0.24182 7.24094,1.16954 10.61732,2.45295 1.78619,3.3965 5.12259,5.96321 8.91186,6.64761 1.60415,-1.40492 2.56073,1.72858 3.8909,2.50862 2.79709,2.93023 6.8997,5.0038 10.99366,4.75587 3.26301,-0.67749 3.79546,-4.59452 2.47471,-7.17014 -0.80988,-4.2018 -3.22071,-8.59389 -1.2047,-12.82352 1.17357,-5.20598 -1.35199,-10.96325 -5.77146,-13.90702 -4.33733,-3.64436 -10.39077,-3.64653 -14.92742,-6.93614 -10.03223,-6.15469 -21.64077,-9.58338 -33.280326,-11.28456 -12.56653,-0.98847 -25.20371,-0.69003 -37.78225,-1.58411 -7.09295,-0.25502 -14.55087,-1.15633 -21.23347,1.84537 -3.9067,-0.36049 -7.22928,-2.98747 -10.60062,-4.8325 -3.63865,-2.26998 -7.6488,-4.94361 -8.46777,-9.49866 -1.63814,-4.07488 -1.20485,-8.6292 -2.57509,-12.7242393 -0.092,-1.43702 -3.1468606,-2.01015 -3.5173206,-0.42766 z" />
|
||||||
|
<path
|
||||||
|
style="fill:url(#linearGradient30057);fill-opacity:1;stroke:none;stroke-width:0.424868;stroke-linecap:round"
|
||||||
|
d="M 10.931314,9.9653233 C 9.7827934,11.308473 9.8484234,13.338583 9.5801634,15.027613 c -0.34115,2.76171 -0.29206,5.58762 0.6731896,8.22888 1.139301,3.87108 2.982591,7.65359 6.139101,10.27078 3.79198,3.54184 8.2401,6.33641 12.43029,9.30118 -0.91535,2.99306 -2.65543,5.87431 -2.30804,9.13471 0.18061,2.677 1.94571,4.91009 3.11856,7.23201 1.50937,2.8256 3.84729,5.54985 3.82514,8.91032 -0.0787,2.49314 -2.48083,4.5082 -1.96562,7.03872 1.67419,2.68138 3.992,4.96942 5.15932,7.96769 0.65556,1.60629 1.4695,3.40539 3.31812,3.87174 2.38126,0.82152 5.41091,1.64045 7.63103,0.0125 0.82635,-1.48261 -1.06902,-2.72955 -2.36736,-2.87342 -1.71199,-0.17589 -3.69466,-0.59568 -4.39228,-2.41244 -0.96281,-2.26721 -2.29358,-4.88743 -1.3576,-7.36922 2.00069,-3.29907 5.15025,-5.72284 7.05316,-9.10416 0.97281,-1.66962 2.43831,-3.35242 4.55042,-3.26353 6.66383,-0.13609 13.02922,2.25844 19.35504,4.0482 6.38637,1.7963 12.67764,4.02096 19.20445,5.25889 3.77887,0.58276 7.72718,-0.18602 11.419706,0.93529 1.63461,0.75428 1.35512,2.9334 2.05535,4.34159 1.1597,3.06423 1.81242,6.5515 4.16823,8.9707 1.76834,1.42588 4.39281,1.36118 6.4399,0.63293 1.20689,-0.70879 -0.0705,-2.295 -0.82735,-2.84018 -0.85353,-0.97431 -2.49109,-0.81793 -3.19991,-1.88904 -0.61703,-3.21399 -0.48223,-6.57875 0.0181,-9.80404 0.2319,-1.63989 2.04068,-2.10159 3.44204,-1.83986 3.30625,0.10127 6.50718,1.46919 9.55674,2.3424 -0.71254,-1.81326 -1.19119,-3.75193 -0.97348,-5.72815 0.0204,-1.69846 0.15688,-3.58482 1.5917,-4.73058 1.83011,-1.86627 3.60232,-3.85815 5.70315,-5.41088 0.57552,0.16274 -0.36083,0.85452 -0.4987,1.09386 -1.90807,2.09201 -4.24787,3.84191 -5.83093,6.20217 -0.46736,1.92903 -0.41493,3.99677 -0.24575,5.96645 0.84833,2.57726 2.1706,5.12487 4.1346,7.01585 1.36224,0.87656 2.75795,2.00764 4.37729,2.2713 1.6213,-0.74843 1.95011,-2.85006 2.55124,-4.35962 1.10913,-3.99969 1.90782,-8.08534 2.71945,-12.15319 0.1702,-1.75995 0.75519,-4.04477 -0.9398,-5.26766 -0.66443,-0.31636 -0.15084,-1.05324 0.36147,-0.52827 2.02638,1.51086 1.30614,4.35901 1.06011,6.49585 -0.85333,4.26646 -1.66477,8.56551 -2.96213,12.72302 -0.11797,0.91577 -1.34029,1.9982 -0.53389,2.72401 2.58751,2.57362 4.81242,5.92113 8.5085,6.96547 1.59827,0.50471 3.80045,1.66945 5.18808,0.14586 1.17766,-1.4017 -0.0976,-3.1877 -0.28432,-4.72092 -0.75396,-3.29433 -2.15674,-6.56045 -1.96438,-9.99106 0.37367,-2.10533 1.65495,-4.11536 1.02167,-6.32262 -0.34992,-2.84568 -1.45335,-5.69952 -3.77909,-7.50012 -2.77154,-2.67603 -6.40479,-4.14933 -10.09936,-5.01092 -3.81561,-1.24593 -6.9919,-3.83431 -10.61749,-5.50364 -6.72466,-3.69962 -14.2084,-5.65169 -21.615834,-7.44474 -8.303242,-1.93229 -16.888842,-1.47941 -25.343602,-1.84797 -8.46313,-0.1352 -16.90366,-0.80082 -25.3617,-1.05107 -4.38737,-0.20312 -8.92121,-0.0523 -12.99753,1.77349 -2.83378,1.235 -5.55113,-0.83445 -8.06653,-1.90121 -3.95435,-2.11512 -8.20653,-4.63235 -11.45036,-7.81607 -1.44093,-1.52832 -1.98381,-3.13498 -2.61394,-4.93556 -0.98461,-2.81345 -1.62386,-5.97312 -1.9462,-9.06999 -0.24149,-1.39646 -0.0764,-3.01443 -0.81326,-4.2426397 -0.0219,-0.007 -0.045,-0.0107 -0.0678,-0.007 z"
|
||||||
|
id="path30012"
|
||||||
|
sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccccccccccccccccccscccc"
|
||||||
|
inkscape:export-filename="/Users/whx424/Pictures/Illustrations/taxprofiler_v11.png"
|
||||||
|
inkscape:export-xdpi="159"
|
||||||
|
inkscape:export-ydpi="159" />
|
||||||
|
<path
|
||||||
|
id="path1218-5-4"
|
||||||
|
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:4.68179;stroke-linecap:round"
|
||||||
|
d="m 36.798094,98.985353 a 7.0058785,6.6371479 0 0 1 -7.00588,6.637147 7.0058785,6.6371479 0 0 1 -7.00589,-6.637147 7.0058785,6.6371479 0 0 1 7.00589,-6.63713 7.0058785,6.6371479 0 0 1 7.00588,6.63713 z" />
|
||||||
|
<path
|
||||||
|
id="path1218-8-0"
|
||||||
|
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:4.68179;stroke-linecap:round"
|
||||||
|
d="m 48.458974,96.857863 a 7.0058789,6.6371479 0 0 1 -7.00588,6.637147 7.0058789,6.6371479 0 0 1 -7.00588,-6.637147 7.0058789,6.6371479 0 0 1 7.00588,-6.63715 7.0058789,6.6371479 0 0 1 7.00588,6.63715 z" />
|
||||||
|
<path
|
||||||
|
id="path1218-4-46"
|
||||||
|
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:4.68179;stroke-linecap:round"
|
||||||
|
d="m 59.481564,99.639333 a 7.0058789,6.6371479 0 0 1 -7.00588,6.637157 7.0058789,6.6371479 0 0 1 -7.00588,-6.637157 7.0058789,6.6371479 0 0 1 7.00588,-6.63715 7.0058789,6.6371479 0 0 1 7.00588,6.63715 z" />
|
||||||
|
<path
|
||||||
|
id="path1218-7-4"
|
||||||
|
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:4.68179;stroke-linecap:round"
|
||||||
|
d="m 71.168234,96.889183 a 7.0058785,6.6371479 0 0 1 -7.00589,6.637157 7.0058785,6.6371479 0 0 1 -7.00588,-6.637157 7.0058785,6.6371479 0 0 1 7.00588,-6.63715 7.0058785,6.6371479 0 0 1 7.00589,6.63715 z" />
|
||||||
|
<path
|
||||||
|
id="path1218-1-6"
|
||||||
|
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:4.68179;stroke-linecap:round"
|
||||||
|
d="m 82.714904,99.255233 a 7.0058789,6.6371479 0 0 1 -7.00587,6.637147 7.0058789,6.6371479 0 0 1 -7.00588,-6.637147 7.0058789,6.6371479 0 0 1 7.00588,-6.63714 7.0058789,6.6371479 0 0 1 7.00587,6.63714 z" />
|
||||||
|
<path
|
||||||
|
id="path1218-73-4"
|
||||||
|
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:4.68179;stroke-linecap:round"
|
||||||
|
d="m 93.813184,96.584163 a 7.0058789,6.6371479 0 0 1 -7.00588,6.637147 7.0058789,6.6371479 0 0 1 -7.00587,-6.637147 7.0058789,6.6371479 0 0 1 7.00587,-6.63715 7.0058789,6.6371479 0 0 1 7.00588,6.63715 z" />
|
||||||
|
<path
|
||||||
|
id="path1218-5-9-3"
|
||||||
|
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:4.68179;stroke-linecap:round"
|
||||||
|
d="m 104.85924,98.601273 a 7.0058789,6.6371479 0 0 1 -7.005886,6.637147 7.0058789,6.6371479 0 0 1 -7.00588,-6.637147 7.0058789,6.6371479 0 0 1 7.00588,-6.63716 7.0058789,6.6371479 0 0 1 7.005886,6.63716 z" />
|
||||||
|
<path
|
||||||
|
id="path1218-8-7-8"
|
||||||
|
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:4.68179;stroke-linecap:round"
|
||||||
|
d="m 116.52015,96.473773 a 7.0058785,6.6371479 0 0 1 -7.00589,6.637127 7.0058785,6.6371479 0 0 1 -7.00588,-6.637127 7.0058785,6.6371479 0 0 1 7.00588,-6.63714 7.0058785,6.6371479 0 0 1 7.00589,6.63714 z" />
|
||||||
|
<path
|
||||||
|
id="path1218-4-7-4"
|
||||||
|
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:4.68179;stroke-linecap:round"
|
||||||
|
d="m 127.54274,99.255233 a 7.0058789,6.6371479 0 0 1 -7.00589,6.637147 7.0058789,6.6371479 0 0 1 -7.00588,-6.637147 7.0058789,6.6371479 0 0 1 7.00588,-6.63714 7.0058789,6.6371479 0 0 1 7.00589,6.63714 z" />
|
||||||
|
<path
|
||||||
|
id="path1218-7-9-00"
|
||||||
|
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:4.68179;stroke-linecap:round"
|
||||||
|
d="m 139.22941,96.505103 a 7.0058785,6.6371479 0 0 1 -7.00587,6.637147 7.0058785,6.6371479 0 0 1 -7.00588,-6.637147 7.0058785,6.6371479 0 0 1 7.00588,-6.63716 7.0058785,6.6371479 0 0 1 7.00587,6.63716 z" />
|
||||||
|
<path
|
||||||
|
id="path1218-1-5-9"
|
||||||
|
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:4.68179;stroke-linecap:round"
|
||||||
|
d="m 150.77607,98.871153 a 7.0058785,6.6371479 0 0 1 -7.00588,6.637137 7.0058785,6.6371479 0 0 1 -7.00588,-6.637137 7.0058785,6.6371479 0 0 1 7.00588,-6.63715 7.0058785,6.6371479 0 0 1 7.00588,6.63715 z" />
|
||||||
|
<g
|
||||||
|
id="g2682"
|
||||||
|
style="fill:url(#linearGradient2708);fill-opacity:1;stroke:url(#linearGradient2708)"
|
||||||
|
inkscape:export-filename="/Users/whx424/Pictures/Illustrations/taxprofiler_v11.png"
|
||||||
|
inkscape:export-xdpi="159"
|
||||||
|
inkscape:export-ydpi="159"
|
||||||
|
transform="matrix(3.7156967,0,0,3.7156967,-30.828156,-200.55501)">
|
||||||
|
<ellipse
|
||||||
|
style="fill:url(#linearGradient6027);fill-opacity:1;stroke:url(#linearGradient6029);stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none"
|
||||||
|
id="path1218-5"
|
||||||
|
cx="16.378149"
|
||||||
|
cy="80.642143"
|
||||||
|
rx="1.4964142"
|
||||||
|
ry="1.4176555" />
|
||||||
|
<ellipse
|
||||||
|
style="fill:url(#linearGradient6031);fill-opacity:1;stroke:url(#linearGradient6033);stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none"
|
||||||
|
id="path1218-8"
|
||||||
|
cx="19.516428"
|
||||||
|
cy="80.069572"
|
||||||
|
rx="1.4964142"
|
||||||
|
ry="1.4176555" />
|
||||||
|
<ellipse
|
||||||
|
style="fill:url(#linearGradient6035);fill-opacity:1;stroke:url(#linearGradient6037);stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none"
|
||||||
|
id="path1218-4"
|
||||||
|
cx="22.48292"
|
||||||
|
cy="80.818146"
|
||||||
|
rx="1.4964142"
|
||||||
|
ry="1.4176555" />
|
||||||
|
<ellipse
|
||||||
|
style="fill:url(#linearGradient6039);fill-opacity:1;stroke:url(#linearGradient6041);stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none"
|
||||||
|
id="path1218-7"
|
||||||
|
cx="25.628136"
|
||||||
|
cy="80.078003"
|
||||||
|
rx="1.4964142"
|
||||||
|
ry="1.4176555" />
|
||||||
|
<ellipse
|
||||||
|
style="fill:url(#linearGradient6043);fill-opacity:1;stroke:url(#linearGradient6045);stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none"
|
||||||
|
id="path1218-1"
|
||||||
|
cx="28.735676"
|
||||||
|
cy="80.714775"
|
||||||
|
rx="1.4964142"
|
||||||
|
ry="1.4176555" />
|
||||||
|
<ellipse
|
||||||
|
style="fill:url(#linearGradient6047);fill-opacity:1;stroke:url(#linearGradient6049);stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none"
|
||||||
|
id="path1218-73"
|
||||||
|
cx="31.72254"
|
||||||
|
cy="79.995911"
|
||||||
|
rx="1.4964142"
|
||||||
|
ry="1.4176555" />
|
||||||
|
<ellipse
|
||||||
|
style="fill:url(#linearGradient6051);fill-opacity:1;stroke:url(#linearGradient6053);stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none"
|
||||||
|
id="path1218-5-9"
|
||||||
|
cx="34.695347"
|
||||||
|
cy="80.538773"
|
||||||
|
rx="1.4964142"
|
||||||
|
ry="1.4176555" />
|
||||||
|
<ellipse
|
||||||
|
style="fill:url(#linearGradient6055);fill-opacity:1;stroke:url(#linearGradient6057);stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none"
|
||||||
|
id="path1218-8-7"
|
||||||
|
cx="37.83363"
|
||||||
|
cy="79.966202"
|
||||||
|
rx="1.4964142"
|
||||||
|
ry="1.4176555" />
|
||||||
|
<ellipse
|
||||||
|
style="fill:url(#linearGradient6059);fill-opacity:1;stroke:url(#linearGradient6061);stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none"
|
||||||
|
id="path1218-4-7"
|
||||||
|
cx="40.800121"
|
||||||
|
cy="80.714775"
|
||||||
|
rx="1.4964142"
|
||||||
|
ry="1.4176555" />
|
||||||
|
<ellipse
|
||||||
|
style="fill:url(#linearGradient6063);fill-opacity:1;stroke:url(#linearGradient6065);stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none"
|
||||||
|
id="path1218-7-9"
|
||||||
|
cx="43.945339"
|
||||||
|
cy="79.974632"
|
||||||
|
rx="1.4964142"
|
||||||
|
ry="1.4176555" />
|
||||||
|
<ellipse
|
||||||
|
style="fill:url(#linearGradient6067);fill-opacity:1;stroke:url(#linearGradient6069);stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none"
|
||||||
|
id="path1218-1-5"
|
||||||
|
cx="47.052876"
|
||||||
|
cy="80.611404"
|
||||||
|
rx="1.4964142"
|
||||||
|
ry="1.4176555" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 22 KiB |
BIN
docs/images/nf-core-taxprofiler_logo_custom_dark.png
Normal file
After Width: | Height: | Size: 389 KiB |
2302
docs/images/nf-core-taxprofiler_logo_custom_dark.svg
Normal file
After Width: | Height: | Size: 87 KiB |
BIN
docs/images/nf-core-taxprofiler_logo_custom_light.png
Normal file
After Width: | Height: | Size: 433 KiB |
2305
docs/images/nf-core-taxprofiler_logo_custom_light.svg
Normal file
After Width: | Height: | Size: 87 KiB |
3223
docs/images/taxprofiler_logo.svg
Normal file
After Width: | Height: | Size: 124 KiB |
|
@ -171,16 +171,16 @@ nf-core/taxprofiler offers four main preprocessing steps
|
||||||
|
|
||||||
#### Read Processing
|
#### Read Processing
|
||||||
|
|
||||||
Raw sequencing read processing in the form of adapter clipping and paired-end read merging can be activated via the `--perform_shortread_clipmerge` or `--perform_longread_clip` flags.
|
Raw sequencing read processing in the form of adapter clipping and paired-end read merging can be activated via the `--perform_shortread_qc` or `--perform_longread_qc` flags.
|
||||||
|
|
||||||
It is highly recommended to run this on raw reads to remove artefacts from sequencing that can cause false positive identification of taxa (e.g. contaminated reference genomes) and/or skews in taxonomic abundance profiles.
|
It is highly recommended to run this on raw reads to remove artefacts from sequencing that can cause false positive identification of taxa (e.g. contaminated reference genomes) and/or skews in taxonomic abundance profiles.
|
||||||
|
|
||||||
There are currently two options for short-read preprocessing: `fastp` or `adapterremoval`.
|
There are currently two options for short-read preprocessing: `fastp` or `adapterremoval`.
|
||||||
|
|
||||||
For adapter clipping, you can either rely on tool default adapter sequences, or supply your own adapters (`--shortread_clipmerge_adapter1` and `--shortread_clipmerge_adapter2`)
|
For adapter clipping, you can either rely on tool default adapter sequences, or supply your own adapters (`--shortread_qc_adapter1` and `--shortread_qc_adapter2`)
|
||||||
By default, paired-end merging is not activated and paired-end profiling is performed where supported otherwise pairs will be independently profiled. If paired-end merging is activated you can also specify whether to exclude unmerged reads in the reads sent for profiling (`--shortread_clipmerge_mergepairs` and `--shortread_clipmerge_excludeunmerged`).
|
By default, paired-end merging is not activated and paired-end profiling is performed where supported otherwise pairs will be independently profiled. If paired-end merging is activated you can also specify whether to exclude unmerged reads in the reads sent for profiling (`--shortread_qc_mergepairs` and `--shortread_qc_excludeunmerged`).
|
||||||
You can also turn off clipping and only perform paired-end merging, if requested. This can be useful when processing data downloaded from the ENA, SRA, or DDBJ (`--shortread_clipmerge_skipadaptertrim`).
|
You can also turn off clipping and only perform paired-end merging, if requested. This can be useful when processing data downloaded from the ENA, SRA, or DDBJ (`--shortread_qc_skipadaptertrim`).
|
||||||
Both tools support length filtering of reads and can be tuned with `--shortread_clipmerge_minlength`. Performing length filtering can be useful to remove short (often low sequencing complexity) sequences that result in unspecific classification and therefore slow down runtime during profiling, with minimal gain.
|
Both tools support length filtering of reads and can be tuned with `--shortread_qc_minlength`. Performing length filtering can be useful to remove short (often low sequencing complexity) sequences that result in unspecific classification and therefore slow down runtime during profiling, with minimal gain.
|
||||||
|
|
||||||
There is currently one option for long-read Oxford Nanopore processing: `porechop`.
|
There is currently one option for long-read Oxford Nanopore processing: `porechop`.
|
||||||
|
|
||||||
|
|
|
@ -36,6 +36,9 @@
|
||||||
"fastqc": {
|
"fastqc": {
|
||||||
"git_sha": "e745e167c1020928ef20ea1397b6b4d230681b4d"
|
"git_sha": "e745e167c1020928ef20ea1397b6b4d230681b4d"
|
||||||
},
|
},
|
||||||
|
"filtlong": {
|
||||||
|
"git_sha": "089f761f0bf79c4a486f1df9b6205f650196a2c1"
|
||||||
|
},
|
||||||
"kaiju/kaiju": {
|
"kaiju/kaiju": {
|
||||||
"git_sha": "8856f127c58f6af479128be8b8df4d42e442ddbe"
|
"git_sha": "8856f127c58f6af479128be8b8df4d42e442ddbe"
|
||||||
},
|
},
|
||||||
|
|
37
modules/nf-core/modules/filtlong/main.nf
generated
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
process FILTLONG {
|
||||||
|
tag "$meta.id"
|
||||||
|
label 'process_low'
|
||||||
|
|
||||||
|
conda (params.enable_conda ? "bioconda::filtlong=0.2.1" : null)
|
||||||
|
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
|
||||||
|
'https://depot.galaxyproject.org/singularity/filtlong:0.2.1--h9a82719_0' :
|
||||||
|
'quay.io/biocontainers/filtlong:0.2.1--h9a82719_0' }"
|
||||||
|
|
||||||
|
input:
|
||||||
|
tuple val(meta), path(shortreads), path(longreads)
|
||||||
|
|
||||||
|
output:
|
||||||
|
tuple val(meta), path("*.fastq.gz"), emit: reads
|
||||||
|
path "versions.yml" , emit: versions
|
||||||
|
|
||||||
|
when:
|
||||||
|
task.ext.when == null || task.ext.when
|
||||||
|
|
||||||
|
script:
|
||||||
|
def args = task.ext.args ?: ''
|
||||||
|
def prefix = task.ext.prefix ?: "${meta.id}"
|
||||||
|
def short_reads = !shortreads ? "" : meta.single_end ? "-1 $shortreads" : "-1 ${shortreads[0]} -2 ${shortreads[1]}"
|
||||||
|
if ("$longreads" == "${prefix}.fastq.gz") error "Longread FASTQ input and output names are the same, set prefix in module configuration to disambiguate!"
|
||||||
|
"""
|
||||||
|
filtlong \\
|
||||||
|
$short_reads \\
|
||||||
|
$args \\
|
||||||
|
$longreads \\
|
||||||
|
| gzip -n > ${prefix}.fastq.gz
|
||||||
|
|
||||||
|
cat <<-END_VERSIONS > versions.yml
|
||||||
|
"${task.process}":
|
||||||
|
filtlong: \$( filtlong --version | sed -e "s/Filtlong v//g" )
|
||||||
|
END_VERSIONS
|
||||||
|
"""
|
||||||
|
}
|
50
modules/nf-core/modules/filtlong/meta.yml
generated
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
name: filtlong
|
||||||
|
description: Filtlong filters long reads based on quality measures or short read data.
|
||||||
|
keywords:
|
||||||
|
- nanopore
|
||||||
|
- quality control
|
||||||
|
- QC
|
||||||
|
- filtering
|
||||||
|
- long reads
|
||||||
|
- short reads
|
||||||
|
tools:
|
||||||
|
- filtlong:
|
||||||
|
description: Filtlong is a tool for filtering long reads. It can take a set of long reads and produce a smaller, better subset. It uses both read length (longer is better) and read identity (higher is better) when choosing which reads pass the filter.
|
||||||
|
homepage: https://anaconda.org/bioconda/filtlong
|
||||||
|
documentation: None
|
||||||
|
tool_dev_url: https://github.com/rrwick/Filtlong
|
||||||
|
doi: ""
|
||||||
|
licence: ["GPL v3"]
|
||||||
|
|
||||||
|
input:
|
||||||
|
- meta:
|
||||||
|
type: map
|
||||||
|
description: |
|
||||||
|
Groovy Map containing sample information
|
||||||
|
e.g. [ id:'test', single_end:false ]
|
||||||
|
- shortreads:
|
||||||
|
type: file
|
||||||
|
description: fastq file
|
||||||
|
pattern: "*.{fq,fastq,fq.gz,fastq.gz}"
|
||||||
|
- longreads:
|
||||||
|
type: file
|
||||||
|
description: fastq file
|
||||||
|
pattern: "*.{fq,fastq,fq.gz,fastq.gz}"
|
||||||
|
|
||||||
|
output:
|
||||||
|
- meta:
|
||||||
|
type: map
|
||||||
|
description: |
|
||||||
|
Groovy Map containing sample information
|
||||||
|
e.g. [ id:'test', single_end:false ]
|
||||||
|
- versions:
|
||||||
|
type: file
|
||||||
|
description: File containing software versions
|
||||||
|
pattern: "versions.yml"
|
||||||
|
- reads:
|
||||||
|
type: file
|
||||||
|
description: Filtered (compressed) fastq file
|
||||||
|
pattern: "*.fastq.gz"
|
||||||
|
|
||||||
|
authors:
|
||||||
|
- "@d4straub"
|
|
@ -55,16 +55,23 @@ params {
|
||||||
databases = null
|
databases = null
|
||||||
|
|
||||||
// FASTQ preprocessing
|
// FASTQ preprocessing
|
||||||
perform_shortread_clipmerge = false
|
perform_shortread_qc = false
|
||||||
shortread_clipmerge_tool = 'fastp'
|
shortread_qc_tool = 'fastp'
|
||||||
shortread_clipmerge_skipadaptertrim = false
|
shortread_qc_skipadaptertrim = false
|
||||||
shortread_clipmerge_mergepairs = false
|
shortread_qc_mergepairs = false
|
||||||
shortread_clipmerge_excludeunmerged = false
|
shortread_qc_excludeunmerged = false
|
||||||
shortread_clipmerge_adapter1 = null
|
shortread_qc_adapter1 = null
|
||||||
shortread_clipmerge_adapter2 = null
|
shortread_qc_adapter2 = null
|
||||||
shortread_clipmerge_minlength = 15
|
shortread_qc_minlength = 15
|
||||||
perform_longread_clip = false
|
|
||||||
save_preprocessed_reads = false
|
perform_longread_qc = false
|
||||||
|
longread_qc_run_clip = false
|
||||||
|
longread_qc_run_filter = false
|
||||||
|
longread_qc_minlength = 1000
|
||||||
|
longread_qc_keep_percent = 90
|
||||||
|
longread_qc_target_bases = 500000000
|
||||||
|
|
||||||
|
save_preprocessed_reads = false
|
||||||
|
|
||||||
// Complexity filtering
|
// Complexity filtering
|
||||||
perform_shortread_complexityfilter = false
|
perform_shortread_complexityfilter = false
|
||||||
|
@ -197,6 +204,7 @@ profiles {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Load igenomes.config if required
|
// Load igenomes.config if required
|
||||||
|
|
||||||
if (!params.igenomes_ignore) {
|
if (!params.igenomes_ignore) {
|
||||||
includeConfig 'conf/igenomes.config'
|
includeConfig 'conf/igenomes.config'
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -262,7 +262,7 @@
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"default": "None"
|
"default": "None"
|
||||||
},
|
},
|
||||||
"shortread_clipmerge_excludeunmerged": {
|
"shortread_qc_excludeunmerged": {
|
||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
},
|
},
|
||||||
"run_malt": {
|
"run_malt": {
|
||||||
|
@ -291,26 +291,26 @@
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Enable MetaPhlAn for taxonomic profiling"
|
"description": "Enable MetaPhlAn for taxonomic profiling"
|
||||||
},
|
},
|
||||||
"shortread_clipmerge_tool": {
|
"shortread_qc_tool": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"default": "fastp",
|
"default": "fastp",
|
||||||
"enum": ["fastp", "adapterremoval"]
|
"enum": ["fastp", "adapterremoval"]
|
||||||
},
|
},
|
||||||
"shortread_clipmerge_skipadaptertrim": {
|
"shortread_qc_skipadaptertrim": {
|
||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
},
|
},
|
||||||
"shortread_clipmerge_mergepairs": {
|
"shortread_qc_mergepairs": {
|
||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
},
|
},
|
||||||
"shortread_clipmerge_adapter1": {
|
"shortread_qc_adapter1": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"default": "None"
|
"default": "None"
|
||||||
},
|
},
|
||||||
"shortread_clipmerge_adapter2": {
|
"shortread_qc_adapter2": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"default": "None"
|
"default": "None"
|
||||||
},
|
},
|
||||||
"shortread_clipmerge_minlength": {
|
"shortread_qc_minlength": {
|
||||||
"type": "integer",
|
"type": "integer",
|
||||||
"default": 15
|
"default": 15
|
||||||
},
|
},
|
||||||
|
@ -348,10 +348,10 @@
|
||||||
"save_runmerged_reads": {
|
"save_runmerged_reads": {
|
||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
},
|
},
|
||||||
"perform_shortread_clipmerge": {
|
"perform_shortread_qc": {
|
||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
},
|
},
|
||||||
"perform_longread_clip": {
|
"perform_longread_qc": {
|
||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
},
|
},
|
||||||
"perform_shortread_complexityfilter": {
|
"perform_shortread_complexityfilter": {
|
||||||
|
@ -410,6 +410,24 @@
|
||||||
"type": "integer",
|
"type": "integer",
|
||||||
"default": 30
|
"default": 30
|
||||||
},
|
},
|
||||||
|
"longread_qc_run_clip": {
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
|
"longread_qc_run_filter": {
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
|
"longread_qc_minlength": {
|
||||||
|
"type": "integer",
|
||||||
|
"default": 1000
|
||||||
|
},
|
||||||
|
"longread_qc_keep_percent": {
|
||||||
|
"type": "integer",
|
||||||
|
"default": 90
|
||||||
|
},
|
||||||
|
"longread_qc_target_bases": {
|
||||||
|
"type": "integer",
|
||||||
|
"default": 500000000
|
||||||
|
},
|
||||||
"run_motus": {
|
"run_motus": {
|
||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
},
|
},
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
|
|
||||||
include { FASTQC as FASTQC_PROCESSED } from '../../modules/nf-core/modules/fastqc/main'
|
include { FASTQC as FASTQC_PROCESSED } from '../../modules/nf-core/modules/fastqc/main'
|
||||||
include { PORECHOP } from '../../modules/nf-core/modules/porechop/main'
|
include { PORECHOP } from '../../modules/nf-core/modules/porechop/main'
|
||||||
|
include { FILTLONG } from '../../modules/nf-core/modules/filtlong/main'
|
||||||
|
|
||||||
workflow LONGREAD_PREPROCESSING {
|
workflow LONGREAD_PREPROCESSING {
|
||||||
take:
|
take:
|
||||||
|
@ -13,21 +14,43 @@ workflow LONGREAD_PREPROCESSING {
|
||||||
ch_versions = Channel.empty()
|
ch_versions = Channel.empty()
|
||||||
ch_multiqc_files = Channel.empty()
|
ch_multiqc_files = Channel.empty()
|
||||||
|
|
||||||
PORECHOP ( reads )
|
if ( params.longread_qc_run_clip && !params.longread_qc_run_filter ) {
|
||||||
|
PORECHOP ( reads )
|
||||||
|
|
||||||
ch_processed_reads = PORECHOP.out.reads
|
ch_processed_reads = PORECHOP.out.reads
|
||||||
.map {
|
.map {
|
||||||
meta, reads ->
|
meta, reads ->
|
||||||
def meta_new = meta.clone()
|
def meta_new = meta.clone()
|
||||||
meta_new['single_end'] = 1
|
meta_new['single_end'] = 1
|
||||||
[ meta_new, reads ]
|
[ meta_new, reads ]
|
||||||
}
|
|
||||||
|
|
||||||
FASTQC_PROCESSED ( PORECHOP.out.reads )
|
ch_versions = ch_versions.mix(PORECHOP.out.versions.first())
|
||||||
ch_versions = ch_versions.mix(PORECHOP.out.versions.first())
|
}
|
||||||
|
} else if ( !params.longread_qc_run_clip && params.longread_qc_run_filter ) {
|
||||||
|
|
||||||
|
ch_processed_reads = FILTLONG ( reads.map{ meta, reads -> [meta, [], reads ]} )
|
||||||
|
ch_versions = ch_versions.mix(FILTLONG.out.versions.first())
|
||||||
|
|
||||||
|
} else {
|
||||||
|
PORECHOP ( reads )
|
||||||
|
ch_clipped_reads = PORECHOP.out.reads
|
||||||
|
.map {
|
||||||
|
meta, reads ->
|
||||||
|
def meta_new = meta.clone()
|
||||||
|
meta_new['single_end'] = 1
|
||||||
|
[ meta_new, reads ]
|
||||||
|
}
|
||||||
|
|
||||||
|
ch_processed_reads = FILTLONG ( ch_clipped_reads.map{ meta, reads -> [meta, [], reads ]} ).reads
|
||||||
|
|
||||||
|
ch_versions = ch_versions.mix(PORECHOP.out.versions.first())
|
||||||
|
ch_versions = ch_versions.mix(FILTLONG.out.versions.first())
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
FASTQC_PROCESSED ( ch_processed_reads.dump(tag: "filtlong") )
|
||||||
ch_multiqc_files = ch_multiqc_files.mix( FASTQC_PROCESSED.out.zip )
|
ch_multiqc_files = ch_multiqc_files.mix( FASTQC_PROCESSED.out.zip )
|
||||||
|
|
||||||
|
|
||||||
emit:
|
emit:
|
||||||
reads = ch_processed_reads // channel: [ val(meta), [ reads ] ]
|
reads = ch_processed_reads // channel: [ val(meta), [ reads ] ]
|
||||||
versions = ch_versions // channel: [ versions.yml ]
|
versions = ch_versions // channel: [ versions.yml ]
|
||||||
|
|
|
@ -29,7 +29,7 @@ workflow SHORTREAD_ADAPTERREMOVAL {
|
||||||
* has to be exported in a separate channel and we must manually recombine when necessary.
|
* has to be exported in a separate channel and we must manually recombine when necessary.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if ( params.shortread_clipmerge_mergepairs && !params.shortread_clipmerge_excludeunmerged ) {
|
if ( params.shortread_qc_mergepairs && !params.shortread_qc_excludeunmerged ) {
|
||||||
|
|
||||||
ch_concat_fastq = Channel.empty()
|
ch_concat_fastq = Channel.empty()
|
||||||
.mix(
|
.mix(
|
||||||
|
@ -54,7 +54,7 @@ workflow SHORTREAD_ADAPTERREMOVAL {
|
||||||
ch_adapterremoval_reads_prepped = CAT_FASTQ.out.reads
|
ch_adapterremoval_reads_prepped = CAT_FASTQ.out.reads
|
||||||
.mix(ADAPTERREMOVAL_SINGLE.out.singles_truncated)
|
.mix(ADAPTERREMOVAL_SINGLE.out.singles_truncated)
|
||||||
|
|
||||||
} else if ( params.shortread_clipmerge_mergepairs && params.shortread_clipmerge_excludeunmerged ) {
|
} else if ( params.shortread_qc_mergepairs && params.shortread_qc_excludeunmerged ) {
|
||||||
|
|
||||||
ch_concat_fastq = Channel.empty()
|
ch_concat_fastq = Channel.empty()
|
||||||
.mix(
|
.mix(
|
||||||
|
|
|
@ -21,9 +21,9 @@ workflow SHORTREAD_FASTP {
|
||||||
|
|
||||||
FASTP_SINGLE ( ch_input_for_fastp.single, false, false )
|
FASTP_SINGLE ( ch_input_for_fastp.single, false, false )
|
||||||
// Last parameter here turns on merging of PE data
|
// Last parameter here turns on merging of PE data
|
||||||
FASTP_PAIRED ( ch_input_for_fastp.paired, false, params.shortread_clipmerge_mergepairs )
|
FASTP_PAIRED ( ch_input_for_fastp.paired, false, params.shortread_qc_mergepairs )
|
||||||
|
|
||||||
if ( params.shortread_clipmerge_mergepairs ) {
|
if ( params.shortread_qc_mergepairs ) {
|
||||||
ch_fastp_reads_prepped_pe = FASTP_PAIRED.out.reads_merged
|
ch_fastp_reads_prepped_pe = FASTP_PAIRED.out.reads_merged
|
||||||
.map {
|
.map {
|
||||||
meta, reads ->
|
meta, reads ->
|
||||||
|
|
|
@ -15,11 +15,11 @@ workflow SHORTREAD_PREPROCESSING {
|
||||||
ch_versions = Channel.empty()
|
ch_versions = Channel.empty()
|
||||||
ch_multiqc_files = Channel.empty()
|
ch_multiqc_files = Channel.empty()
|
||||||
|
|
||||||
if ( params.shortread_clipmerge_tool == "fastp" ) {
|
if ( params.shortread_qc_tool == "fastp" ) {
|
||||||
ch_processed_reads = SHORTREAD_FASTP ( reads ).reads
|
ch_processed_reads = SHORTREAD_FASTP ( reads ).reads
|
||||||
ch_versions = ch_versions.mix( SHORTREAD_FASTP.out.versions )
|
ch_versions = ch_versions.mix( SHORTREAD_FASTP.out.versions )
|
||||||
ch_multiqc_files = ch_multiqc_files.mix( SHORTREAD_FASTP.out.mqc )
|
ch_multiqc_files = ch_multiqc_files.mix( SHORTREAD_FASTP.out.mqc )
|
||||||
} else if ( params.shortread_clipmerge_tool == "adapterremoval" ) {
|
} else if ( params.shortread_qc_tool == "adapterremoval" ) {
|
||||||
ch_processed_reads = SHORTREAD_ADAPTERREMOVAL ( reads ).reads
|
ch_processed_reads = SHORTREAD_ADAPTERREMOVAL ( reads ).reads
|
||||||
ch_versions = ch_versions.mix( SHORTREAD_ADAPTERREMOVAL.out.versions )
|
ch_versions = ch_versions.mix( SHORTREAD_ADAPTERREMOVAL.out.versions )
|
||||||
ch_multiqc_files = ch_multiqc_files.mix( SHORTREAD_ADAPTERREMOVAL.out.mqc )
|
ch_multiqc_files = ch_multiqc_files.mix( SHORTREAD_ADAPTERREMOVAL.out.mqc )
|
||||||
|
|
|
@ -20,10 +20,11 @@ for (param in checkPathParamList) { if (param) { file(param, checkIfExists: true
|
||||||
if (params.input ) { ch_input = file(params.input) } else { exit 1, 'Input samplesheet not specified!' }
|
if (params.input ) { ch_input = file(params.input) } else { exit 1, 'Input samplesheet not specified!' }
|
||||||
if (params.databases) { ch_databases = file(params.databases) } else { exit 1, 'Input database sheet not specified!' }
|
if (params.databases) { ch_databases = file(params.databases) } else { exit 1, 'Input database sheet not specified!' }
|
||||||
|
|
||||||
if (params.shortread_clipmerge_mergepairs && params.run_malt ) log.warn "[nf-core/taxprofiler] MALT does not accept uncollapsed paired-reads. Pairs will be profiled as separate files."
|
if (params.shortread_qc_mergepairs && params.run_malt ) log.warn "[nf-core/taxprofiler] MALT does not accept uncollapsed paired-reads. Pairs will be profiled as separate files."
|
||||||
if (params.shortread_clipmerge_excludeunmerged && !params.shortread_clipmerge_mergepairs) exit 1, "ERROR: [nf-core/taxprofiler] cannot include unmerged reads when merging not turned on. Please specify --shortread_clipmerge_mergepairs"
|
if (params.shortread_qc_excludeunmerged && !params.shortread_qc_mergepairs) exit 1, "ERROR: [nf-core/taxprofiler] cannot include unmerged reads when merging not turned on. Please specify --shortread_qc_mergepairs"
|
||||||
|
if ( (params.longread_qc_run_clip || params.longread_qc_run_filter) & !params.perform_longread_qc ) exit 1, "ERROR: [nf-core/taxprofiler] --longread_qc_run_clip or --longread_qc_run_filter requested but quality-control not turned on. Please specify --perform_long_qc"
|
||||||
|
|
||||||
if (params.shortread_complexityfilter_tool == 'fastp' && ( params.perform_shortread_clipmerge == false || params.shortread_clipmerge_tool != 'fastp' )) exit 1, "ERROR: [nf-core/taxprofiler] cannot use fastp complexity filtering if preprocessing not turned on and/or tool is not fastp. Please specify --perform_shortread_clipmerge and/or --shortread_clipmerge_tool 'fastp'"
|
if (params.shortread_complexityfilter_tool == 'fastp' && ( params.perform_shortread_qc == false || params.shortread_qc_tool != 'fastp' )) exit 1, "ERROR: [nf-core/taxprofiler] cannot use fastp complexity filtering if preprocessing not turned on and/or tool is not fastp. Please specify --perform_shortread_qc and/or --shortread_qc_tool 'fastp'"
|
||||||
|
|
||||||
if (params.perform_shortread_hostremoval && !params.hostremoval_reference) { exit 1, "ERROR: [nf-core/taxprofiler] --shortread_hostremoval requested but no --hostremoval_reference FASTA supplied. Check input." }
|
if (params.perform_shortread_hostremoval && !params.hostremoval_reference) { exit 1, "ERROR: [nf-core/taxprofiler] --shortread_hostremoval requested but no --hostremoval_reference FASTA supplied. Check input." }
|
||||||
if (!params.hostremoval_reference && params.hostremoval_reference_index) { exit 1, "ERROR: [nf-core/taxprofiler] --shortread_hostremoval_index provided but no --hostremoval_reference FASTA supplied. Check input." }
|
if (!params.hostremoval_reference && params.hostremoval_reference_index) { exit 1, "ERROR: [nf-core/taxprofiler] --shortread_hostremoval_index provided but no --hostremoval_reference FASTA supplied. Check input." }
|
||||||
|
@ -87,6 +88,7 @@ def multiqc_report = []
|
||||||
workflow TAXPROFILER {
|
workflow TAXPROFILER {
|
||||||
|
|
||||||
ch_versions = Channel.empty()
|
ch_versions = Channel.empty()
|
||||||
|
ch_taxprofiler_logo = Channel.fromPath("$projectDir/docs/images/nf-core-taxprofiler_logo_custom_light.png")
|
||||||
|
|
||||||
/*
|
/*
|
||||||
SUBWORKFLOW: Read in samplesheet, validate and stage input files
|
SUBWORKFLOW: Read in samplesheet, validate and stage input files
|
||||||
|
@ -115,14 +117,14 @@ workflow TAXPROFILER {
|
||||||
/*
|
/*
|
||||||
SUBWORKFLOW: PERFORM PREPROCESSING
|
SUBWORKFLOW: PERFORM PREPROCESSING
|
||||||
*/
|
*/
|
||||||
if ( params.perform_shortread_clipmerge ) {
|
if ( params.perform_shortread_qc ) {
|
||||||
ch_shortreads_preprocessed = SHORTREAD_PREPROCESSING ( INPUT_CHECK.out.fastq ).reads
|
ch_shortreads_preprocessed = SHORTREAD_PREPROCESSING ( INPUT_CHECK.out.fastq ).reads
|
||||||
ch_versions = ch_versions.mix( SHORTREAD_PREPROCESSING.out.versions )
|
ch_versions = ch_versions.mix( SHORTREAD_PREPROCESSING.out.versions )
|
||||||
} else {
|
} else {
|
||||||
ch_shortreads_preprocessed = INPUT_CHECK.out.fastq
|
ch_shortreads_preprocessed = INPUT_CHECK.out.fastq
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( params.perform_longread_clip ) {
|
if ( params.perform_longread_qc ) {
|
||||||
ch_longreads_preprocessed = LONGREAD_PREPROCESSING ( INPUT_CHECK.out.nanopore ).reads
|
ch_longreads_preprocessed = LONGREAD_PREPROCESSING ( INPUT_CHECK.out.nanopore ).reads
|
||||||
.map { it -> [ it[0], [it[1]] ] }
|
.map { it -> [ it[0], [it[1]] ] }
|
||||||
ch_versions = ch_versions.mix( LONGREAD_PREPROCESSING.out.versions )
|
ch_versions = ch_versions.mix( LONGREAD_PREPROCESSING.out.versions )
|
||||||
|
@ -224,11 +226,13 @@ workflow TAXPROFILER {
|
||||||
ch_multiqc_files = ch_multiqc_files.mix(CUSTOM_DUMPSOFTWAREVERSIONS.out.mqc_yml.collect())
|
ch_multiqc_files = ch_multiqc_files.mix(CUSTOM_DUMPSOFTWAREVERSIONS.out.mqc_yml.collect())
|
||||||
ch_multiqc_files = ch_multiqc_files.mix(FASTQC.out.zip.collect{it[1]}.ifEmpty([]))
|
ch_multiqc_files = ch_multiqc_files.mix(FASTQC.out.zip.collect{it[1]}.ifEmpty([]))
|
||||||
|
|
||||||
if (params.perform_shortread_clipmerge) {
|
ch_multiqc_files = ch_multiqc_files.mix(ch_taxprofiler_logo.ifEmpty([]))
|
||||||
|
|
||||||
|
if (params.perform_shortread_qc) {
|
||||||
ch_multiqc_files = ch_multiqc_files.mix( SHORTREAD_PREPROCESSING.out.mqc.collect{it[1]}.ifEmpty([]) )
|
ch_multiqc_files = ch_multiqc_files.mix( SHORTREAD_PREPROCESSING.out.mqc.collect{it[1]}.ifEmpty([]) )
|
||||||
}
|
}
|
||||||
|
|
||||||
if (params.perform_longread_clip) {
|
if (params.perform_longread_qc) {
|
||||||
ch_multiqc_files = ch_multiqc_files.mix( LONGREAD_PREPROCESSING.out.mqc.collect{it[1]}.ifEmpty([]) )
|
ch_multiqc_files = ch_multiqc_files.mix( LONGREAD_PREPROCESSING.out.mqc.collect{it[1]}.ifEmpty([]) )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|