From dfb1e7b34bb14d180eca5244ca36260dda5a93c6 Mon Sep 17 00:00:00 2001 From: Mike Date: Thu, 28 May 2020 14:15:56 +0200 Subject: [PATCH 1/6] tax class working in the complete wf but not when using --annotate flag --- modules/sourmash_for_tax.nf | 51 +++++++++++++++++++++++++++++++++++++ phage.nf | 16 ++++++++++-- 2 files changed, 65 insertions(+), 2 deletions(-) create mode 100644 modules/sourmash_for_tax.nf diff --git a/modules/sourmash_for_tax.nf b/modules/sourmash_for_tax.nf new file mode 100644 index 0000000..b4311e6 --- /dev/null +++ b/modules/sourmash_for_tax.nf @@ -0,0 +1,51 @@ +process sourmash_for_tax { + publishDir "${params.output}/${name}/taxonomic-classification", mode: 'copy', pattern: "${name}_*.tax-class.csv" + label 'sourmash' + // errorStrategy 'ignore' + input: + tuple val(name), file(fasta_dir) + file(database) + output: + tuple val(name), file("${name}_*.tax-class.csv") + shell: + """ + tar xzf ${database} + + for fastafile in ${fasta_dir}/*.fa; do + sourmash compute -p ${task.cpus} --scaled 100 -k 21 \${fastafile} + done + + for signature in *.sig; do + sourmash search -k 21 \${signature} phages.sbt.json -o \${signature}.temporary + done + + touch ${name}_\${PWD##*/}.tax-class.csv + sed -i 1i"contig, prediction_value, predicted-organism-name" ${name}_\${PWD##*/}.tax-class.csv + + for classfile in *.temporary; do + phagename=\$(grep -v "similarity,name,filename,md5" \$classfile \ + | sort -nrk1,1 | head -1 \ + | tr -d '"' \ + | tr "|" "," \ + | tr -s _ \ + | awk -F "\\"*,\\"*" '{print \$6 \$7}' ) + + similarity=\$(grep -v "similarity,name,filename,md5" \$classfile \ + | sort -nrk1,1 | head -1 \ + | tr -d '"' \ + | tr "|" "," \ + | tr -s _ \ + | awk -F "\\"*,\\"*" '{print \$1}' \ + | awk '{printf "%.2f\\n",\$1}' ) + + filename=\$(basename \${classfile} .fa.sig.temporary) + + + echo "\$filename,\$similarity,\${phagename:1} " >> ${name}_\${PWD##*/}.tax-class.csv + done + """ +} + +/* +filtering criteria is at line 24 (awk part) with a current similiarity of 0.5 or higher to known phages +*/ \ No newline at end of file diff --git a/phage.nf b/phage.nf index 6bb06b7..804a83a 100755 --- a/phage.nf +++ b/phage.nf @@ -169,6 +169,7 @@ if (!params.setup) { include virsorter_collect_data from './modules/raw_data_collection/virsorter_collect_data' include virsorter_download_DB from './modules/databases/virsorter_download_DB' include vog_DB from './modules/databases/download_vog_DB' + include sourmash_for_tax from './modules/sourmash_for_tax' /************* * DATABASES for Phage Identification @@ -610,8 +611,8 @@ workflow phage_annotation_MSF { pvog_DB vog_DB rvdb_DB - main : + //annotation-process prodigal(fasta) hmmscan(prodigal.out, pvog_DB.map { it -> [it[0]] }) @@ -619,7 +620,17 @@ workflow phage_annotation_MSF { chromomap( chromomap_parser( fasta.join(hmmscan.out), pvog_DB.map { it -> [it[1]] })) +} +workflow phage_tax_classification { + take: fasta + sourmash_database + main: + sourmash_for_tax(split_multi_fasta(fasta), sourmash_database).groupTuple(remainder: true) + // raw data collector + //sourmash_collect_data(sourmash.out.groupTuple(remainder: true)) + // result channel + // sourmash_results = filter_sourmash.out } /************* @@ -657,10 +668,11 @@ workflow { else if (params.fasta && !params.annotate) { annotation_ch = identify_fasta_MSF.out } else if (params.fastq ) { annotation_ch = identify_fastq_MSF.out } - // actual annotation -> annotation_ch = tuple val(name), path(fasta) + // actual annotation & classification -> annotation_ch = tuple val(name), path(fasta) if (!params.identify) { phage_annotation_MSF(annotation_ch, pvog_DB, vog_DB, rvdb_DB) checkV_wf(annotation_ch, checkV_DB) + phage_tax_classification(annotation_ch, sourmash_DB) } } From e6a836f1e54268e861d30fe4ed2488bbfad3cdb6 Mon Sep 17 00:00:00 2001 From: Mike Date: Thu, 28 May 2020 15:17:16 +0200 Subject: [PATCH 2/6] tax class working on pos phage set... but but split multi fasta struggles with T7 draft .command.sh: line 9: T7_draft_contigs/: ambiguous redirect --- phage.nf | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/phage.nf b/phage.nf index 804a83a..0161004 100755 --- a/phage.nf +++ b/phage.nf @@ -628,7 +628,7 @@ workflow phage_tax_classification { main: sourmash_for_tax(split_multi_fasta(fasta), sourmash_database).groupTuple(remainder: true) // raw data collector - //sourmash_collect_data(sourmash.out.groupTuple(remainder: true)) + // sourmash_collect_data(sourmash.out.groupTuple(remainder: true)) // result channel // sourmash_results = filter_sourmash.out } @@ -645,7 +645,6 @@ workflow { phage_references() if (params.mp || params.annotate) { ref_phages_DB = Channel.from( [ 'deactivated', 'deactivated'] ) } else { ref_phages_DB = phage_blast_DB (phage_references.out) } if (params.pp || params.annotate) { ppr_deps = Channel.from( [ 'deactivated', 'deactivated'] ) } else { ppr_deps = ppr_dependecies() } - if (params.sm || params.annotate) { sourmash_DB = Channel.from( [ 'deactivated', 'deactivated'] ) } else { sourmash_DB = sourmash_database (phage_references.out) } if (params.vb || params.annotate) { vibrant_DB = Channel.from( [ 'deactivated', 'deactivated'] ) } else { vibrant_DB = vibrant_download_DB() } if (params.vs || params.annotate) { virsorter_DB = Channel.from( [ 'deactivated', 'deactivated'] ) } else { virsorter_DB = virsorter_database() } @@ -654,7 +653,8 @@ workflow { if (params.identify) { vog_DB = Channel.from( [ 'deactivated', 'deactivated'] ) } else { vog_DB = vog_database() } if (params.identify) { rvdb_DB = Channel.from( [ 'deactivated', 'deactivated'] ) } else { rvdb_DB = rvdb_database() } if (params.identify) { checkV_DB = Channel.from( [ 'deactivated', 'deactivated'] ) } else { checkV_DB = checkV_database() } - + // database sourmash + if (params.identify && params.sm) { sourmash_DB = Channel.from( [ 'deactivated', 'deactivated'] ) } else { sourmash_DB = sourmash_database (phage_references.out) } // Phage identification if (params.fasta && !params.annotate) { identify_fasta_MSF(fasta_input_ch, ref_phages_DB, ppr_deps,sourmash_DB, vibrant_DB, virsorter_DB) } @@ -672,7 +672,7 @@ workflow { if (!params.identify) { phage_annotation_MSF(annotation_ch, pvog_DB, vog_DB, rvdb_DB) checkV_wf(annotation_ch, checkV_DB) - phage_tax_classification(annotation_ch, sourmash_DB) + phage_tax_classification(annotation_ch, sourmash_DB ) } } From af7ba95c1cfb3d1c4ee5d291be6705d9fe051f71 Mon Sep 17 00:00:00 2001 From: Mike Date: Thu, 28 May 2020 16:04:24 +0200 Subject: [PATCH 3/6] need to validate this commit (changed fasta_input_ch to fastavalidation.out --- phage.nf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/phage.nf b/phage.nf index 0161004..fa0c120 100755 --- a/phage.nf +++ b/phage.nf @@ -662,7 +662,7 @@ workflow { // annotation based on fasta and fastq input combinations // channel handling - if (params.fasta && params.fastq && params.annotate) { annotation_ch = identify_fastq_MSF.out.mix(fasta_input_ch) } + if (params.fasta && params.fastq && params.annotate) { annotation_ch = identify_fastq_MSF.out.mix(fasta_validation_wf.out) } else if (params.fasta && params.fastq && !params.annotate) { annotation_ch = identify_fastq_MSF.out.mix(identify_fasta_MSF.out) } else if (params.fasta && params.annotate) { annotation_ch = fasta_input_ch } else if (params.fasta && !params.annotate) { annotation_ch = identify_fasta_MSF.out } @@ -670,6 +670,7 @@ workflow { // actual annotation & classification -> annotation_ch = tuple val(name), path(fasta) if (!params.identify) { + fasta_validation_wf(annotation_ch phage_annotation_MSF(annotation_ch, pvog_DB, vog_DB, rvdb_DB) checkV_wf(annotation_ch, checkV_DB) phage_tax_classification(annotation_ch, sourmash_DB ) From 078cf661f5e94d4172d03f13422a0465619579e6 Mon Sep 17 00:00:00 2001 From: mike Date: Sun, 31 May 2020 10:35:34 +0000 Subject: [PATCH 4/6] found a suitable solution... problem is that the script won't see my if statement bc the command errors out and therefore wont reach the if statement...maybe have a solution for this already --- modules/checkV.nf | 8 +++++++- phage.nf | 11 +++-------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/modules/checkV.nf b/modules/checkV.nf index ed36dcb..e640af2 100644 --- a/modules/checkV.nf +++ b/modules/checkV.nf @@ -1,11 +1,12 @@ process checkV { publishDir "${params.output}/${name}/" + validExitStatus 1 label 'checkV' input: tuple val(name), path(fasta) file(database) output: - tuple val(name), file("${name}_quality_summary.tsv") + tuple val(name), file("${name}_quality_summary.tsv"), file("negative_result_${name}.txt") optional true script: """ checkv completeness ${fasta} -d ${database} -t ${task.cpus} results @@ -13,5 +14,10 @@ process checkV { checkv contamination ${fasta} -d ${database} -t ${task.cpus} results checkv quality_summary ${fasta} results cp results/quality_summary.tsv ${name}_quality_summary.tsv + exit 1 + if [ exit 1 ] then; + touch negative_result_${name}.txt + echo "sorry..... nothing found" >> negative_result_${name}.txt + fi """ } \ No newline at end of file diff --git a/phage.nf b/phage.nf index fa0c120..debe242 100755 --- a/phage.nf +++ b/phage.nf @@ -613,7 +613,7 @@ workflow phage_annotation_MSF { rvdb_DB main : //annotation-process - prodigal(fasta) + prodigal(fasta) hmmscan(prodigal.out, pvog_DB.map { it -> [it[0]] }) @@ -627,10 +627,6 @@ workflow phage_tax_classification { sourmash_database main: sourmash_for_tax(split_multi_fasta(fasta), sourmash_database).groupTuple(remainder: true) - // raw data collector - // sourmash_collect_data(sourmash.out.groupTuple(remainder: true)) - // result channel - // sourmash_results = filter_sourmash.out } /************* @@ -662,15 +658,14 @@ workflow { // annotation based on fasta and fastq input combinations // channel handling - if (params.fasta && params.fastq && params.annotate) { annotation_ch = identify_fastq_MSF.out.mix(fasta_validation_wf.out) } + if (params.fasta && params.fastq && params.annotate) { annotation_ch = identify_fastq_MSF.out.mix(fasta_validation_wf(fasta_input_ch)) } else if (params.fasta && params.fastq && !params.annotate) { annotation_ch = identify_fastq_MSF.out.mix(identify_fasta_MSF.out) } - else if (params.fasta && params.annotate) { annotation_ch = fasta_input_ch } + else if (params.fasta && params.annotate) { annotation_ch = fasta_validation_wf(fasta_input_ch)} else if (params.fasta && !params.annotate) { annotation_ch = identify_fasta_MSF.out } else if (params.fastq ) { annotation_ch = identify_fastq_MSF.out } // actual annotation & classification -> annotation_ch = tuple val(name), path(fasta) if (!params.identify) { - fasta_validation_wf(annotation_ch phage_annotation_MSF(annotation_ch, pvog_DB, vog_DB, rvdb_DB) checkV_wf(annotation_ch, checkV_DB) phage_tax_classification(annotation_ch, sourmash_DB ) From fa9efb21b8fc26c477f0ebafedd42047d628d540 Mon Sep 17 00:00:00 2001 From: Mike Date: Tue, 2 Jun 2020 15:33:11 +0200 Subject: [PATCH 5/6] rdy for merge into v0.7 --- README.md | 12 ++++++------ configs/container.config | 2 +- modules/checkV.nf | 19 +++++++------------ modules/tools/metaphinder.nf | 1 - test-data/all_neg_phage.fa | 2 +- 5 files changed, 15 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index 8837cc8..59b7d5e 100644 --- a/README.md +++ b/README.md @@ -61,7 +61,7 @@ sudo mv nextflow /usr/bin/ sudo apt-get install -y docker-ce docker-ce-cli containerd.io sudo usermod -a -G docker $USER ``` -* Restart your computer and [go](##Quick-execution) +* Restart your computer and [go](#Quick-execution) ## Default @@ -80,7 +80,7 @@ sudo usermod -a -G docker $USER * Restart your computer * Try out the installation by entering the following ```shell -nextflow run replikation/What_the_Phage -r v0.6 --fasta ~/.nextflow/assets/replikation/What_the_Phage/test-data/all_pos_phage.fasta -profile local,docker +nextflow run replikation/What_the_Phage -r v0.7 --fasta ~/.nextflow/assets/replikation/What_the_Phage/test-data/all_pos_phage.fasta -profile local,docker ``` # Execution / Examples / Help @@ -100,7 +100,7 @@ replikation/What_the_Phage \ # WtP Git-Repo --fasta /path/to/file.fa \ # provide a fasta-file as input --cores 4 \ # [number of cores you want to use] -profile local,docker # choose the environment:local and docker --r v0.6 # WtP release version +-r v0.7 # WtP release version ``` @@ -117,7 +117,7 @@ nextflow run replikation/What_the_Phage \ --fasta /path/to/file.fa \ -profile local,docker \ --cores 4 \ --r v0.6 \ +-r v0.7 \ --anno \ --dv \ --vf \ @@ -197,7 +197,7 @@ nextflow run replikation/What_the_Phage --setup nextflow run replikation/What_the_Phage.nf \ --fasta 'test-data/*.fasta' \ -profile local,docker \ --r v0.6 \ +-r v0.7 \ --cores 4 ``` @@ -251,7 +251,7 @@ Toolname/Git | Reference [prodigal](https://github.com/hyattpd/Prodigal)|[Prodigal: prokaryotic gene recognition and translation initiation site identification](https://bmcbioinformatics.biomedcentral.com/articles/10.1186/1471-2105-11-119) [hmmer](http://hmmer.org/)|[nhmmer: DNA homology search with profile HMMs](https://academic.oup.com/bioinformatics/article/29/19/2487/186765) [chromomap](https://cran.r-project.org/web/packages/chromoMap/vignettes/chromoMap.html)| -[CheckV](https://bitbucket.org/berkeleylab/checkv/src/master/)| +[CheckV](https://bitbucket.org/berkeleylab/checkv/src/master/)|[CheckV: assessing the quality of metagenome-assembled viral genomes](https://www.biorxiv.org/content/10.1101/2020.05.06.081778v1) ### Other tools Toolname/Git | Reference |-|-| diff --git a/configs/container.config b/configs/container.config index 78ee54b..b112d20 100644 --- a/configs/container.config +++ b/configs/container.config @@ -1,6 +1,6 @@ process { withLabel: chromomap { container = 'nanozoo/r_fungi:0.1--097b1bb' } - withLabel: checkV { container = 'nanozoo/checkv:0.4.0--f3ed06e' } + withLabel: checkV { container = 'nanozoo/checkv:0.6.0--e97f45e' } withLabel: deepvirfinder { container = 'multifractal/deepvirfinder:0.1' } withLabel: emboss { container = 'quay.io/biocontainers/emboss:6.5.7--4' } withLabel: ggplot2 { container = 'michelsteuwer/ggplot2:latest' } diff --git a/modules/checkV.nf b/modules/checkV.nf index e640af2..5237dc4 100644 --- a/modules/checkV.nf +++ b/modules/checkV.nf @@ -1,6 +1,6 @@ process checkV { publishDir "${params.output}/${name}/" - validExitStatus 1 + errorStrategy 'ignore' label 'checkV' input: tuple val(name), path(fasta) @@ -8,16 +8,11 @@ process checkV { output: tuple val(name), file("${name}_quality_summary.tsv"), file("negative_result_${name}.txt") optional true script: - """ - checkv completeness ${fasta} -d ${database} -t ${task.cpus} results - checkv repeats ${fasta} results - checkv contamination ${fasta} -d ${database} -t ${task.cpus} results - checkv quality_summary ${fasta} results - cp results/quality_summary.tsv ${name}_quality_summary.tsv - exit 1 - if [ exit 1 ] then; - touch negative_result_${name}.txt - echo "sorry..... nothing found" >> negative_result_${name}.txt - fi + """ + checkv completeness ${fasta} -d ${database} -t ${task.cpus} results #2> /dev/null + checkv repeats ${fasta} results #2> /dev/null + checkv contamination ${fasta} -d ${database} -t ${task.cpus} results #2> /dev/null + checkv quality_summary ${fasta} results #2> /dev/null + cp results/quality_summary.tsv ${name}_quality_summary.tsv #2> /dev/null """ } \ No newline at end of file diff --git a/modules/tools/metaphinder.nf b/modules/tools/metaphinder.nf index 1cce6cb..1df7033 100644 --- a/modules/tools/metaphinder.nf +++ b/modules/tools/metaphinder.nf @@ -1,7 +1,6 @@ process metaphinder { label 'metaphinder' errorStrategy 'ignore' - input: tuple val(name), file(fasta) output: diff --git a/test-data/all_neg_phage.fa b/test-data/all_neg_phage.fa index 8586508..37a32d4 100644 --- a/test-data/all_neg_phage.fa +++ b/test-data/all_neg_phage.fa @@ -21670,7 +21670,7 @@ TTCACCTCATTCCATTCTACAGAGAATCTCCTTCACATTCCTAGGGTGGATTAAAGTGTTATATTTAACT GCCAATTGTGAAATTGGCGGAAGGCATTAGACTAAAGGAAGAAACTGACCTCTCGTTGGGCCATAATTCT AGAAAGCCGTTGTGATCCTGAGTCTGAGTGTGACCTTCCAAGTTTTCCCGACCCTCCTGCAAGTGAGATA CTGGTCTGTG ->neg_phage_7 +>neg_phage_6 TCTTGGCTCATTGCAACCTCCGCCTCCTGGGTTCAAGCAATTCTCCTGCCTCAGCCTCCTGAGTAGCTGG GATTACAGGCGCTCGCCACCACGCCCAGCTAATTTTTGTATGTTTTTTTTTAGTAGAGACGGGGTTTCAC CATGTTGGCCAGGCTGGTCTTGAACTCTTGACCTTGTGATCGGCCTCCCAAAGTGCTGGGATTACAGGCG From 4d435434ec5eb0c9fa466c3cc6add41c4aad68a8 Mon Sep 17 00:00:00 2001 From: Mike Date: Tue, 2 Jun 2020 16:21:33 +0200 Subject: [PATCH 6/6] updated readme --- README.md | 18 +- figures/plot.png | Bin 42748 -> 0 bytes figures/plot.svg | 678 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 694 insertions(+), 2 deletions(-) delete mode 100644 figures/plot.png create mode 100644 figures/plot.svg diff --git a/README.md b/README.md index 59b7d5e..7cff80b 100644 --- a/README.md +++ b/README.md @@ -207,7 +207,7 @@ nextflow run replikation/What_the_Phage.nf \ #### 1. Identification Tool and contig overview (UpSetR) -![plot](figures/plot.png) +![plot](figures/plot.svg) *Figure 1:* This chart (UpSetR plot) quantifies the result-intersections of the phage identification tools, similar to a venn diagram. The amount of positive phage-sequences identified by each tool is represented on the left barplot in blue. The dot plot shows via line connection(s) which of the tools identified the exact same positive phage sequences. The amount of these shared matches is quantified as a barplot above each corresponding dot pattern. #### 2. Annotation Visualization (Chromomap) @@ -216,7 +216,21 @@ nextflow run replikation/What_the_Phage.nf \ *See Link:* The graphical output of the annotation shows an overview of the individual loci of the predicted ORFs and the corresponding genes in the fasta sequences identified as phages. For better visibility, we have chosen 4 categories tail, capsid, baseplate, and other. This output can be used to verify the identified sequences (if the predicted sequences make sense or not). The annotation results are additionally plotted in an interactive HTML-file and are available as a file for further analysis. #### 3. Summary Table (checkV + Results) -* Featured for release `-r v0.7` (wip) +* check [CheckV](https://bitbucket.org/berkeleylab/checkv/src/master/) for a detailed explaination + +contig_id| contig_length| genome_copies| gene_count| viral_genes| host_genes| checkv_quality| miuvig_quality| completeness| completeness_method| contamination| provirus| +|-|-|-|-|-|-|-|-|-|-|-|-| +pos_phage_0| 146647| 1| 243| 141| 1| High-quality| High-quality| 97.03| AAI-based| 0| No| +pos_phage_1| 58871| 1| 97| 21| 0| High-quality| High-quality| 100| AAI-based| 0| No| +pos_phage_2| 58560| 1| 95| 20| 0| High-quality| High-quality| 99.47| AAI-based| 0| No| +pos_phage_3| 59443| 1| 90| 52| 0| High-quality| High-quality| 100| AAI-based| 0| No| +pos_phage_4| 51290| 1| 74| 44| 0| High-quality| High-quality| 100| AAI-based| 0| No| +pos_phage_5| 43293| 1| 69| 55| 0| High-quality| High-quality| 100| AAI-based| 0| No| +pos_phage_6| 43851| 1| 53| 30| 0| High-quality| High-quality| 98.71| AAI-based| 0| No| +pos_phage_7| 44262| 1| 54| 31| 0| High-quality| High-quality| 99.64| AAI-based| 0| No| +pos_phage_8| 41865| 1| 60| 57| 0| High-quality| High-quality| 97.29| AAI-based| 0| No| +pos_phage_9| 221908| 1| 310| 48| 9| High-quality| High-quality| 100| AAI-based| 0| No| + # Under the hood diff --git a/figures/plot.png b/figures/plot.png deleted file mode 100644 index ff0ba5bf1baf00c0d417ba934e9ed07d24cb0d05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42748 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

ii@ey`d3aVa-Zp^;1(*7XD%H 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +