From ab790e0b0f850835e8c9f40e76f34c2e63ca3e87 Mon Sep 17 00:00:00 2001 From: Olusegun Ekundayo Adebayo Date: Wed, 15 Jul 2026 16:24:54 +0200 Subject: [PATCH 01/15] adding new galaxy-workflow --- .../.dockstore.yml | 15 + .../CHANGELOG.md | 5 + .../correlation-of-samples-on-peaks/README.md | 27 ++ .../correlation-of-samples-on-peaks-tests.yml | 32 ++ .../correlation-of-samples-on-peaks.ga | 377 ++++++++++++++++++ .../test-data/correlation plot.png | Bin 0 -> 22585 bytes .../test-data/deeptool raw counts.tabular | 21 + ... coverage matrix.deeptools_coverage_matrix | Bin 0 -> 489 bytes .../test-data/peak1.bed | 10 + .../test-data/peak2.bed | 10 + .../test-data/sample1.bam | Bin 0 -> 38650 bytes .../test-data/sample2.bam | Bin 0 -> 38216 bytes 12 files changed, 497 insertions(+) create mode 100644 workflows/epigenetics/correlation-of-samples-on-peaks/.dockstore.yml create mode 100644 workflows/epigenetics/correlation-of-samples-on-peaks/CHANGELOG.md create mode 100644 workflows/epigenetics/correlation-of-samples-on-peaks/README.md create mode 100644 workflows/epigenetics/correlation-of-samples-on-peaks/correlation-of-samples-on-peaks-tests.yml create mode 100644 workflows/epigenetics/correlation-of-samples-on-peaks/correlation-of-samples-on-peaks.ga create mode 100644 workflows/epigenetics/correlation-of-samples-on-peaks/test-data/correlation plot.png create mode 100644 workflows/epigenetics/correlation-of-samples-on-peaks/test-data/deeptool raw counts.tabular create mode 100644 workflows/epigenetics/correlation-of-samples-on-peaks/test-data/deeptools coverage matrix.deeptools_coverage_matrix create mode 100644 workflows/epigenetics/correlation-of-samples-on-peaks/test-data/peak1.bed create mode 100644 workflows/epigenetics/correlation-of-samples-on-peaks/test-data/peak2.bed create mode 100644 workflows/epigenetics/correlation-of-samples-on-peaks/test-data/sample1.bam create mode 100644 workflows/epigenetics/correlation-of-samples-on-peaks/test-data/sample2.bam diff --git a/workflows/epigenetics/correlation-of-samples-on-peaks/.dockstore.yml b/workflows/epigenetics/correlation-of-samples-on-peaks/.dockstore.yml new file mode 100644 index 0000000000..3c9570dffd --- /dev/null +++ b/workflows/epigenetics/correlation-of-samples-on-peaks/.dockstore.yml @@ -0,0 +1,15 @@ +version: 0.1 +workflows: +- name: main + subclass: Galaxy + publish: true + primaryDescriptorPath: /correlation-of-samples-on-peaks.ga + testParameterFiles: + - /correlation-of-samples-on-peaks-tests.yml + authors: + - name: Lucille Delisle + orcid: 0000-0002-1964-4960 + - name: Alexandre Mayran + orcid: 0000-0002-1228-0308 + - name: Olusegun E. Adebayo + orcid: 0009-0003-9444-3944 diff --git a/workflows/epigenetics/correlation-of-samples-on-peaks/CHANGELOG.md b/workflows/epigenetics/correlation-of-samples-on-peaks/CHANGELOG.md new file mode 100644 index 0000000000..e4746af821 --- /dev/null +++ b/workflows/epigenetics/correlation-of-samples-on-peaks/CHANGELOG.md @@ -0,0 +1,5 @@ +# Changelog + +## [0.1] 20206-07-06 + +First release. \ No newline at end of file diff --git a/workflows/epigenetics/correlation-of-samples-on-peaks/README.md b/workflows/epigenetics/correlation-of-samples-on-peaks/README.md new file mode 100644 index 0000000000..e007b7f75d --- /dev/null +++ b/workflows/epigenetics/correlation-of-samples-on-peaks/README.md @@ -0,0 +1,27 @@ +# correlation of samples on peaks: + +## Inputs dataset + +- A list of peak files. +- Sample BAM files + +## Inputs values + +- Percentage of bad quality bases per read: fastp will discard any read which has more than this percentage of bases with a quality below 30. This depends on your read length. +- Reference genome: this field will be adapted to the genomes available for bowtie2 and the genomes available for bedtools slopbed (dbkeys table) + +## Processing + +- The workflow will concatenate the list of peak files given as input +- Sort and merge them using deeptools. +- Calculates the number of reads per region for each BAM file. +- Sorts and merges the BAM files by Chromosome and other citerials defined using `bedtools sortBED` and `bedtools mergeBED`, respectively. +- Computes the read coverages for the sorted and merged list of genomic region present in the bed files using `multiBamSummary`. +- Calculate and visualize pairwise correlation values between the read coverages using the tool `plotCorrelation`. +- The workflow produces two outputs: + - a compressed numpy array containing the raw count of the read coverages (i.e., the output of `multiBamSummary`) in .npz format + - a plot of pairwise correlation values between the read coverages (i.e., the output of `plotCorrelation`). + +### Warning + +- The `reference_genome` parameter value is used to select references in bowtie2 and bedtools slopbed. Only references that are present in bowtie2 **and** bedtools slopbed are selectable. If your favorite reference genome is not available ask your administrator to make sure that each bowtie2 reference has a corresponding len file for use in bedtools slopbed. \ No newline at end of file diff --git a/workflows/epigenetics/correlation-of-samples-on-peaks/correlation-of-samples-on-peaks-tests.yml b/workflows/epigenetics/correlation-of-samples-on-peaks/correlation-of-samples-on-peaks-tests.yml new file mode 100644 index 0000000000..5fcc4e4012 --- /dev/null +++ b/workflows/epigenetics/correlation-of-samples-on-peaks/correlation-of-samples-on-peaks-tests.yml @@ -0,0 +1,32 @@ +- doc: Test outline for correlation-of-samples-on-peaks + job: + Collection of peak files: + class: Collection + collection_type: list + elements: + - class: File + identifier: peak2 + path: test-data/peak2.bed + - class: File + identifier: peak1 + path: test-data/peak1.bed + BAM or CRAM files: + class: Collection + collection_type: list + elements: + - class: File + identifier: sample2 + path: test-data/sample2.bam + - class: File + identifier: sample1 + path: test-data/sample1.bam + Reference genome: mm39 + outputs: + correlation plot: + path: test-data/correlation plot.png + deeptool raw counts: + path: test-data/deeptool raw counts.tabular + sort: true + deeptools coverage matrix: + path: test-data/deeptools coverage matrix.deeptools_coverage_matrix + compare: sim_size diff --git a/workflows/epigenetics/correlation-of-samples-on-peaks/correlation-of-samples-on-peaks.ga b/workflows/epigenetics/correlation-of-samples-on-peaks/correlation-of-samples-on-peaks.ga new file mode 100644 index 0000000000..576e7448a1 --- /dev/null +++ b/workflows/epigenetics/correlation-of-samples-on-peaks/correlation-of-samples-on-peaks.ga @@ -0,0 +1,377 @@ +{ + "a_galaxy_workflow": "true", + "annotation": "Takes a list of peak files, sorts and merges them using bedtools. Then it counts the number of reads per regions for each BAM files, calculates their correlation and returns the deeptools raw counts, coverage matrix and the correlation plot.", + "comments": [], + "creator": [ + { + "class": "Person", + "identifier": "https://orcid.org/0000-0002-1964-4960", + "name": "Lucille Delisle" + }, + { + "class": "Person", + "identifier": "https://orcid.org/0000-0002-1228-0308", + "name": "Alexandre Mayran" + }, + { + "class": "Person", + "identifier": "https://orcid.org/0009-0003-9444-3944", + "name": "Olusegun E. Adebayo" + } + ], + "format-version": "0.1", + "license": "MIT", + "release":"0.1", + "name": "correlation of samples on peaks", + "readme": "# correlation of samples on peaks:\n\n## Inputs dataset\n\n- A list of peak files.\n- Sample BAM files\n\n## Inputs values\n\n- Perentage of bad quality bases per read: fastp will discard any read which has more than this percentage of bases with a quality below 30. This depends on your read length.\n- Reference genome: this field will be adapted to the genomes available for bowtie2 and the genomes available for bedtools slopbed (dbkeys table)\n\n## Processing\n\n- The workflow will concatenate the list of peak files given as input\n- Sort and merge them using deeptools.\n- Calculates the number of reads per region for each BAM file.\n- Sorts and merges the BAM files by Chromosome and other citerials defined using `bedtools sortBED` and `bedtools mergeBED`, respectively.\n- Computes the read coverages for the sorted and merged list of genomic region present in the bed files using `multiBamSummary`.\n- Calculate and visualize pairwise correlation values between the read coverages using the tool `plotCorrelation`.\n- The workflow produces two outputs:\n - a compressed numpy array containing the raw count of the read coverages (i.e., the output of `multiBamSummary`) in .npz format\n - a plot of pairwise correlation values between the read coverages (i.e., the output of `plotCorrelation`).\n\n### Warning\n\n- The `reference_genome` parameter value is used to select references in bowtie2 and bedtools slopbed. Only references that are present in bowtie2 **and** bedtools slopbed are selectable. If your favorite reference genome is not available ask your administrator to make sure that each bowtie2 reference has a corresponding len file for use in bedtools slopbed.", + "report": { + "markdown": "\n# Workflow Execution Report\n\n## Workflow Inputs\n```galaxy\ninvocation_inputs()\n```\n\n## Workflow Outputs\n```galaxy\ninvocation_outputs()\n```\n\n## Workflow\n```galaxy\nworkflow_display()\n```\n" + }, + "steps": { + "0": { + "annotation": "Here we are taking a collection of all peak files you which to use.", + "content_id": null, + "errors": null, + "id": 0, + "input_connections": {}, + "inputs": [ + { + "description": "Here we are taking a collection of all peak files you which to use.", + "name": "Collection of peak files" + } + ], + "label": "Collection of peak files", + "name": "Input dataset collection", + "outputs": [], + "position": { + "left": 0, + "top": 4.906208594894025 + }, + "tool_id": null, + "tool_state": "{\"optional\": false, \"format\": [\"bed\", \"encodepeak\"], \"tag\": null, \"collection_type\": \"list\", \"fields\": null, \"column_definitions\": null}", + "tool_version": null, + "type": "data_collection_input", + "uuid": "798ed613-1dcd-46b1-99b6-1881dc6ae68e", + "when": null, + "workflow_outputs": [] + }, + "1": { + "annotation": "Select reference genome of your choice", + "content_id": null, + "errors": null, + "id": 1, + "input_connections": {}, + "inputs": [ + { + "description": "Select reference genome of your choice", + "name": "Reference genome" + } + ], + "label": "Reference genome", + "name": "Input parameter", + "outputs": [], + "position": { + "left": 0.9320604717288035, + "top": 114.05922959764115 + }, + "tool_id": null, + "tool_state": "{\"multiple\": false, \"validators\": [], \"restrictOnConnections\": true, \"parameter_type\": \"text\", \"optional\": false}", + "tool_version": null, + "type": "parameter_input", + "uuid": "06dee00a-a02e-47d8-aff9-5ef58d0519a9", + "when": null, + "workflow_outputs": [] + }, + "2": { + "annotation": "This takes the BAM /CRAM formated peak files ", + "content_id": null, + "errors": null, + "id": 2, + "input_connections": {}, + "inputs": [ + { + "description": "This takes the BAM /CRAM formated peak files ", + "name": "BAM or CRAM files" + } + ], + "label": "BAM or CRAM files", + "name": "Input dataset collection", + "outputs": [], + "position": { + "left": 3.3762628479699686, + "top": 253.99402266636798 + }, + "tool_id": null, + "tool_state": "{\"optional\": false, \"tag\": \"\", \"collection_type\": \"list\", \"fields\": null, \"column_definitions\": null}", + "tool_version": null, + "type": "data_collection_input", + "uuid": "f772380f-1b20-45f8-b0f2-5f4a2c0238a2", + "when": null, + "workflow_outputs": [] + }, + "3": { + "annotation": "This step concatenate multiple datasets into one", + "content_id": "toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_cat/9.5+galaxy3", + "errors": null, + "id": 3, + "input_connections": { + "inputs": { + "id": 0, + "output_name": "output" + } + }, + "inputs": [], + "label": "Concatenate all files into one", + "name": "Concatenate datasets", + "outputs": [ + { + "name": "out_file1", + "type": "input" + } + ], + "position": { + "left": 306.7937026785099, + "top": 3.3977051244017105 + }, + "post_job_actions": { + "HideDatasetActionout_file1": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "out_file1" + } + }, + "tool_id": "toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_cat/9.5+galaxy3", + "tool_shed_repository": { + "changeset_revision": "ab83aa685821", + "name": "text_processing", + "owner": "bgruening", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"inputs\": {\"__class__\": \"ConnectedValue\"}, \"queries\": [], \"__page__\": 0, \"__rerun_remap_job_id__\": null}", + "tool_uuid": null, + "tool_version": "9.5+galaxy3", + "type": "tool", + "uuid": "90edcb8c-3655-4f44-b55e-3c1d80edb0f5", + "when": null, + "workflow_outputs": [] + }, + "4": { + "annotation": "This sorts the bed files by choses rules", + "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/bedtools/bedtools_sortbed/2.31.1+galaxy0", + "errors": null, + "id": 4, + "input_connections": { + "genome_file_opts|genome": { + "id": 1, + "output_name": "output" + }, + "input": { + "id": 3, + "output_name": "out_file1" + } + }, + "inputs": [ + { + "description": "runtime parameter for tool bedtools SortBED", + "name": "genome_file_opts" + } + ], + "label": "Sort bed files", + "name": "bedtools SortBED", + "outputs": [ + { + "name": "output", + "type": "input" + } + ], + "position": { + "left": 605.0864927261093, + "top": 0 + }, + "post_job_actions": { + "HideDatasetActionoutput": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "output" + } + }, + "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/bedtools/bedtools_sortbed/2.31.1+galaxy0", + "tool_shed_repository": { + "changeset_revision": "2892111d91f8", + "name": "bedtools", + "owner": "iuc", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"genome_file_opts\": {\"genome_file_opts_selector\": \"loc\", \"__current_case__\": 0, \"genome\": {\"__class__\": \"ConnectedValue\"}}, \"input\": {\"__class__\": \"ConnectedValue\"}, \"option\": \"\", \"__page__\": 0, \"__rerun_remap_job_id__\": null}", + "tool_uuid": null, + "tool_version": "2.31.1+galaxy0", + "type": "tool", + "uuid": "870344a2-a7ee-491f-a0e8-ffb4bb722092", + "when": null, + "workflow_outputs": [] + }, + "5": { + "annotation": "Merges with the sorted bed file", + "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/bedtools/bedtools_mergebed/2.31.1+galaxy2", + "errors": null, + "id": 5, + "input_connections": { + "input": { + "id": 4, + "output_name": "output" + } + }, + "inputs": [], + "label": "Merge bed file", + "name": "bedtools MergeBED", + "outputs": [ + { + "name": "output", + "type": "bed" + } + ], + "position": { + "left": 902.4818556497356, + "top": 4.474324538251267 + }, + "post_job_actions": { + "HideDatasetActionoutput": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "output" + } + }, + "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/bedtools/bedtools_mergebed/2.31.1+galaxy2", + "tool_shed_repository": { + "changeset_revision": "2892111d91f8", + "name": "bedtools", + "owner": "iuc", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"c_and_o_argument_repeat\": [], \"distance\": \"0\", \"header\": false, \"input\": {\"__class__\": \"ConnectedValue\"}, \"strand\": \"\", \"__page__\": 0, \"__rerun_remap_job_id__\": null}", + "tool_uuid": null, + "tool_version": "2.31.1+galaxy2", + "type": "tool", + "uuid": "fa82b514-9304-4c7c-b847-8e3f98d9e9b0", + "when": null, + "workflow_outputs": [] + }, + "6": { + "annotation": "", + "content_id": "toolshed.g2.bx.psu.edu/repos/bgruening/deeptools_multi_bam_summary/deeptools_multi_bam_summary/3.5.2+galaxy0", + "errors": null, + "id": 6, + "input_connections": { + "mode|region_file": { + "id": 5, + "output_name": "output" + }, + "multibam_conditional|bamfiles": { + "id": 2, + "output_name": "output" + } + }, + "inputs": [ + { + "description": "runtime parameter for tool multiBamSummary", + "name": "mode" + }, + { + "description": "runtime parameter for tool multiBamSummary", + "name": "multibam_conditional" + } + ], + "label": "multiBam summary", + "name": "multiBamSummary", + "outputs": [ + { + "name": "outFile", + "type": "deeptools_coverage_matrix" + }, + { + "name": "outFileRawCounts", + "type": "tabular" + } + ], + "position": { + "left": 1201.677284108745, + "top": 1.3972221596870895 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/bgruening/deeptools_multi_bam_summary/deeptools_multi_bam_summary/3.5.2+galaxy0", + "tool_shed_repository": { + "changeset_revision": "1fcb7adc39b8", + "name": "deeptools_multi_bam_summary", + "owner": "bgruening", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"__input_ext\": \"input\", \"advancedOpt\": {\"showAdvancedOpt\": \"no\", \"__current_case__\": 0}, \"chromInfo\": \"/data/galaxy/galaxy/var/tool-data/mm10_UCSC/len/mm10_UCSC.len\", \"custom_sample_labels_conditional\": {\"custom_labels_select\": \"No\", \"__current_case__\": 0}, \"mode\": {\"modeOpt\": \"BED-file\", \"__current_case__\": 1, \"region_file\": {\"__class__\": \"ConnectedValue\"}}, \"multibam_conditional\": {\"orderMatters\": \"No\", \"__current_case__\": 0, \"bamfiles\": {\"__class__\": \"ConnectedValue\"}}, \"outRawCounts\": true, \"region\": \"\", \"scalingFactors\": false, \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_uuid": null, + "tool_version": "3.5.2+galaxy0", + "type": "tool", + "uuid": "6486b3e8-5e36-4678-970e-f65cd3213f36", + "when": null, + "workflow_outputs": [ + { + "label": "deeptools coverage matrix", + "output_name": "outFile", + "uuid": "91131b1a-2471-4e71-8013-688bb48cda8c" + }, + { + "label": "deeptool raw counts", + "output_name": "outFileRawCounts", + "uuid": "1102d9c7-0b87-4388-bca5-dea638d35ad3" + } + ] + }, + "7": { + "annotation": "", + "content_id": "toolshed.g2.bx.psu.edu/repos/bgruening/deeptools_plot_correlation/deeptools_plot_correlation/3.5.2+galaxy0", + "errors": null, + "id": 7, + "input_connections": { + "corData": { + "id": 6, + "output_name": "outFile" + } + }, + "inputs": [], + "label": "Plot correlation", + "name": "plotCorrelation", + "outputs": [ + { + "name": "outFileName", + "type": "png" + } + ], + "position": { + "left": 1504.6919348478332, + "top": 5.764769589732765 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/bgruening/deeptools_plot_correlation/deeptools_plot_correlation/3.5.2+galaxy0", + "tool_shed_repository": { + "changeset_revision": "2c66e43f1c86", + "name": "deeptools_plot_correlation", + "owner": "bgruening", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"corData\": {\"__class__\": \"ConnectedValue\"}, \"corMethod\": \"spearman\", \"outFileCorMatrix\": false, \"outFileFormat\": \"png\", \"plotting_type\": {\"whatToPlot\": \"heatmap\", \"__current_case__\": 0, \"zMin\": \"\", \"zMax\": \"\", \"colorMap\": \"RdYlBu\", \"plotTitle\": \"\", \"plotNumbers\": true, \"plotHeight\": \"9.5\", \"plotWidth\": \"11.0\"}, \"removeOutliers\": false, \"skipZeros\": false, \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_uuid": null, + "tool_version": "3.5.2+galaxy0", + "type": "tool", + "uuid": "43017614-cf22-453a-830c-098c2e3d0e4d", + "when": null, + "workflow_outputs": [ + { + "label": "correlation plot", + "output_name": "outFileName", + "uuid": "5a847bf5-94fa-446a-b1fc-558a02fd8138" + } + ] + } + }, + "tags": [], + "uuid": "82eb76a0-004f-4780-9e38-868d13d66b6c", + "version": 35 +} \ No newline at end of file diff --git a/workflows/epigenetics/correlation-of-samples-on-peaks/test-data/correlation plot.png b/workflows/epigenetics/correlation-of-samples-on-peaks/test-data/correlation plot.png new file mode 100644 index 0000000000000000000000000000000000000000..9e84f75d31d8b499ad3adc811d0f6f2de67ff441 GIT binary patch literal 22585 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 literal 0 HcmV?d00001 diff --git a/workflows/epigenetics/correlation-of-samples-on-peaks/test-data/deeptool raw counts.tabular b/workflows/epigenetics/correlation-of-samples-on-peaks/test-data/deeptool raw counts.tabular new file mode 100644 index 0000000000..893e03e45a --- /dev/null +++ b/workflows/epigenetics/correlation-of-samples-on-peaks/test-data/deeptool raw counts.tabular @@ -0,0 +1,21 @@ +#'chr' 'start' 'end' 'sample2' 'sample1' +chr19 104000 106000 3.0 7.0 +chr19 114000 116000 4.0 11.0 +chr19 124000 126000 1.0 1.0 +chr19 134000 136000 8.0 8.0 +chr19 144000 146000 9.0 16.0 +chr19 154000 156000 2.0 1.0 +chr19 164000 166000 20.0 20.0 +chr19 174000 176000 2.0 6.0 +chr19 184000 186000 3.0 2.0 +chr19 194000 196000 2.0 10.0 +chr19 4000 6000 7.0 5.0 +chr19 14000 16000 4.0 1.0 +chr19 24000 26000 21.0 19.0 +chr19 34000 36000 7.0 6.0 +chr19 44000 46000 2.0 1.0 +chr19 54000 56000 1.0 0.0 +chr19 64000 66000 10.0 10.0 +chr19 74000 76000 2.0 4.0 +chr19 84000 86000 11.0 5.0 +chr19 94000 96000 3.0 4.0 diff --git a/workflows/epigenetics/correlation-of-samples-on-peaks/test-data/deeptools coverage matrix.deeptools_coverage_matrix b/workflows/epigenetics/correlation-of-samples-on-peaks/test-data/deeptools coverage matrix.deeptools_coverage_matrix new file mode 100644 index 0000000000000000000000000000000000000000..86f431b262e708f24f8804b276849f8f3ad9b550 GIT binary patch literal 489 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

%DWVy@X^4UbL31wXGD@ zKJf0DkYk^0sg+F3LP+SAJr{wVc;WQ_`hS{W7{}YOv1D-XJ!ub?d#)W?h`6$Q@I}8o z!S0T_4rlC;Q+MEO9lTg1=@A!B|2glODk+YypSw0G!Bx2{mjar#EzO1hl^Oi={rbIb zf~8o)>{ep;MwY0p%%=W>_e{hbgJr7(-Gy9AR?m%6GfIwSp^fQr@0|$vhR;j2qJ%_- zp&>K}a*{-Tl`S(x2}e_z8bg7U?o_QZvGt;b7g)AmnZh456G>_fP?}J-0!XA(Ft6;~{m}a-ly5j5 zb8ea46=JPWkaNHg2p0_RcYI*N^4&2#?hsnN^f{Ki)WYOTx97Oz3kT~#6R8lP;zgz#uADNs>SXC6(lWC z4S#J0|78DwErnKE1Z+@x$C#u^G+cR0@3p^vxSM9QjtB0TbCv9&gx=Ls&#fOd8NQeP z*&m!a{gLnhS`pCXwZ_64EGTe;mDc$OKRBWLXCvl>%9s7Rs+6UM=;8pHWMOXM{r`C; z+Z~lvZjv|)){Lc-m}+b_tStKH-^Vgeq*A#wck42 zrE`y&AsIU{Lmq@u}3y)D~}h`M<#-f zF{nwdy-R_DT1jhj!7LW)$`ZDZ%#^jqKA5c0xpGR{J442bol^9;knX&572>cTEeoEWXtOqX-=EiM@TxBUKu*Bzq+L>)!gyHUlM z*h#w;T8Vk?|LBD7jrEh%bGGczW3m=1ag$IatWYganSkG`9!NH_+|6=Q2`Yx-@u&rW zcUn3=I>U9G49lCXWfkZ>C!;Dg5=pj|T}(GVHo^0qjmoN%q*&BhWAo^(7onQNg80w- z*p%j9;b(3^FiXUYrLqIEa*n#7djH#m_$Sv-$LSX;xh9MaLU)OcT5FsZn#um!#}0S2 z44x^QqEyczT#gGjD9NgXyudX4_=NDc2fURSKqy-Z6_`Up(hv+6tbVxm@N18J!ZQze zok4Lkg^Hn*5^_-z=5CH@g=cEl9)9iq1Ni$_E@8`$&kUi`$ z{H?R0c|Ar~X~3ycXrUT|YTAhCkWw zprf1=y`=~qG?f5_Gv&6R_dj_D{%#{%V-Hv=p?8*&B{y%G6SvZl77qWB4?hfla=L#r zJ_<*)0@ZTloEXgvdBN)5{G=JHyMMm8K>W$W36m8qeZ}Mcy-%JnJNvO6lAMV< zry50aHf4)|xR7W+`BM(VpN?70;+C`KRgX>!FW0{P9nR*;A<$BVqv* zG*E(!F~drtb7KPj_K3C$W(E-N7OOH+H&Fv#S%LRg9x-wFBh$!Emn)H?T;6(0?rMow z0*)WMZ{q5o4|tCxUkIn-PT1k!@p|JeOAcmLM@?&lO5Gio={=0SSPWySFPu}2<; zzqq(c^kU$qLJ*W<>m^I9m|b;&VtVtZPDC7I51a;L&DL@ajYCuoSt*sa&_4dRK5gRT zpPdZVXZIEhX68iCiwm`cvfabaZZYhgz9MguczNL{d#iMcv(1&fK&LPh^2FcWWH-F=K16E-r| zq`3=wlhADC8QW*#RHirLUGbVbKu)S5;TyKB$sNo zP}F_Xqb3sFv#}+>s2BjI;#Q(H50G1=qo$Vj_+K0*j{jstyu>kSD5VFr7IO_$s98T| zLB^d$h~cpEo$m=wXbLFG?nP^Yk`j2Ml_y62#-k_v-q3x|8Y+2qL(@b7s^k)TUMQ)* z>d`Yn*Jx-+*r{XEo;|Q_9Rfz zvw2T!39^-{QWpHqjW|QGjk01b)QHepPE{^5&4L2Fa{6B%53AnU*a+6ES@MkTnKctP zjv#8VknO!cP8goCog}ly)Ou)az0}|-hn`hd7BOD`%n71n@GM2dN=>am!=eFWNmv8R zg4uuEXU({sv3I(Zj-AOUB{GY^As{wc8Q46T!ykJvTMi{w)e>Uj+*0*gap{SZKQV)U zeT*%+<=O&zRF)E}2MAKFrX$?`e+6}^KLd~)0>3cVe`Kpv16- zVJ)mDPZ9f#hWX}h2mE`rGlj{5`c=hzz#5cOEH!sDW;o)?=3?^FOQ+tZl5L;)C^Fajv9l(lj zfiU>lsVEQ%Ur!rHIv|lgXkYJHqpugI|B@@=%p^J4;&(UT^@8N&WH4rvTKtYgUAKYL z#F78vz-cR;f$rzOd_+XpqGct?nqEixC^;J|Twkl9VJ$sUh;{6T`-lE@S6FK(f|wEy zFX4^aq*+h8>e1aP<25&C2fU-Hhee37g6*%Nv~Q8c(%#)E8uc~)1N!JF`j+BtT^ts@ zTlzPpVuOmotM$D58nJR{OE6=P4h|<*3wc~Q{YUW~F%tAg+K1Y%!@)sj#d4@0lB~0t zNt~;iPpH_%Y?S5FKX4=O@}%DnbpLQfCaHs$!lZ2NAedZkg8L1)3o`BKkvd#eS7Q)+ z3iAKHdl~)EO()|2QYFJimd}R%WS#{*D>i^R=>r)9eWQ1XrcSUS#fVjRbN3_K5$|Df zF|IPAA1w1T>+=yg7FQ+(;q! zh#xL4IR45BtTy~d^y5_&A76SgcOBY;VY%q4cFl;29Zcw4@Zy7qT3vMdd_)>jlo;fG zad4dRTU~HV7hLG;UzQlZof9GDhNguB@sR4{wZ#cIxKzWFDv2LflYxmQwP!aZTT(>v zhpS>)2TVuuF#44e9rmS8?N0`4D4&xbP%r%#%%We8`Z?H0)9WrV ze)!*Gj&s^rQkrlry5H25opNFL^Zn@GZJURTp5t34FUbtuAn`awW7=n7wdg?vMD7Lw z>u6{jedVD|q$FiTms=>=RPQ2@0_zx0ft z`?#cmr(B8y_Sj_uX2;X&ZAFw@zj(1vKlpQ?acB$Y92ABW&er2`{b5bXW#PP$PFkRP z@75vtzfOXd z??azY!2RfIsGwng^jedOdd1gElS?n6bCN>F1jJ-}nI5+yn|A+mf=u@5Mu$or6$3XP zxE*o;y@1zF=R=ILVVtq?`tLC1z)Gu1f@)-J95fTQ1QuenkpPMIXBso z>+T{w=(40nRcGPV7Dbz-h&r3$g^UqRQcZmZUGm{wORz=DNy z)}gH}@ovk?^t}6jTPDqYD8u&+qghqp0uUo(@&da-`F))w^UH~!@It$zgrn;XEy0JI zQiqm4Yw(3rCY9%W!lZh8xm+PCzuW^K#uq|B&3+I6Y@{>5c6#=l6AF|@n%{TF#kjvy z3qdrXhP{nD6xE;Q+4vfMVlG^n2a$W=9;+op?5%0#uQEeb$P-{3GG9+`;SU{~Lx_zd zO!#~Pr2Tzew+c>}$5Ke~4S~FjLjPxidxeZua^h13YeV993O@CSh%)yeKQ@e3lJGp8>Vex`uST1>PLy z)2$Q}h9W(OvZ+@dlID1~MyXAi*6;5X?VTsu2bA~?9-@uNv@i1jx!lD@h6ON>DoEzJtA5v27z>g9^qf17o5-HOq z3S2}goZ^qBD_9_Zvd#~!F6|Ntb6~M1KSsjxNJ%+vNR$^Mn-l)8t(r|T( zZ&|DOvP}k4rneU!nK!^@O_e@ z33xxW$8q(OJLJ7x3p)@{)`R&Bc8`0Y?*1R8uE+X*3`=YZRjAUwr~MU{hSm{V0J(dA z>=KJu@6cP7wRqlVnA5M^az96ZY7422b&1MolCd89hS-KQI@HV;pt>JTVSSG=T%(^R z5!NZKR0IyffL3qLHtFx^E&3JsRP4Jj_ctnYndHT=!>T8tIDe6`)QB~du2HfHqGZ8L zT6M38G7=~_Ky3wu`r;wSAvL&l-)h^ElH?;N2~u?V?_^ufmed!M92cizwHvMFUa%?) zv*<+N8&c7Y)vjWJn!{*gUu)xg)Ws^73?KPrAUXvfke~zin+w%5B_X-6y<(BsdTGx- zr}>+kh=VEg{cjeQ1UdmRBfpO-b0;Sz0KjwNaJ7chebBv>gv+H1JwX<%We!Wb=Sz3} zw_QPNrZG^h`tth8SL2KTz_HBg7s|e;jY?;9^KQZ?7pTEJ?`)(Gg2hkanhZ=`RQ#X$ zOwmY~G-5liOL5;N*!8HoBtAd%RmN<%Z*}8@#u-{Bt!C0JJ_-ejg+1%YTB*nk-UIGjnnVK~8 z!B;Alf>W>!o96x-{ax}V-=q)TPJ*7WrHg=q`Anw*9AvsvOKFPY-`~%K5h8}AEY(vj z0sLj}reEh&BW2_b0V$u1+#pa}yjzH?@nVO|NatYH>QuU$Y@^LrYAbXef(d;zm$Ebb zu0+I=k-bnxEQwejAa|NwE>K&~; zR#!K^VOktjo{{;b6%0_-(O_ z(!Qs|VZUY-uiWlV;hs{5g@Ed3n=8mv%7rYd1^tQA_)59OI~n~J&&EL>fJ+W$>Nx{o zAH&}!JmD>4jR3~046&6}uFlGjEJdlj^x4{~lz_eH4dA-%Nz?^TO_hu8voI%p{5M}X zk|A{|W_^;55woi!CL!@ga(ZxEr9p4D#U74nArL}SMK@2Z(4!_?3SAz{ zpgYDTEYSB|g04#cQNheH^P1kJPfz@U?h^d}#t#jxj;7Ld!uDMIBr?js; za*e6EzQT6&P~iB(Dp&d^7zW(t@bNX?U0xxL8*9>Y`J!b=T0ux{8VQD<4#`y^em0_ZG72T1V{jNe;(g?cb)W zBaNZr1G^%UayCr#;Z5F;n+6(RHvdlHbHv#%7KoX#CzZ3+FnWzDLk-1e&K+}1S~m1> zb*r}HIsPuU$N=D?u~7##x<5G{lmu)m!Mb5u4w{vt$+emq9SP_eiJLNNy#^B9BnK{~ zCEuCnHm+aXd*J@4-D7v*ny&Brt43+>ocg|rKIzU+0vLq1=RuiA;7gEtHT%C|K~W0M zlVBfL4xCvM-_iIqh`@v)@;#9G^~J07e;)wFoW(6B51A6ZKF=>=6t6@J#$eBE-HzFb zs3_pWKI^WRwg~CoI3gn=?Z`=uX{z%|*VP`>#pp6UW$D{Dgq#QKCW_Gx+}fUq4sUe< zv}epY{i}CZb8q@NUBsUUQ+-Bpn6%3wObTLt2|C#0f*Yxb2c_NPSdr>cXzJQk%{k%r zKpd(5Vk#49Co6EQ^qv6=o#WYD zvkeBnl<^Ap`O*9n7H~m*vS;4zVeM6@N)LxNa7Y9?p|IcAhlluC@1Bq!P%gCz#Zc6D(7NS>n zMZ^rp4c)-N8)U#HaS=pkTB0#j;6Q|3$8N4Nft7U351{G0LV*oyg^edFsz!+lZir@b5zcj}( z6ez2<>oUDNm$-@8@^(vk|GF=ND7N_b2U_F4J%*7nJ=9flvLg2xBY&Hl^?3~BpJ*(- zzD)^x$>*przGKG6X!;pbCv|uc#3167;!pbOf3(jJFj2OvM^_HgNC&+If{BQKPp-%} zQYf?YS`~m!XHEUSo$v9%T#3~k1y+<@iHE{UK7Pn~38%p1gidyQ6v?g-yP1QRO9VYts} zpDw1q&o3vu!s)z+e(yU=06BVySp52vB;pCTRvy-^M%cU<(aX1M`HuyK=hZC1c;ty1_`zOTU))((Y zWQ`)d;0PlmD~dL2{cLHW{u|i-g!74{%HJ@$O~=Swy zbuY03C*zuX@=u<&&wVU+ofBMhN#3!+C8mwYapuz`lCRnr96NgBk`vx1OS?S&ect`R z6)wqHZrAyq{af!%56c%buZHKsO^W5ekkA*k^lhpx`*6s7<3erI*_k2xsW?02!0wva%D>SYIwh zro3GW-nmzi^38sT=@acC+5R|EuznD$V}=$BFw1CJtA$(f5a~t;zm8U~zxk{`i)VG zt*St#9#lh~I5Eif(2|yBQ5@IiozXGY>j9P4@LH4}Mq+UO8k)kP`&Qjj_m3ziaCnK@ zU*Gg5218!H_Db2QJ?``zP&Ml=b4GojFA55a;2J<3qVqPl@?3K6x4e|i6~nb`+X`^+ zL&GGSA?Q2ea~>DtK@?$L`io$JMTsgFnlk|_ggPM0b(!hjDAj{TheqMmmsZ7mU|s=- zUvn*nN&Gk%6MW~4Zx|}CFFQ~yBb#MHoeNVz9W&f;9JE^}RcMpa_vjmx5gBG^2mXah z1U%qvX9%u`tjBTMZZZ|<{w)ZWH9ZxU0%G_@v)eS*&P#g5eOSTfFDF7_>fX_02;w!m zj+BJeNWXc19n3ab5R5&Hp_$hb6}z4u{`{62S=mdR(IjRc_c+wX6FMJnmfQXIN`lz~ zuO$uI%#~`ROzwsxyKB*L^rj$3yQG?;Qhjw*9M?_~z(@)u4!jc^HD+@;`*(S7+QtFr z4bRg>->}>Bto{s;`{5XFo&f!4|LT&T_A@3C=e^T;&{oB3$hC8*VIZ-sXZDZD>coG> zuP9JSaPhInWgp^6*q%W9qQ<+Y1F2glEl<$yP%k=^MF^sIlGS-4Uv^Kkg!<6hoNGSj zyJP>blmut_56Rb@ZWPGUjGSoYa=76^MZ7wx?G!{B5=geA+(I~vN z!J7$-PlaB!i&2aVLNvKby_}lJ{X78~GWu=>5!d%1M9b)E^9vhlyAPiUjE312z!lmC zZq0dT_hNLp$J4e7DmjVfniifXpD84%rwDmaj}nED*7nY`AF^z(iV_7V?3xnv-CDY= zNKkRkkAlm4eId4$D{uWnL}yBPw5fK*yjzwd4*u!j14RYd%vS*r18LoG9q2wiP<2b{&guuyeE2Uzg{EXY{co$L zf$v@I!={9dkC@N1RF{2G8JkG2qj&z*L<@K~pk{2;#)Oi{5a+?bm*3yK0Cl_xI5%h@ zMrO3R4mx!DnfQ{d^GT^Z@~{f4lSB$-rRZf&Yb0CS$^VXf5X}FgY5l(rv+LaJ2|1Po z36#5H!)K(B8SSkTSo^17dzL2?4~JOKcUKbBt?nE#?VmT|%Jq`H#p(a;=_fvdBN#>f zE}x@r_bG2ZGKDfm+kc4NYFtzVTC>eXNOeR!E-zm!GLKFi8ttw7rL1-HWw=nsXkdRq}9CqvL=kuny^i7Scnh?XL-aa9Fd}Ta8_| zIIDPq6(_-JE#1@!)M?%#^SzOE{p@G_lMjAN={f`jTGwIE?iD+ivCu*H<3efkvn3-F z^4iw1x;E4;@jFs$=n2UOXUej9)*;zNmFfwOc#)mhut-E+$1*Vr-U9aGeZdC!m|on#AoCgGh3@^>T$&Dt?Lq6FgANbOghCURHw@8eh!Bt6du z_#lo(KfW5Y^Lt%pOwrUC;IIRfu3h~+`=^)v_vj4>D}$&;l?3urpB?~y=Z^ax2|q0E zGi|u1Ze=)3G!bgKYWkH_t}%AZyWdQY9@v^?{1Fum!!C~2Av1VI^SF!%q(hygZZb@_ zs}t)flygOdZ(S*bll(+hBLWjU@CrItxfynXq%W(q0YV4l9*PM>$M1wyf64#(#f0o*cyL^lg%uaOb&) zo3K~W(*-I8T&c@_V8E!eNTR`K#(3k(_%$WVmc~rLt2tLVrsVf>S5PPtp%?R}=Fp9> zN=Ts`fuHrXzwcPSI~$Cr=@j~Ra-b0ZwS`+-&*Umr;$~U7i$=Ur@Fd-&GCyvSsg&E3 zGT;jI&G-h=;LQ|t6q3(-woN*|ee{{zN*M8dkJ!f}i;B^J<=1*Ot}JrGro!5uZvh0x z5R8BKxNrE11bA~+vNFNUQ^7|P0bPBYBJepYyWJPX<%Su`uYao1yab4pW>EvJT!+s- zY04vY-Sj!6@jD${JMxiIXMNs#kE1(9>eh}?2k*$~`|8XJ!X$^rAL{6PeO?;;$&T;s zbjTSXFFve#2WUX&h^?tZG%8tX$274>nKNb!eCJbm@9`MnnnsIcPQPaIk)nn1xgWwm zI_9_q-PYbmN-RE(uCu?xEuPc(T$C{syI-HU?!TmX@*cRnK$iL>|H*~RM|Pcm=JeFT zIeE7O5{p;u%YR=q9O3TqhV^TIVEt0-<-Gd??ZJ38F=&|}b-&Jhg7Q9$va$X>#-@Qy z@hiqL3ot!}-pe4#!L-{h;yEi8vboRAKTUY>elAZ{D)>v)kt;QgNzzATD48wSqX=$Z zK!^^a^xuJ3#k#Tniwpd_2~7KI01DKP4WANDPML@`dJ#Izk%o9cbU(~sUoa-_wg83e zgp`Y-sw|>sGSduIjFLLln=pHXJL<0734G;$T$|)HC_!Gn;^3aA&28G;%rnh4>3rOp zkbI{|&GwV-!RunP>jI+*U-Pf0MJ3}6q!}C9>xg^nl5I)#` zOz82jesPu;IOcvM7O@{S#;jQRvFIg5LTSi`C_O!LUFuGxpAum%q&p`)ev%}2er710rE1V%u21hwTyQqEc%m%GLg%@fA*%OPK0lTAa?T{K3SsrL8^T(tElEu zoQrGyVDSl1uSs^lG^Qo;j6jE{_J3l-GOrzdy5Sw2)-Ci|G%7?{-JA;n4)txMhtNkq zAO$*gJ-kPOZE%!d^94n#>_u4NNzN|f=EkT6$KK4XmFeA6<>zfp<{Zg)wLlc6+q9Hx z!sXPIAS(xCB#KaAN^QvZfj{E>59*S5dL_fkE~g~e6ypX3Jem6Lx2TUM#3OPd-^O$w z8Q#SzQ(B7})B@IZJJy7eJk2Hz_PWJ_%&zp>!0UHo)6^y?yslH>E8B>7u+ZmQ?_U%c z47{YI542Y7=a5<#e%Md78(d_giC@w>D1TYq;K>ER-vO(y6!?yjsMN^-%reS9e0}of z*%BRK@*lb$@B86;ieahuG_lF@r!*S5lHTCGz-v?3iz6onMURA+Uf07pk!CpUn(_vb z0(qB8Kn9ezXR+gO74u?S^hM~RCcd5^7J8lK*w@df)ZC3DTM2(MG~y$hw!U8K)2{uG zV#e_?$156HkLNWe@lzZ{z84d9U6`dn{skK6-cQXR%qUHO2{(RJXtC64&votp70X2x zB=Bih&FVUo3Ne7=MiktLeC|mPzHgS%$*$tf3e;L9EEHxTRS{U4PwNr+!HJ&X54oCvY3X@V&eEpq^PJS&0|hgIrHJaRSU84jBVZauc9A5==g3 zM3huTV;>@TPs;)Rh~KqK$u=SZ5ASVf-@7$@IsS-ub&x_mGFA)SX@Rx3U-2+EWX9+q z_(+|VjZe0|@`{H7b`4ipRRL^I^)6^ZA4=z8kD4Fd4;m$2lv<4z`$L)Kak$FY zE>D<9)ka%lT-DmOI>W;bqWn+>O}uFg(zM^l9ZUQlc)xM z6}+hCuzqF91brAb^)bF4BZ;Xmhis%#9^+czDC~)a~5FM zCQ;haV2mm`j`;payx3k}ZO7#G&y#VMc0@3rIMJMA1ygnkk3D8(&FaZ;P9L8hX_(SX!oYs>!?(jCO3k_;9S5bVB6(Vl;V4)K zHtGQtrIa>_8^x z3~yYLB|0wMOFQ?S>YAuXbI9By0Pb&mm`mS42cziUmK`c|sHS9nyDW>uXo-i!)xfUf z!YxrU7WUL^<_?3Mmnpi@6+Gy6Ox5ml0jVpc%;9TlS}c58Kdo)*j`Z%%b4|lzk4ho% z2)8B7+nQ`SRnC9Bc7<;ryNrFG9N7?Hb)?dG!@Xc%5`rx2^62lA>h!bhD5cI1FZr%!Ma+mR+e-rhNx+0>KS1}-Cy5<^$IE(OcUr5kYai5|)DcA75K2n|+;rGsa*bRUapN~U$)7n#9ME%V(HN~_n z5B2~lak~L%%rW)!0WW$LJPLpK94(cTCh8arxS|dbQe%%|M%ce+pB(TyI3QlnB`A2?ZZyd^WY(0IXskMnMUcMHeoVk5%G zw;c&y#+NrSRHe%NOgt5;+X6aIz!W@7;@ry5dt$juMwWP=l^%K>up`&=Zl$C=&-XTY zeCygIl4Ih` zn-Fzb7v%Rw?96FQ&d@VRlQeaV1~jgIw1(P2y!c14r&}O@8P7FXjLq%o{y6l%{{?w> zp5in$N-N9B@4ud^<0_upXYp}E|7%7FJR37mXUF%>_UvG`8c@g+fYL+9Y)<*?I$1(lff<}y z0!D04ov(8n);uK6KlHC7T&^B)Ln0_07s@uePd6)|2#mZxT${umsuCva z|C2&B1-ewk+?LZQ|Lj1Op+2L5aeQE^=5Smvf zd)$1gTCurKX~%}PVWR@tMKlKs-SHfImuw;bM)>t`=U|BOqx|n5{1^Ev<7g)E-fE6- zR4*wPZd<~R*OU9>yYm=!aM_#R<9*BMe*ND{$4-8m*<}}UHC_dkbDWD>`%xoIR{q%s z&?iIX#WZ|%n?Uyljny;u_xkvEV*g7MAX^H+|E#A)WBPuaL4p?@BEvfL z^%lpd=H&2aPBkT&BHKH##?g8BK06AIT2cb&D0h7`NufTAuedM5_vgZD5x zy8MA-$;cP`^fS*?pV@iv(qk`j_3Yf$DULH}5_kSo`4|w7zI)Ti=0`v;2Et zee^WGElWtO8-xiEjez=YU@SHZa~kZj(!O7?c?zmO;d7=?b*!QfqJR{LRn@Ztrvf5e zKjKMEQPJ1eIDhX?5Fq0_7gvd2asFNA&@xz7L0{D+^RuW3pgK57x{X-(I_OM=Duh!65s!h}I+1W!kwf@`T?hf9`8KgOx9%9QhR!-&(lqrgX2{fGH{A`5N^|0LVlI0$IPKmI8osh6h<*^D{h|v z=``pxs1C{eg*Cmi73Glp&$tD7z6m_#5!^4b>L&eiX}7-;MXIS6&k%r2_GvL*HrL|~ zNh(pGCne;M^_!ToNkx`zo;K~m1&ir7ln0SWYVeOYr0Gw6ZLE>tk=B6`VrQIm7f@0#- z`gcj_wPC5A$6M?~^D#OOS~U7@Iv(_pWh8`c;|n;LZA+_pt!XyZ zGPbkc*N;9aqgQuze%q<#O#FhgR5Gzx;Z=&8HDEoVk^Z(M4*5x>R7qc{V$RR-qRK5N zC=UBfJ>brL1ELmfo}1Y#zr=%x)&H~Y(Bi}J*wq8PBOYvDC}+WcQX$E;7`dGNwfta+ zyABG$Lpv=ik>geofTy1{eX8rJPDvS#2c3l=^|SlV^_qG_Vl1eztF-d%>;cMXda*TE z7qHfPxv@^20GkGmBKe>_z<(E?v7vue_-4sV`;^t7uTlC3DRNPldkOZKh;h0Y$=aJ) z+p%q|EMk;6KD?e@h5Q8Hf4LOH&6#EtN$d`t^Tmd7(zr@N7_;94iG&(zajuCTtTU-J zCRio!DriJ#w4Z^7OL~sa!+S?WIZ9&*hWad@dB!^p0D#XyP9&)P)YZ-voZzHf<9a+( zwc|f@0NBnK*Q2u*7rJkBRs&zE%sijEvkTZ+vkmu^{V$Ven%3iXKk<4ACihNrSoA8$ ze!wZisA05olRuZj%Qr)b9xTiTIl@PK-i zE9W*v{SW=8#JJYiY$Z0FtGXjuK;xQf*FcJ<$>C2qT;fDVJfeD39uEVf^xlXEg07L_ z!|fNG#=%NE+H1G~_Y>eMtjLe#vC{gRn&a~zk9WnNv^wX0?O{P-uOJvy%__|{aWqi%wPW@e#aDne23F$?ETN4Amy=L4IJ=rvbp4*9rl zU2!v+l`0VrGU&|M?Y3(zgCtMfKMIv^6VEYtII6{BEB%7A2;aT#I_2`f2vcD%`Z5X{ z{KucwR&Fd*Q1xqj-TV4niD;5PE{QnXibA zdHqc<>id5~7v^f;vH4k_!FU}b#r!G0w(?$m8DBg*Cg~Ssm&IqHDn40c$)e(DnCQIg z8HbyDKtB1jefqLD0j!)`?QAqV4-3A#1^f>^BZ}gGTgJVP@%yDv zi#gR5_!7IUe~NMJ35-(bXnCwMzTf>7vvPH`2yxSOoF?4;OglnU&2_AB)1}o$-6qmR2Xcz z)ge{bdRkltwiR#qUu>k9S2KeCGK4_=fU+8fDg}J^oL1P1__USG1%;2X^K^wPc-^j}6rH1=Y$Jw`fxiSZN;hRi&__-E@YVg)B?Yn<4*&G4 z{yzDSHuEW<5FJ;$%H%K9eCx(krD|re%kNOFIK`Ot=({+tAnER4b zx|cQLRB9RH!aJs~@o!yO4fV1Ci&{79hEN$Fvp`RTAFBJ7*8eoBIdzscjxkV_Yfyh4 z6N0)ZhFc$I);0}qce&DNeo=PT92qkHmrum^bR>LfzUBlw4aZ!Y^|zE`i{t*DR*S1)Ytgf)nCXc zXY?bp2rkv+OL3!1oC8y61SW_iJ6;~jR|YT06hu;#Y2L|Z-xflf<*rFMZi+>`g3JR? z_jH?rsp$Z#6nR(k-p_80u-~Tq9Q3#(C8=|f_(wV!MmTN+tBbfdihir`3m5DgB`cB< z7jf-K?1 z0(%Z`A~B{XBl1nF?m2pXi%X`se4m|QfHzX2>$2q%zDjV1%@--EwQv0s>xT&IV((_H zXZSp44){MG$bj!Q)i(NUU@RQu2cgWC|jFJu4e#34yo-P}!*`q+wdaw=WbGV%8_32~v#qwj8@sr7l6t5vOIlr@DxB~U-jzE%?XxH8TLvv3B` zx>H4H6nN1rk(Pc6H57|+ijqrI8u~TIq&(tDnh`&2ms0TY{jb9RUWr8hVX_f*zLYMR z2g2d-O`dT?77&eUt35<*dQ^ALn?#I@20%Bq&XF0Wf$%}OgaC2zovkw#TNV};*X8dC zD1^#b?)8@A{8+BH_u<_jIYLTAX=jR@GWNBj&gdKKi~?6AfGit~n+9DixZll> zsqvhaJSE!5#(rk_S+F@=ckAHB^eP)0mB)kHzug~I37`qW-7j*$Aq~e8#y(t5Kvxl= zBl0}pgCUAr&_KUCzPgMU=3jzLs{B*NtEbE8^noVhnZ1QlH$Zl5>(KvG{8+ znn~3n`T$2~ZnpW{?;NY_cLE9&ei;;tc^%143{j4ptY1QR9Wl587EAMnyfO!vIsPrt zh<`;za7;jgevPUy=W9*xR>%}W{KH>SCO_}dNUC4Elss$gUmtfhg#~_U#z5VXTUXktRI114} zB^qJ$3dO9$ZmS{+tTO$jy$u*L$xaZhMUcU7;CtVIhrT;jS(aO1_g0=T$p zYD^)_Yj9cahNY}|C1$*v^e8SHWIgG(u8qU%n@7jAep7-0PNrbl52E?tWMzb2KYC^N z7~jv;`0f!)XU5u}i=tPsciGMU;d+xX9xWy5syG1&lPFgBF``*bRd3K*k2D8B(4o7G z&_}U(?v!zWgHo)a7L8~rv#w`r@MXj_=6TKT$czcD;|=a@jJ}&4h<|b`e)1k-zO}r zuwqAM_91~zg?LKv z)I$Y1)bVq$S=mM&NH^H;h$OA?iDPJ!+%Z4+Z0)j~>WC(vGkO z2l8o`(Qm%y4uCfFGS5oS)k=$pMwdyb^4}S-whg)||8qQ7*KQp(fQ^QVNV`u9BdV};kJDZkTZIIxwJ_r@H)%}vm45Vx$ znDjH*%38kt=meQd_M!{^H;ejyFfXhz;z=>IZEaR)FO9dL_7Mj)S<*rQxTskNVnv4 zs1FTCmcyzqRQ5}@k3@|FXmkf&&?oK6wjh_`U42Ji;h%JO4OMUod+5_+M)EIpYluN; zbO+1Iauv7I<)UvhRkk5tvTt*%8&dsYj9$ENvE<-Y!ha$H#pWXcjornnMWchMpA z3Lvn5Z;EC4t5O5) zHNk@5i=rJD;W^?{yIjZ@Dp?wYGctpP!RR-xBUwRB$Iw(iyl?s`h#7D6qRuEMH&P2@#11Q4e|EX zpkXun;|9;m*@=sTQ`1v9;1R6kGT#J1Ohdl2MZDBs{;xGZAOXED;kQ$AZmzcRlh;Vc z(FDBVmQ+b0NWy@0Men&M05^YrbrELqD-=I)Cx0QcApDJK`nHd8wXe>JTW`21s8sCz zSUKO{cjups&Gf$`x5f5Wv(hT&0n3e~@iKpk+(Ig<2ZG1%b3hF&OKkx+eC*?lJpgH^`b+898x_F*fKg+$^UAL%WM_f4lI%g4E5 zg7%5X>+){Ok+Ba#H{iSu#8$oH8c&arHoFdCRs>|Em0DpzMe5Y?9*?ULMifcJUu^<|J#cKuYJzylCJHTS4X@6 zIhOohm#?0t08jG0QqBI4I`=UdRlB(XZ);lpUOASUSbbG)GcZfAtp5XDFL7$5iT$aB z^jFkE{^--_zpcZ;!?#6wi|%)}wrMC>7QffdtLf2?Ego6qhq8@V_fo)asGjEb+*?#t zNL)BlbDA}BRq;zc&I99J8nDr|vfL($>1WdyVusAo4$WEP$ZN@yU6OfFf*J4-PT7R- zd z^(RCmk+tb|=0}RZH>RICEhPaBWgI;DFjMCBGdDhw^N(J+E#n`|v`p*n*(&T{-*5r9 zL6)VW2F#0u^;3RE$UKld{H0Gtch~4BS=&z#HJ0j*^)R%&Mp=Hh?q7yBFXozPFOQs% z7JU3B%O6VzsOHb>#7J9?mQ`c#TaB8YtLH__sSt1%8%kX{_BSEMs#Q{%ZFz`T)C4Iw zhe8H?{{-*eE}2Swzqd7F{z4(2i}SQy!3WoNU*MlC_La)_!2W$xxKqN$FHQeL&IPa! zS%u3lz}a=}!%jQ|Dv*4dE*BKgMmEdW6F#=&A#-c;m?=?;(9rv>R*-2i$G!LNjJTvG zy$g8{^6q$ajEIyPY`Y1SbQZ=9(*Ed1a%Z4yJ6M#bdsnWdND0)aHOcYJ2{zUz9XAmjTnp<%I* z$ipXDiKF_jz_Rg_@yFG!!r$+Nnp^3AOUfHDzqE{At5eV(QpUb$f4I&~2Nq@6)UGOJ z*@J@>`1S8+D06r5p@9#Vt}87wfh9BSMd>4ktr1U*BD&76yAI-jFxWpnhcV*GqWD+k z?BWguWE>Q`7jR$Whw18Otr^lMhEM0U+|53|kE)~)BHoa?+@W_xEbS|R3zB{D%z7%s z#oK|098SYNk0%Vnpx*)Xy=6&noBa8Bo^5O}U?vamQD*(i%c4=NbWT>!N}r_W%SZ<8 z%1&HyyNVElnm^Jjdp(=dXk)DwaMstZ|60)U?e$U(dfmP7*o7y8f(QI7NFOiMlh?5v zK!P4d9mhvrOh}6u65GV}P8*I4isH>w&S;bLqKnXOq$q~7>$yKVFZp*`?6$S`!`ui< zj6XG@dl?z2QDcI&yYKO5LPv{#L^rL!_6!R?S+zwcz?=KGP1-x|mtHG#%yEW{sZj{54TBFE}`FFFqRka^+(SRkG}h_%?WXHg-Y z4Z~G&^}@E$=y8cXnAnOB8bj|-h0?H->t{|471+di3kfk?-1pjtb{8Q=hw5|yKzPQ;EZPI{N;Pt+R}3>-pMtixzjcQd-;##hv05cZcFu+zIYd+}$O( zL!h{8aSKjycSxT6{_Fkte$UA|YtGE<+4sKpHCLTIPG)ML*$+t53c&9YI=0T-Mk8E+ zOA0Ix0NX-O^ZpYOJefzZPI9R3d$#YIJ1l->6pu^i`m|)kIT{Ai2{w2|-vade^Owpn20o!bX-%Wco(Zm^SZQnh>PzvDLvYN1dR- z)@f@92U1Op9KdI#;6+cR^A0Y!#QF<`n%9pE)8A-mP`A4N3;Ry%O7kNYv1+Tc z(B`Gl^9F3!cjp|hdNc6YCBJqlQ-EqH912Q?R)!Fe(Bq+=A2mEMp+6)-m{{yj*;I$| zQ}?lfyWramd_PmHpROlCWgLUqWnD^GT-tx;nn{+m`Z(baqw5yjV+xad+M`@Odj|0* zkTZ!E_~v2(_|^lVjJX2Z6S!B)S*J%mz1r)V(40w{D;N00 zdK>54|FDW&MG8!88sxqo{}n{(!Y+NoVY`a2&;HVl23VWHPFD{L*I*UfM4q4@Y07`O z8ldRti3ICrPRPHfT9KXh@8|LN z)J3Ckj%DKpivg#6LMhYLWU5wr+@su$E+ln&8FQl;J3P4Mt zu#QI?|RS-qfHCnm#&8v;|D`P zOYqjl&^M{TY7k?QRkAp1aPaup{Mgr;iX_6v;Njnj~N!kgd>_(mMdsZjzG4$uz6RX z;}z`X6Tc1SA9>HpIP$H-S?dCi|3gg6@6(Nr#^8hHXA(y9aYlGaw3ZQ-km@Od))yR) zI9qUz-df1(haHO~GumH4pJx6Fb1`$D?22wom%D%vK# z5PB=gL(a)Yr%UltXk`59N79zr6xFsSvCVPpq`)1nN-X_4K_#D`Y5OY{(x?M7w^NM| z*0VC!JK8!j_dhOrf(=C0u9PHW;+v6~Qz);hSA1mCc&ywPD%^!C(q*J+X) zUVMek z;Z|FyytPe1H}9Zr{;$`L;0^&!^PKOT@(Ht^q-~XJaD$I3eo7OKZmNM=mW*!dA6Qk# ztxEdzSEjB~u{vQNo#t_^&DeWxkA7YthEqC_7$1@F^qj}{F)q!+CAx*FiMfDFH>J|0 zZ;SLhk#^h?;1SjzXXf)nDcGz+#omZ?lOFovuwSVy{>5@lGi;mIz`E-Ms$YD8fn%|z&WM{qopK1y8VA(bV1@R-U zSS?1hi(3_+9gw}UYcfYhwI@tF+Q(Wqmsu@@U-S|DqGVqYF883r+0Eh8H zF#JNaTWrLz3@dtnQo3|{**0A74UnpJcVnZQi=Us&l~T97X-c)gh%ke&5U2&{!z}W! z|JpIIS++!3q|kRtpip`_=8y`0DW;&jSTzxY3)tUdC?M|BCMCi%(g~u^^L@RqrJ|je z4p;5^U zCs{MKvqK7--j6aV{+#w-jr(PLvO}t?2FKVO=*Qn8CRy4xBlB0-Osmc9$UPf7KjvpN z|7y&rS&NP)?d>q->rL#Yotdhf+O2hO!rpql;g`QpjU-po>v(5|j3Tr|%*m;-3Tw&2 zYoCWgJuiHq2XX3$_eX&S6hDiqq|Sta@{^lsgjb-K!}I#C@Ip;s@%K^k&kb7>$@wW$ zXO3@O6iR@TFD4D&WYvUdjaSiURiDRZ2FM`c{{?ve$NBF|!g5E<3HGVF=*-s4>u-%B zfZ+`=pYJMr<4;U`L;<&o=82=W28wNY$UUa_&9lY5WsYdB+Q_HynE@Hrre6;|ueTJp z2SY4MGpf9-!dJ7a%Gt4&q-@JMbiUiHQI>kaA9zto@pC~*T6PJvM`*7HheBpbrOj^F zKkR@^!zNVp0_=96^JKf4Ezjd7pvSPxf zK??DV)ZUnI+k@v~oU7T(M1(wCC_a4FUqsXM%!Rie}t@hjRkAvRw{l5czr_UKX>p-(x0iy~sq2`xt z8zyjidk*r|#ezbe7bq%`vuQ$f?fKkVhocyvP>B4!p0-I?n?UF0$a|zd}mC595>I6kD zfy0A6jTrwtP6)!ylnPcqm&@g7XcnFs`EFm0_jGgkhSoQ4*1gw=Uu2@UI_duP1U(8B zC(+a3pH zjCLkb0D5uakIa~SCye5+g|tv;LSKEy-H?vUH*uYG9lvDzq*kE4pT6*WfvE)|F=Jv9 zb`Fa+?;R-yG<>##jz#V+E@nXXn$bnalC{P7)(M%M#TeQnZU-Lc?1E)_-|G>zZWha; z4q`+dr*0Ud#m=Lkd9b8!UjXdukny$6+d}CirGTcTpoDFCgYEg8V$9?0w{3)(<5A{! zo63A9li3u>7dNnr{%fQCzF?JFy+ZZ3046UiyEn$X#plNJ$%~BwUynS0WF~`zGW45U zB-(#&f$PwxwA0I{wR~e1Z2>Q;iNa-qwmS}fR=ZC=H}dZKkUM)TxI%>r(EyqRT^tl? zRh>V8yN9!0uuQ2H_vf+%H4yzSGFJs3(IsH(WzT*@FrkJs-g*LSz>jRY}oy)bG3yqmIs3dcg6g z?Jq2|Wtbm?7^7wsawOVRKy!z*n6P{n@Kd_7^KK?ols201U#KmuB^$m1+TOFs+w86u zphdB~HDj3!Wv_hFYaS()TeBFjAAio?wO0J;^E~>8kPuZdCr_0;rV}N=&c09A=C`jL z`2zS?a4d2ZDiqjtY?9en&_~M7P7dGT`Gi4T{+n!yvARXy!E?Y|{6$3j)Rco`hthgJ zovc&qW^b14^_Zo5H#Cnz1R}7e6~=D66bB4xHMAWsKxzc~I&bp;uK#y5+B0)_P<;)W zRj9|2T}YT~Op7XFo}bTysv*Dngmz^e$!c=k_Vuq|sK}PiOQ03Bp%&EGTo{VXo0uC%6$e}B}*DhBh zHec!r8|G04qnMM43?JFt%fU~j{-2e3U$BY7qp>Jsrs^acAhXjHHBdvbi_*7ATSRpF z&-09z?+BApR2HaSpLSP0ydPtD-wy>$eaR}8`?%G%tn6a`$mTZ)<8k%#AV2@o2r;w^ z)BLL%z+dBgzLx=gz&ygz5AM&_-AK1#Nmv$RTxwxweEQqt`Fif?xMERDh{R%{lG$IO zSFq|^QuDkHaMORz@@VPj8OfN?X+~uC+@BrM>^6U00(cFN3v4{g%CNZ5(l^JcM7b$2 zC=w#I_#bJVi@-EcSRRV^B_)F|T|St4@>#)RAT<9F--tI zJP9i6@7vx> z43W#4{KG#q*0$);eb9E>iYX8nkXWK)gkV;PFoBQol%H#A5tps|}4d z9j&F~7G-5X-qKkF&$qOt>_&?wIqVYa+SD0-U>&*0eTUHO;r%VoqXaFDS z%0`k+!{*5PR$axyFJZK}z}pMRBAJI3l+XoMigjFMXGY>HyPQ!y7SDa!h4Ci#d8;7= z&aHds*FmUa>~iI`zLF3{pY^F0xJG#TQqL-ol`XyCTsfO32vQ1*a2gu@W?W};WG3`+ zaRl$2OWa-+1&VtbW9@HI#r?45??+>cCMyuNyuG@gCj~G8RZLg(Kk$P^rK|Wlh)9H8 z3Zl=4!M?ATO0AM?pn~w$;_NRr`EC>0OtI=B51j&ilkokj^1I|Z4RDsXno&$y%%7h` zUVUIEwfEf|3wdTit0Ybww`|CVKd6rw%%x0jvS(i(j^(|Zg_agg8mvla-3~J zI0eT=Zo7QG{snJ#Zu!Z2Il#S(`Xt4}~5r!&TZxBXt>)5jyJ@77d(2 zjb4gGHn&|J$mdQ!YdJRlE;6=m#!o2GX?}t1@xGqfGYy|g4ob-%HA-18ckWu*7Zl&( z02<1QTio!P5VW!dV~|_m@C{J1SS87^UehREH#JqNQ1+Gs3IoTh2MhU$43)bN-;OBv z*G3E`Sq+AX?G+G%Hoa8CQ-n*Wg}k=*wxxylBmN2r%{Q@o<^QIQUqK`M1ao~k9FE5G zZGp$n>|Su>@@cggtzF!Qj{mL{vMhH``%b{a(%}T?J>eC%W;U;VjHq=i&OFD<7-X8~ zEKpnZs_@v_Z;`1o^$^Li+I*YUjcO=0pmO3UCLdV$SoK~`)ZDr`@u|o z8frJiL8~I2&u>?dwgdFozSzF!Ig+P}tvDjz@bQk(E#<8_C5P@0pDVxF6KRP{QEBTT zpUn?`hYQe3t@YoK7%mY3WA-E&N7zP2Fv1B%eOMW*-mIeRIox)ny3S#omqjsKrtg<3 zwbVBkgkoR#d%%XPm*#TK0qNL$V4g3)=ivh(rKZ)Fzb_MXr@#1@z6FgB|NcqEtt)Oi zL~kzn7qRRGrwJLldJha|uuw$sKB{b<`}dPwlQ%c5Yt3mx!1YR99SIMcgi~+#M~+^s zzA>M_HO$@kjprTaUtP^F9m`TlHKM@Uw)Lg17pH}u_NOlK08P4dx1+rgp;h`eRaM{q z&I{gGmT5&cyGDgti4sx_`rdDzz5D*-KICZ--?a|G7;g#2%^bcGr2cX@>z@Z$xt`>Z z=k0T+fYEY;Qj7)v-YPvEzE`##SYG2tvse*RzF3ix8^HWyRgR?V<694GarqMy+X#2D z7Zc2uBMjPJb;#S17E)!PZU>-aTGB>@gtud$P-?2|}@tIzYZ(o-ljmDRr5@(-Wevo^%4 zDkJd?{l1~)EVn5$QJ!Jnu%MhSaTn%q@RW9@M`aG z+Gg*Ri#EznZ?(cglFtwH$K;7!kX!lNwI2vIXz8%e^Y@{kY!! zQAPRdMOeGDJ_gr%H%BJW_j+S5uAZZ-c>Gb&jGr+kv2iu1|K*NMz`?(YQIuGPKrSl* zHKX`IM>Ep`+5;Or9@DhDAf>qMIc!Fm`Mz}fg3v=g9*=Cuil*GXFfUUFKD+UpCajKX zZ=$(-<9PO`r@MKaD9Zv#a|NU8{@t|2ccO3aAkAw6F_4wipP13~>b6vymd@&p<*q4M zWN#~)aRNS{-dKiXe+6!HK7Sm9p$cxR(RO;aWd#OAz|2_1X*(#K;$*|dq?$wIXpixJ zJwnH=e%<=f@iD!FEPC?x2SwZYh3BV(di(>kq6yxO zxLz)D#A`^k5`*em@k;}%70@b%c2{BIJ{jm+phT0Dw!QeIkJ>5zJ}S;|@4m>R7;Mx% z5&UVEthj3ag?27RsxWf!OM&_ps3@eP!l$FC}-i!73Yp*zN8ml$&9!f1+{LDznsdO z95RIDXv!((vr2C>!U9Vco`V*AjxZlj*61cXR45J-z87N^6zG`6r7)Ce`Tuj81X~m* z(zA9KA{L>RB{Ap_=|$Xvm*dd@E&@L9Wbeg=rSnR^6BjBNJUI*aE;|j1h;#`6hd>%^ z+Zf)3<(5uH5iKIS{g@XJ!{X;5hYIy~k}}BZUlV41<*3joFH(F4zy{Fb8_OIh6Qxfs!AwT&y(b?ODy((*`CIog6Pp@7 z921F{4tI*IsrQt|t>}?i_-UJQA+a)*CF-j)`Yp9q{X|T2)CSsbf>s5^H%r3q;oE$^Lj2dJ+c_)7Mf}fPyTY2njCb#SU<)Ivg7zDSY+D&2 zF(RHZy6$YZ$WxopaF3H9T#*<94yK}hHqgBY7i}0i6fXjKbl6z88Exi>iZit;s6b_x z8qoi^D6)rl&--S7RFj;l@`0dC+KS~LKQ9q+%Y*M&?q6`GHhR?3B0|0%nFbt!MWBBu zGgOpSb;r3YZ;(AgJ3S5;+d0WR}nq%MVG^8bPk5u#M{pxU;UdYRH)B=n50&%ods|dma-1QkMyO!wA zBRp&D4W%;+V(Eo#;ahr(fpKkc!%h*N-Di05hZ%=t&7&;Tvwgq%Z zJg$Y4u-q-$@>EvfeX7LhZ)ie1w9jh_HeM;_ktb0zrT?u;hyzTlpKE-E0?V!MaQ2ZsKRMC0uMV`X)1TKaZg= zM*?!Bu*|PaW@6LFmLvKRVLO9jxX*WMH@Aguah*OaTEjMxwxo1zWX9r5E~^H%D&FVS zm!*5!qw$tD+@A}{NfJ?Ukh_?(Kj`GuOWa@?-BtpXU{FC)ah}61Lb2{Y=R$XmSrdu;7BP=%!7GJ|3;fL*wh}(SIqu^^>VEGEKQ%sVIU*>v za2_)!eK+5t=d18`Y*AM98$CR2e~Z$f08{vz#YsV9M8w6C<)Hxr~ zR#S2kSayso0`>CY4Ffthb|!J&lnZ{6=`EMmFG=@#*atwIwv}2J9O3EENrJ-?wIg#A z^gXGUU*@L4I7g0Z+s+&XeQJ6fV>YVIgnm{I&y(BBUPxdib8cfN4x&Y^gw`TZ_~vL> z1JKK)owf+R>ja?aJejzm})QFxQ-R z1^uW&HDT|nTb!6in(#7I!l;2}5xlix;4}5!;3Nc7s5DJjvs(w+z_#M_kaZkwlHp$O zS`$`47Z<3k+2Zt?0(C-e?g-5SX^`6l6#gAl|I9cxL!b)1IGug9%{uscKwRWPmKw?! zDdDd7ST~Xe%`wR;s=S?W)nNY^7WyWNPa7E zX+8V=pEng5QHyE%_o`RlYjs=RPZ@QWWp-g4dn)u&%MmtW)_j%YS2p^{*L^bX@r!v) zIz=7c44q(@X;UD2@E!@MdLbdd%hw_M#`mq$ATSG{BTs${LvGNwF4T$D;({9pu} zR6|s+_+y3dB_-u)h^hPB)9We|LZ{m}neW7dEfs6dXYv}yfBhJ^ zjQO-s=j_}*CKuGd-*c)n%m)2)LR7~WS#D#?+iS&jfP?maNe@PR*>+rWAN0n3u)y@2 zV!$hn#MY-?7yJN?spZYJ&avmtiMAme3L%eBv>bF$)bh51Y-*ii`xklA-pi#)P6K*CDT!!Jxg0B<%Io5 zuoFWeMRuOitmn~+Q}awqr_GB9O4RMF)a3K{Q^4iqTwf}y8U5d=F{hUB+2wJq;Q5s! zRd=Db7pBAULiuNz@Wo75gYrrk-`XSoaqYZaCByaO&#WDl$?<_`p=n1ENbfnwL-5!2 z7EPY_=bh!YeI%p>HU$j60%c=an3o;;k&@TzAKaVa?52h1uc1N9B)uY%Ugl~8UvtKn z{b`u5=?2?A6pJ7WSU_Cze0O}~~s<2~0A?We?frd%K1S0Cl7aArLm-MQ0uJHbA2va-f# zWD$_N8_XTB3$JUVPdXBwg_#u427}%5dMxoo#DCN2%FzK0Wh`A#lxcCy&{RBfQ#u^c zIjIN2`+C>dA9i)BO;Yxrkv)Oo!G?*v->iH4alF&tQoz@dzg{DA&f-d3WdeBsuJ!q% z+hlq_kE(4WDrWYJ?AHpe*l#|1CPY0iWFE_)v)jfyxlj)7B1AojcL?NYdQihhMS+1H z_m=Pa_?oE7B<6%#l`A&Z?kOM-C_(j1Wz*gNr{hG6tr=v$e6OfN<&K<-9C#>};g+I; zXVPM({pp_{Xx%Yk{`{vZp_z?+RzyVMknz9(4|{jOkijs&b!>QHy){rWka!g5kM7^p zCe>MbI8)z9Q|vmcUP&2hRPiQJ$f4W0R~DP_q4W9n)4uRI?1};b3z!%BI%{R+P=5^y zx%F6gIfKyo|9He(qVziReSsnmJ3h2p=7_xgtu+z>JjXWbEm7WV*)Fkvr#<5v__IZ* z+(6h!`y>Govit)WM|cI^kZE0lK9Vh^2HOtL=~XEf4}0>zj`!TaS`7yW2?Y0lOpFnb z6K@oG*3=#CxIRw%ZN7)BQlS8x>b1JXQ$C4tSOn_^8@nl6pGkxR&I15f9vd!aIMQ3w zHAd)X(O;VLbDWQ{qZX9|Gscc~diFbMg&}t*T9@1=Gz?LQ@(jT9(~q>c0u&HOzXzu? zaJzpyk6$@SzWF4v#HU5_lFE0!|1OcwdY(G5R-r{DBAs1cEkr#8@HK%Wy0x(;Uxm>~ zZe6c>UN0z?Ap0wjUA(iYETWlYw9g)D`BMyen9w4;OCCpzBRo--g$ix?ovh*aSlHtz zEgmzFGXLqAd&jd_Hj8yGqmMxvM+*u3s3s!YryB%NpSWnip)(d0uSZ38uubB}K)ri> zmy*BR&{J4b4dCV3@TF2nv_SonEgN~8T?;+okIPQvGw?H&rQmez4U_M`wPCgtgh5j0 zN)XO);-2g4EeP-Nu=V_O0h})A8mQlPJM*cP z6%_yb2WQ`Vy9k-cDZ5#e!pY zvP`eqh}29FD))We{i#o^2q9?G+g>4thUm_&hKA z*<`~s*M7Bj1V>^RuUNziTGRvRyUGK1!=9VMRA+xLJ2%gCH$!$9T73A|-?;D5A+EUW zi1lb=J%Nm`J?l-5x|6qeN7giOLm~O@%i&hG~V@v6mWryRVx>%6#hW; zBbkgxs(rSVH=2^2Og^|<{sA|<;~mtVE&JC?>-`v(UVCGTmfjF@1!sUeRvgO%76ruE z+ryB{#M_d{LuzcPazJ-H^~P-(730Iq=!^Iaw2CeBs&jYG5t)+Opn8BW^>XQiA!UC9T=k#Fqu1#7^j1`ApuObWev;8RS9rnL`1^ZLEh@gc&lBq{UpGPCN5N}6*&kZeWuAwtkSu`ihOy_YYW1Nn9T74n*k z)e*CAEQag=05-H2*JhPyNP-}bXuy(BG=zN5=Lh!Pzm zaIN)$4!~5`f~WL}<8g6gnYbIbZcW^Fca3g~4XHh@!VcN~>+3)LmLRjQFXwvK&Didc zCy^W(zOdUhYp~2h_dYMaE7~``(Ht1OZ~E^xo1s5U7I}i~*{@Fxv0d~5OD5l1yH1#z z;OL6Ujd-?1jtCy~eIDzBdqnOz96~5dSeAztlUg@3LUzRqZaTCk@cDxc6tl|W>pz71 z4zfts1IO&>Lb5v_^Iq`;Udx2oA$I~2{y`W#c6&RTI%X!R4&50$K}&C=dFy^JWfY^H z_oMD>q&5^EPNZu0>Jp+`5-=vrsrTLns^a>=io##;3-g3!-AV$Mze~*XiEgL{OxKI4EFyVee>3?){gEg6)zE%^Ge7__r_lM}kU9OZ9SXyH$?2<|Va$PjUd!2@BgPQ0sB`A;ONPgf$2T#KP|{z~ypyUP8=jc5IOW@N%U)0f z*d-G_(~WL8zwp|3hROu&Vu4-lequ&eRj*1HnU9Y|JW@G1R%p$*t@u0(#*sk#*s!`e zO|O}rth%>Z6$}%a#MW-{-?=T<-Y2xGKlFl4s8;|Z7gLfOpxb148|ih-x5b%{yDV3C zKk0sUdNf0?E^<+P`mat>tsIIM7uB{?XVCkl>WiC9U%*f2yE{gk9qawJXfwxz9y*L= zl6oRWt*d4Q1+OrNUIgG9@er`ds=^U@^ZQp_iDe9R23Roh09p1uva#KBNuN}6xP@8F zF?(JaN(huJKKD05eei}v8se%o8BO*}I~^SU;0oBDp^-0veJ^4jTOHATQ7L$N<^`nF#dA1H~SL&U|aD}HV}69vhpT2GoX#DszuSzv+fN5?Y}|IiWK40$@m61*=` zlGGv;kb{@F{=AJ9!0SPmZHY4qIrnWMulS#JqRc1}NcZlT2$>3zt)m8YvIPer&pcT@2MALlUduvDJ-iF&apy^H} zs-lHEW%L#tS?AI+&BxEwVF|~)xBMvupA4n;r~ZYAgLj(QZ(3xAKYW!u7?Ic|dQ0;} zQK0dM>BpQ#6}u>2LX_rE1q+tO!x?5auH>F`c(wf@;Zp=TjRF%5yzf!iOoa<-uaMsR z+}qyZGog3=yiq{I>au0i)Hnup6V=va!l2DH$N*@G@@imO=-Xg38xODYhvv$mfKJ*a zho%71M-=9@-beo}u?NFW=m*#=^x0igWH-m*u)zl%YKlrEs)dbUjsa$ZFF@{KoX6S4 zD;qHad=K>^Je6p<^6sr$s{5_ozC0?6aG+>8i&{B-3A?%7UY$7b&_^<$i@hPNUb*KpdVz z%%T8);}AMW+9}#i68NePW!Qz|hrjF!!{WxevVDneO_$Q}C8^*}l9oasfL{yWBhr z@Bf~!4E$=Ez)YI+k;zQE?o9*$RhZ{fs4d-MAZ7m``;)<#AZQ7;k91OTn7r`Z8;N9X zIr!6jqT4eZE&nFlu=OMi?T0z4_>}E(otAzW*Up0oPnxX~)DGydN}(B495}c4$kPID z{Zpju47xZB8}ofZM?E(*w6B}g$JF^u-#)Y_mvcPWBx`8WdiifB;E@ai-$wtcx|?I7 zobr)2&(nb_~HkcY(wGEMQ+&{Odi^|kxP*!%sqABTI~ga=yJ`CBMJb|cCj9xc}n z`FpO9JvRxk&6fkox=&+-1Am8pIVv@^K0GD&cv|U?5v5c(Q!w6QUk=$oc5rdnCLw*Q z&rZk@R;#pvsywG%vN$?rXE+iZ+R8mFJUU{=6@||Lk>D9nm=J2dcjXM!Qgoen?)07r z2V6@laj0|4)KE)ylbYHDMcyH7VD3d8m6J%KdG=hnT>&Y}16Iy1*+<_DP|OeX&oFS#R$ z&kUf74OM2D7cFTm#GJ^C&D78yX@+j8d|f#p2H(zi3Luw}%dc$A?j_5GBZeKZ`AvkZ zbqdDdMOg3Wj@tfPC+2!@ZZraGXfm^41aS!Kn7T%b$xqeitE2|82IbMMEEwz8m?4F)UqmHwL5{ ziQ@fZ6XFRom$bL136I9D*=f5gZhS~wcOEepd&+w$gT?)hZmn*vF!A5zdMFFNOQQsp zO#KK-ez%e(F1s@`{R0~kn$5*C^6MKKQu@C-YrSsO6GSeP@Q8}qp!}+FatdVA+Qd*!rGy*EZCIMGHZ`EX>AB+= z9)FECdBMf~zMyZQ8%ZK)?MR2X(P^f@rFNKmvE6(Y@iQc<)8{KKCdXb4njth7y4QAQ z6q8D+_WgY?MMV|gcjFJ-{R}=Fm|%#~O~{#%VT?-RSmirl!msRE-Ld6oGGUXx zn;1UIUfuQq^^8K-yK-|LnR?u7fEgTwT?${1#hlJr9G}qQ<_}z(vCo5``_69siU}&d z=}czV8PY>E`}{_8MX1BI1nh%u#mXn*s)|-+IG?9_Am+Z;&~B%C{U<2FYIx4lBVMvB zZdN|UeICKGU59%GPNPelbTUAAIWLuBw&r23B_4?E{mM)Xkrsk|(BP%rjmWeq#1an8 z2lNCz-3Y$C%eD*`k%+T$Y?t^EodT7aY~NOLi~YGiqUkLo^qwSdIndI^x6etmiW2>& zDulQ-wLa?uOH^hz8XgPwE6s^E7zAErK^w$pN0$&wTKZg$j&YLJI86?R-_ABt^yL(U zoVmmPI|@Tzy=}-BJXl_vI;qW-L1m(nb)syLi#%SF*P^0TXS-Q?YZh6qFSIc#sgIz% zr-6*pxsO`G9t?2g-`lleg<9=CxMn}-ZhSx0!P1CiLMW#(u03$xc)?jepQy(f4svRm zE{uGjpAHQDJk{P=gl|A><~6=s#vdi&i>wxzu3EWcIzL+OE!2BM9<)g(Xi`|gwOE%z z+N{E+Pp@8`*fg}R)v_&kf`W$wU>Dq~_^s|*{;@(ON;Naj*=&dPb%jo`iC{{Khh&AB zz^=Clttk?FFRpcd!HtKbD5+ebDf=gbUF@Yf9Pc+L<^1Pc-JY>h@_E2xRinO`G z&u-WsBY>@;+r2#xqj+wM`}=L#iufGusc))L>)wr}<|So!eI&2_1R8_r_!7*yAwbgR z&#UaLVP-nOgDu2PX`td%3UEN=|;u$g*V`zff)wM1@*IRLG zbG$v|OnPpJv0Auo8*8_V4l7ISe0JO4x_Of9cCj?t|76~)zYeed>vxp4;M&;Rx`+pd z+5rW>4MVF%@p4pXj6O@){EoQZt_cs_`X>9UBnC|rLZE(BRQQnLsvI435bu(R=0Gw^ z^{cu~!IEy3&WI3~4oP~C&|lR~5RV@gUsWL;t&9V{tYE zLV8=xeLIX2nvUw~y~hy|z(upP;MGkW7q>%9x>n(W!WfB7xed~)i@6c+qZsUn0L6LL zgBQM+B9Rlt#hg_Gk**nD3pi#5^zcR47tRd~4h*!3&Sr`O8#u*o6QQr~pzrYe(^tP# z1u|AfG3*ZoC1moz{t0?2i#G=*5lSIM;ZU*1?Np6X=KEOV>H;{F9WLqdlW87p&bNwN zksNC)_v4o|RtpyYVVz1$2V=mG$p0cW^zgW9 z(Lxu|gl!r3E}Fp~f1Ae0#5VoJ;GUmjX2I8u_Z=IU6(K`Ns;pb0)MlyFSYYZyJ3&F8 zrrv&zR%(A(^@EXHzG`kFl{e$5(le&UMwE!jGGR2Ak+*^xdrw9(uXbTV6TDX==@sd(6+mIlr;gWfo{TLe7L3c?8FBd&;hzv?>$T) z%BcG~6s8u}{tMfra^s_|QU-$7;-{`NmpH1o==xv0W{gNf%HGHlliw@98#wu1nA(s}~SnJH%CptB*~f@eNnyecSe^rIH#-X()KV`0?Y&0PCWbDFja#=Iz-}&$%T` zR>+7}`LKzbl3Y>EOb$`9+zQ_vZLc7lVnxxlku_DV?hwCtoB2y;3fULl#o4LUD(d_f zr3+kI^u|IPxONnJ+j67IulhybAa63RV`CTSJi;wqI7h^M5t%1K{c7xPRuolmo5`(G zP=$CCC`mL20>dUWIl6pxBI(}p^5>zChV@p~-O5&ei$p)NJGXD)3fXBz?N^gKK07Cb z?8g&9?mu{;6WXW+R+&Hi_C&12Gg1*Q_re4Fi~$8%WinwZS350WZfg%d^i;ik2RTJ$!jR&k!ZJ6p?0}x zK|Rw-UZ*Qes^TFum)_p6p+@Tl%LyFUl)jr20XLWaA}XaGFSoUBCYV)l*_W-L!m&V^KfaMdxU* zXRlVt_a&UaGvrXDNU`L z<@B_}ujAN+9DI3(C30myeie5tG031=`cv{#pWYR^15Uqu3192YS?9u++hA^; zFKYUcPFR^UogE<3Nqp-3zHvPeclbB2bXD$`8s^^T3Y5n+4+^a0iH&xNsZjxo7=3S@ zbc(mHM&BeH;**dURXL{$%wuLjL?{*6&RPeo5P@!A+FdeWY@+F|Zb^$Vu7SKqYYdYB zNA5EL-ZhnH9INI!F8|U1i%DG0$R`-8c*%EA($-u(%OFIrjL?*uiG<^4e8tR|TL#0` zu-tF-;9n;vmAWI9m=>%0s;4rEHU|JByyk5CGb^OQS+t8;%5q3qVdqzOnZAsnJobOf{>|$qL)oP> zxh@LgC`no4G`c&DbQCFNaK`+gkpTK0YGvR(U}|q-_adDulyDtG7vs`06PQG-Wxs9n zmdB&xCH%r+B((h?r3ExD-OE-jH&kJf%hyyPN`^l7aL>+@>y32PIcp&TH}o(l_10dSGr}ufa`E9yRe_HEIximILGmu#-^Sqa{0xjcD!q4@jGbK;e>L`OL{ap zvviCpDFp5g1_${iY!Q z=)kbB8GSisUm#2k$*D)0n2jWJ|3N65Wy@vWN|1Uc24+t>r(7iq?ZjuMsPMp|l$7T^ z%iVhq&4nGDKC!FGupq|iBpwVLe@<6gdGDe177q=}2n@RNbw?)wR^Vx{YM5F~{MK3} z>k+1b3{I+?B39Lh>Enslmb87nr!;;Kg;#rQJwLaIP!a1GKG#?`kcF?&j|Z&s{J<76 zd!h@LV`r)O=`5dW8}&&PO~0Q9up4tn<$&UG(f)Oy6rV;Ozv%-VsKTSQcjmvt3tpc8 zUfBJ%4tGj2llWbjR5FcaZz53xCFEfDGHrL)L!KO^xcGQd-Miw;LloM0o8c{Z)8~Kn zt*Ig5a^?`BHbn95^)93zipKkVqYr=+u~%eb8{(lQy-$mqh$ntDPTOVdK$8<-0E$RquK0UQ(K>|@i6QV%(|tI2VWx%T2A=7p@| zWqf-+kA& zPniDU5#^RKhz1Sbd(O=nfZY2M&GWqDAOGxZ^mR2lRLLbLh!u-y=2n)rf68}FnEvfU zUl$;PRBg>fA|?zHwZTHtA>Vz_{sXo4?i{8l6|^K&sN^xUM!9S7v~cuZ@IM^a{+-*y z_KRv(15TmUkcf-7(y=f2-Ix8(6XKr@&%>a}s(2x`?gnZ~Eu^}D|NYOO!5?-mL*&x}t)F?9~LbQVPbvWx?}*^bbuWU1K9uvYeo44}nd*RLeq{ zye^OpzyIP1(;vO9UaV1Vy~Rq9OKewHSIJhMaenDUxieN^rW9KwFw8w9tf1PJp{}f* ze&)+2a=yVd^(d)v$qB3od+P#l^_KJL@Xz~SCfwd(fIK@^4_2$Tn6#AW*t_Hf>v7wwr^DyV${|K69+#Jtg7DuSsLOo5B06oMxZuCOx1{K}V4_`Na6SvV9( zMc6{@#I+k+jd|ro%U_-m|MKRr{vcwdH^5l5VJx{~%CeGhJ?Q^DF8;-MPc*YORJ`)E z&5C7`)~{auIa&PI{n(84pN(QST#Zh5>eveaL<*iE_Jv|M|M}mwo+=! z5Oar4*i#qj3#<6zEAPGbh$HZ4*GIzHIJt;NjpU(2shLv5W(&6e3$Hw`{qwQ;xdB2e z>XI#&%E~|~H(E*f9`O^$wSRNmRpwf$3xejtF{>C$#prdRwfNo%_{-5)hN8V==oWH8 zj2uc3qqs7~`-?w$`1lXlT^g^a`P}|L~lwnY7>uo2Zv)C6*F7&`QDas@ER>{I|w?3s@+bNzE}OR?*DeNm&=*zv5?) z!`~R5mxW?Z1&q2Ug=XHB8CFIK|HkW%JN~nAV-{lUAy>dI+*%aOF>(xjf#Uw5*G-(g zu??_VB?JcL46y`_K~zKR3sL{qC*bdl*Ufq$K&0R)#%3vaFQgDx;?CPAlz($<2&vf2 z2vVrtb1qcKT8E+wmnJ{{=O#}6+4Zrez*>SHvj8!8p^i{vthn&V(c^#a-fQq9X+znghMCiz&2`p&;wKLkk91N$Y)=I{N zXszW`EomVsD_!-E`xg^OZ?qSju_$+IjHcFd>y)F1m16sE|BD&%2gjJ%OAIx1Nhtsn zNo*7$FA&VHn!!K69K|+MQ=Wl>>*6v{qAE zVfkJ)0e^c871RQ~YO9n=vP9Wi3#AlTxG?-pzc^LzjH^@BQ?3A%1ff>z-WfQrymIt6 ze`%uF9YMc4S`+7n)~x_IQ>f5oA?$t4FHOXq!+M?&y5>d%%7JS~&&0j)O1bqfkHcS# zp@z_a0hk@2Q8Ba-Ywg?@Jm25_moo|f80fJC)+|F&4IyN1NF-tD&g`fD@{I9~m%O3o z+CxqO$ztYgwU&fb7ILoN_~nUmb9kO0#$dhF&Lss544O40UErAS`IX~gcMLU9%pFY- z1gbSdE5aD8E)<*LSB{^&%Rw`-19@R<(kgm^m}(U$WdZ(Cub;?wN6J&hB&4Lxk*Noc zy+=S;;W+>G>t~9s@up~%1VBiQNMrZbRB{$r*~RI{sU2mAlxJI!RLw7N6F%y(vTBvGONeev7 zLw{}J=nbAFN{58t&`KA~ov)VjXk6&*J!=B~V$cl4RwxIk8ZuaLj!cBQLht|NuT7o& zz4+p#BZjC^Ay;GRjdH8BaB1%`Z#*vk?QwA{lMy55N*N>6j=`y=P7CSo(_ue=`v5oEHmID%Xr3w{O zk1evRrLfRksc)L$*GH|DV=B}gG%$&ZQU+`&E4L@U_f5yOe`gf>S;&%7b)xtu6&~UvPYX=hr7F z#*y%G?Vj9oilR&zSyUn6$`fO6{`DE#yRi>DkaAS1$P6Bmhaj;!pEO8!*Yiw>f8*?M z^cXlter5%~m`<&f|_;r}^aY8@Up>q#68tdy3z#)N7KJuaji;Vm-^=V+`Y zvt+4t?};V!R*BJTqlM1SXTN2p&ORR>KLS>&*}S*T0x_jdl2-QPeBE0n7|vU_4s|vJ zqJ#wtXjh{G($dPK7e6*5{@LAWuH+Jda%|ReltPV?;L1}&_x{Gj=fAvt7~rlH6>F-+ zN(-?kEF660L1X;Qnby*n-wsq8TCdzWDHfhhZp|++a@x;@xY!JNG77% z6So#51S&n8)K@&ff5vZ3baqC<$uY;O7;Ayla_phUT>D8oO75=5`K<}RH)dE_q-U%~ z#X6_J7HjPp1pj#9Zw|i)qP3T#9U!(;tLF}cab-cwH%=)3a@>@L&~mj%4N|9GdMweI zffh2p{;y|Df2?LISUFf{s5N-89Sid9?26d+0Jm>|X;`%1C% zh~J**YmHLRy@F}3p46OMDke~E=?(us`P(ynt&wmFwQfmjq|j1u07A?~c;U&B+rNFB zUcPbnzG99XQ}UJ~V)aB=BCR~*{*Nb=fAg?`+X@MkkiF$lVu%(4NMG4P{Lg-SCgHgp z$!-Ai$X*+VteLY&sR0%&|HmfaFNfbj2kVQgczMqxvY4%vGR`NmOsv2Y0ABWQN)ai zvc`^*^U8{X|Ki`y3{PL*AA3_mD5SAnjm}qv#zj|5?isz-r2%iq1sP2x=EzICyv7IZm7boeBut|(PB?t~H@LxRve{u6buT==WFjnk6VIp9VWGgRe|G>YS$hJnj4;FeX zLLEyXVx?9^S#6=O@b2H4xi)aVm)=Mb z-|~AiQ|p6Vb8eg{cn*Zvpcy&3l?84wzITS(9GhV{1mGS(-Gl-IQ;kevWiQT?-Zx=; zgWQWyy`~hk0Xm8Gt_@hjg6)0L1pL|9hSw!q${sDccBGUvrV_%+dVv1Esdnh)@uqS^vESivAB?N{AYhKF+Dkw&00Cs zsv${7u3b~kj_IVUf(PyY|L>ofqd5$+fI^DRqcCS}R6U~v^o2L{@A<&-rqab>ElTX@ zEpf~gbAqhQkpLH@fBXlgn(2q2*Dz4$hE@zT1=Zpu%R6%68@pt4LZL<@PxvmSh0{M(l!@N#4_;id_4>CgpA zBVE}~^6Cdqh=2WZgg)aW3@xGs7Xt`_9;_@3QuTWd;y+OA8Pn6s*~JT+Up00mldC{j zfd906kHg;@H&sjQ>SpGe5sbK4Rxe@2_x$d?GsZW{T~Z5HDECkVItj$Atk4$Ch5|LWthuz{Il=3jiMPF#{{C6KQ6ZXc{0V)^; z64Y|lN{%UEk0yD6?f9K3{84lC9)#F|piv~VL}JV>E^uA%f8>PzF9zGwaxPp$u$DC= z6sd0CR3uj)LUVrus{NaI7 zYNT3P^4_SkV{E`}=~?d=hY8O++FSMNMdg$&rdBAa1ka@{z3~`7@;LlqfVpO&n$%iq zj*Y-dSHPvmuKxB%O(fjo-U=J{TvBa48hQ(vguza_q<%Q~myeop{9`9tL9L#(YtZJU zXzwm&A)IjV4>`~CA9cui9*At(TfSzi;iD<6GnT+Q$JhWG z=ENv1rf97z;X>5;MV#^ahkGLt0Z7=pHt0F0U>TdPFkK(O8LDBtyP&bQL>yWUB>{HC zsvcp@DEgbO-_^UftS09sV&Nd))Ed9)6D~UftPh6ewtvkRy@uDf=P* o1Glm` Date: Wed, 15 Jul 2026 17:41:45 +0200 Subject: [PATCH 02/15] Update workflows/epigenetics/correlation-of-samples-on-peaks/README.md Co-authored-by: Lucille Delisle --- workflows/epigenetics/correlation-of-samples-on-peaks/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflows/epigenetics/correlation-of-samples-on-peaks/README.md b/workflows/epigenetics/correlation-of-samples-on-peaks/README.md index e007b7f75d..704dd6f546 100644 --- a/workflows/epigenetics/correlation-of-samples-on-peaks/README.md +++ b/workflows/epigenetics/correlation-of-samples-on-peaks/README.md @@ -1,6 +1,6 @@ # correlation of samples on peaks: -## Inputs dataset +## Input datasets - A list of peak files. - Sample BAM files From f267d1a1111ab8aaffc3b525f21a5e8ddb24a37b Mon Sep 17 00:00:00 2001 From: Olusegun Ekundayo Adebayo Date: Wed, 15 Jul 2026 17:42:09 +0200 Subject: [PATCH 03/15] Update workflows/epigenetics/correlation-of-samples-on-peaks/README.md Co-authored-by: Lucille Delisle --- workflows/epigenetics/correlation-of-samples-on-peaks/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflows/epigenetics/correlation-of-samples-on-peaks/README.md b/workflows/epigenetics/correlation-of-samples-on-peaks/README.md index 704dd6f546..d9a0b58f10 100644 --- a/workflows/epigenetics/correlation-of-samples-on-peaks/README.md +++ b/workflows/epigenetics/correlation-of-samples-on-peaks/README.md @@ -2,7 +2,7 @@ ## Input datasets -- A list of peak files. +- A collection (list) of peak files. - Sample BAM files ## Inputs values From 686d9e9c30b4db4697f3acd312d397faaee673e8 Mon Sep 17 00:00:00 2001 From: Olusegun Ekundayo Adebayo Date: Wed, 15 Jul 2026 17:42:20 +0200 Subject: [PATCH 04/15] Update workflows/epigenetics/correlation-of-samples-on-peaks/README.md Co-authored-by: Lucille Delisle --- workflows/epigenetics/correlation-of-samples-on-peaks/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflows/epigenetics/correlation-of-samples-on-peaks/README.md b/workflows/epigenetics/correlation-of-samples-on-peaks/README.md index d9a0b58f10..388724d820 100644 --- a/workflows/epigenetics/correlation-of-samples-on-peaks/README.md +++ b/workflows/epigenetics/correlation-of-samples-on-peaks/README.md @@ -3,7 +3,7 @@ ## Input datasets - A collection (list) of peak files. -- Sample BAM files +- A collection (list) of BAM or CRAM files ## Inputs values From 352dfe12af5e85c8cdea23632573464fcb854f4f Mon Sep 17 00:00:00 2001 From: Olusegun Ekundayo Adebayo Date: Wed, 15 Jul 2026 17:42:43 +0200 Subject: [PATCH 05/15] Update workflows/epigenetics/correlation-of-samples-on-peaks/README.md Co-authored-by: Lucille Delisle --- workflows/epigenetics/correlation-of-samples-on-peaks/README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/workflows/epigenetics/correlation-of-samples-on-peaks/README.md b/workflows/epigenetics/correlation-of-samples-on-peaks/README.md index 388724d820..5419b1aaa4 100644 --- a/workflows/epigenetics/correlation-of-samples-on-peaks/README.md +++ b/workflows/epigenetics/correlation-of-samples-on-peaks/README.md @@ -7,7 +7,6 @@ ## Inputs values -- Percentage of bad quality bases per read: fastp will discard any read which has more than this percentage of bases with a quality below 30. This depends on your read length. - Reference genome: this field will be adapted to the genomes available for bowtie2 and the genomes available for bedtools slopbed (dbkeys table) ## Processing From 9fe14eb4133707d9f5b7ca2cfa035cb0f955ead5 Mon Sep 17 00:00:00 2001 From: Olusegun Ekundayo Adebayo Date: Wed, 15 Jul 2026 17:47:00 +0200 Subject: [PATCH 06/15] Update workflows/epigenetics/correlation-of-samples-on-peaks/README.md Co-authored-by: Lucille Delisle --- workflows/epigenetics/correlation-of-samples-on-peaks/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflows/epigenetics/correlation-of-samples-on-peaks/README.md b/workflows/epigenetics/correlation-of-samples-on-peaks/README.md index 5419b1aaa4..f79b617336 100644 --- a/workflows/epigenetics/correlation-of-samples-on-peaks/README.md +++ b/workflows/epigenetics/correlation-of-samples-on-peaks/README.md @@ -7,7 +7,7 @@ ## Inputs values -- Reference genome: this field will be adapted to the genomes available for bowtie2 and the genomes available for bedtools slopbed (dbkeys table) +- Reference genome: this field will be adapted to the genomes for bedtools sort (dbkeys table) ## Processing From c28dc3cd4e2b6b849a6ded4c2bb621f9b01db331 Mon Sep 17 00:00:00 2001 From: Olusegun Ekundayo Adebayo Date: Wed, 15 Jul 2026 17:47:15 +0200 Subject: [PATCH 07/15] Update workflows/epigenetics/correlation-of-samples-on-peaks/README.md Co-authored-by: Lucille Delisle --- .../epigenetics/correlation-of-samples-on-peaks/README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/workflows/epigenetics/correlation-of-samples-on-peaks/README.md b/workflows/epigenetics/correlation-of-samples-on-peaks/README.md index f79b617336..26fb6d7ef7 100644 --- a/workflows/epigenetics/correlation-of-samples-on-peaks/README.md +++ b/workflows/epigenetics/correlation-of-samples-on-peaks/README.md @@ -12,9 +12,7 @@ ## Processing - The workflow will concatenate the list of peak files given as input -- Sort and merge them using deeptools. -- Calculates the number of reads per region for each BAM file. -- Sorts and merges the BAM files by Chromosome and other citerials defined using `bedtools sortBED` and `bedtools mergeBED`, respectively. +- Sorts and merges the concatenated BED file by Chromosome using `bedtools sortBED` and `bedtools mergeBED`, respectively. - Computes the read coverages for the sorted and merged list of genomic region present in the bed files using `multiBamSummary`. - Calculate and visualize pairwise correlation values between the read coverages using the tool `plotCorrelation`. - The workflow produces two outputs: From b7ea8737be94f7c0e8f7efbb05f5847ca8938e4f Mon Sep 17 00:00:00 2001 From: Olusegun Ekundayo Adebayo Date: Wed, 15 Jul 2026 17:47:30 +0200 Subject: [PATCH 08/15] Update workflows/epigenetics/correlation-of-samples-on-peaks/README.md Co-authored-by: Lucille Delisle --- .../epigenetics/correlation-of-samples-on-peaks/README.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/workflows/epigenetics/correlation-of-samples-on-peaks/README.md b/workflows/epigenetics/correlation-of-samples-on-peaks/README.md index 26fb6d7ef7..b0025f4901 100644 --- a/workflows/epigenetics/correlation-of-samples-on-peaks/README.md +++ b/workflows/epigenetics/correlation-of-samples-on-peaks/README.md @@ -18,7 +18,3 @@ - The workflow produces two outputs: - a compressed numpy array containing the raw count of the read coverages (i.e., the output of `multiBamSummary`) in .npz format - a plot of pairwise correlation values between the read coverages (i.e., the output of `plotCorrelation`). - -### Warning - -- The `reference_genome` parameter value is used to select references in bowtie2 and bedtools slopbed. Only references that are present in bowtie2 **and** bedtools slopbed are selectable. If your favorite reference genome is not available ask your administrator to make sure that each bowtie2 reference has a corresponding len file for use in bedtools slopbed. \ No newline at end of file From ce4b8e0217f1a32f82f0d19cfaabc2ca0966d060 Mon Sep 17 00:00:00 2001 From: Olusegun Ekundayo Adebayo Date: Wed, 15 Jul 2026 17:47:46 +0200 Subject: [PATCH 09/15] Update workflows/epigenetics/correlation-of-samples-on-peaks/README.md Co-authored-by: Lucille Delisle --- workflows/epigenetics/correlation-of-samples-on-peaks/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/workflows/epigenetics/correlation-of-samples-on-peaks/README.md b/workflows/epigenetics/correlation-of-samples-on-peaks/README.md index b0025f4901..7216c7251c 100644 --- a/workflows/epigenetics/correlation-of-samples-on-peaks/README.md +++ b/workflows/epigenetics/correlation-of-samples-on-peaks/README.md @@ -17,4 +17,5 @@ - Calculate and visualize pairwise correlation values between the read coverages using the tool `plotCorrelation`. - The workflow produces two outputs: - a compressed numpy array containing the raw count of the read coverages (i.e., the output of `multiBamSummary`) in .npz format + - The same raw count of the read coverages (i.e., the output of `multiBamSummary`) in .tabular format - a plot of pairwise correlation values between the read coverages (i.e., the output of `plotCorrelation`). From c3d1a3d839a878207f01e0c62ee2165d17fbe051 Mon Sep 17 00:00:00 2001 From: Olusegun Ekundayo Adebayo Date: Wed, 15 Jul 2026 17:48:01 +0200 Subject: [PATCH 10/15] Update workflows/epigenetics/correlation-of-samples-on-peaks/README.md Co-authored-by: Lucille Delisle --- workflows/epigenetics/correlation-of-samples-on-peaks/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflows/epigenetics/correlation-of-samples-on-peaks/README.md b/workflows/epigenetics/correlation-of-samples-on-peaks/README.md index 7216c7251c..50c96b1e07 100644 --- a/workflows/epigenetics/correlation-of-samples-on-peaks/README.md +++ b/workflows/epigenetics/correlation-of-samples-on-peaks/README.md @@ -15,7 +15,7 @@ - Sorts and merges the concatenated BED file by Chromosome using `bedtools sortBED` and `bedtools mergeBED`, respectively. - Computes the read coverages for the sorted and merged list of genomic region present in the bed files using `multiBamSummary`. - Calculate and visualize pairwise correlation values between the read coverages using the tool `plotCorrelation`. -- The workflow produces two outputs: +- The workflow produces three outputs: - a compressed numpy array containing the raw count of the read coverages (i.e., the output of `multiBamSummary`) in .npz format - The same raw count of the read coverages (i.e., the output of `multiBamSummary`) in .tabular format - a plot of pairwise correlation values between the read coverages (i.e., the output of `plotCorrelation`). From d0a3b9f1c6bb390847f7fb4e25369376d0d2e99c Mon Sep 17 00:00:00 2001 From: Olusegun Ekundayo Adebayo Date: Wed, 15 Jul 2026 17:48:19 +0200 Subject: [PATCH 11/15] Update workflows/epigenetics/correlation-of-samples-on-peaks/README.md Co-authored-by: Lucille Delisle --- workflows/epigenetics/correlation-of-samples-on-peaks/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflows/epigenetics/correlation-of-samples-on-peaks/README.md b/workflows/epigenetics/correlation-of-samples-on-peaks/README.md index 50c96b1e07..9c2eb9b83c 100644 --- a/workflows/epigenetics/correlation-of-samples-on-peaks/README.md +++ b/workflows/epigenetics/correlation-of-samples-on-peaks/README.md @@ -13,7 +13,7 @@ - The workflow will concatenate the list of peak files given as input - Sorts and merges the concatenated BED file by Chromosome using `bedtools sortBED` and `bedtools mergeBED`, respectively. -- Computes the read coverages for the sorted and merged list of genomic region present in the bed files using `multiBamSummary`. +- Computes the read coverages for each BAM/CRAM file on the sorted and merged list of genomic region present in the bed files using `multiBamSummary`. - Calculate and visualize pairwise correlation values between the read coverages using the tool `plotCorrelation`. - The workflow produces three outputs: - a compressed numpy array containing the raw count of the read coverages (i.e., the output of `multiBamSummary`) in .npz format From 8a5af1e9dc879c752f03622597fbb614291a220a Mon Sep 17 00:00:00 2001 From: Olusegun Ekundayo Adebayo Date: Wed, 15 Jul 2026 18:09:08 +0200 Subject: [PATCH 12/15] updated .ga readme --- .../correlation-of-samples-on-peaks.ga | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/workflows/epigenetics/correlation-of-samples-on-peaks/correlation-of-samples-on-peaks.ga b/workflows/epigenetics/correlation-of-samples-on-peaks/correlation-of-samples-on-peaks.ga index 576e7448a1..9ad87e7ca7 100644 --- a/workflows/epigenetics/correlation-of-samples-on-peaks/correlation-of-samples-on-peaks.ga +++ b/workflows/epigenetics/correlation-of-samples-on-peaks/correlation-of-samples-on-peaks.ga @@ -23,8 +23,7 @@ "license": "MIT", "release":"0.1", "name": "correlation of samples on peaks", - "readme": "# correlation of samples on peaks:\n\n## Inputs dataset\n\n- A list of peak files.\n- Sample BAM files\n\n## Inputs values\n\n- Perentage of bad quality bases per read: fastp will discard any read which has more than this percentage of bases with a quality below 30. This depends on your read length.\n- Reference genome: this field will be adapted to the genomes available for bowtie2 and the genomes available for bedtools slopbed (dbkeys table)\n\n## Processing\n\n- The workflow will concatenate the list of peak files given as input\n- Sort and merge them using deeptools.\n- Calculates the number of reads per region for each BAM file.\n- Sorts and merges the BAM files by Chromosome and other citerials defined using `bedtools sortBED` and `bedtools mergeBED`, respectively.\n- Computes the read coverages for the sorted and merged list of genomic region present in the bed files using `multiBamSummary`.\n- Calculate and visualize pairwise correlation values between the read coverages using the tool `plotCorrelation`.\n- The workflow produces two outputs:\n - a compressed numpy array containing the raw count of the read coverages (i.e., the output of `multiBamSummary`) in .npz format\n - a plot of pairwise correlation values between the read coverages (i.e., the output of `plotCorrelation`).\n\n### Warning\n\n- The `reference_genome` parameter value is used to select references in bowtie2 and bedtools slopbed. Only references that are present in bowtie2 **and** bedtools slopbed are selectable. If your favorite reference genome is not available ask your administrator to make sure that each bowtie2 reference has a corresponding len file for use in bedtools slopbed.", - "report": { + "readme": "# correlation of samples on peaks:\n\n## Inputs dataset\n\n- A list of peak files.\n- Sample BAM or CRAM files.\n\n## Inputs values\n\n- Reference genome: this field will be adapted to the genomes available for bedtools sortBED (dbkeys table).\n\n## Processing\n\n- The workflow will concatenate the list of peak files given as input.\n- Sorts and merges the concatenated BED file by chromosome using `bedtools sortBED` and `bedtools mergeBED`, respectively.\n- Computes the read coverages for each BAM/CRAM file on the sorted and merged list of genomic regions present in the peak files using `multiBamSummary`.\n- Calculates and visualizes pairwise correlation values between the read coverages using the tool `plotCorrelation`.\n- The workflow produces three outputs:\n - a compressed numpy array containing the raw count of the read coverages (i.e., the output of `multiBamSummary`) in `.npz` format\n - the same raw count of the read coverages (i.e., the output of `multiBamSummary`) in `.tabular` format\n - a plot of pairwise correlation values between the read coverages (i.e., the output of `plotCorrelation`).\n\n### Warning\n\n- The `reference_genome` parameter value is used to select the appropriate chromosome information for sorting BED files with `bedtools sortBED`. Make sure that the selected reference genome is compatible with the provided peak files." "report": { "markdown": "\n# Workflow Execution Report\n\n## Workflow Inputs\n```galaxy\ninvocation_inputs()\n```\n\n## Workflow Outputs\n```galaxy\ninvocation_outputs()\n```\n\n## Workflow\n```galaxy\nworkflow_display()\n```\n" }, "steps": { From 62b9af0f02e16bdc268b17663627fb230c774f8b Mon Sep 17 00:00:00 2001 From: Olusegun Ekundayo Adebayo Date: Wed, 15 Jul 2026 18:09:55 +0200 Subject: [PATCH 13/15] updated .ga readme --- .../correlation-of-samples-on-peaks.ga | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/workflows/epigenetics/correlation-of-samples-on-peaks/correlation-of-samples-on-peaks.ga b/workflows/epigenetics/correlation-of-samples-on-peaks/correlation-of-samples-on-peaks.ga index 9ad87e7ca7..96f2286268 100644 --- a/workflows/epigenetics/correlation-of-samples-on-peaks/correlation-of-samples-on-peaks.ga +++ b/workflows/epigenetics/correlation-of-samples-on-peaks/correlation-of-samples-on-peaks.ga @@ -23,7 +23,8 @@ "license": "MIT", "release":"0.1", "name": "correlation of samples on peaks", - "readme": "# correlation of samples on peaks:\n\n## Inputs dataset\n\n- A list of peak files.\n- Sample BAM or CRAM files.\n\n## Inputs values\n\n- Reference genome: this field will be adapted to the genomes available for bedtools sortBED (dbkeys table).\n\n## Processing\n\n- The workflow will concatenate the list of peak files given as input.\n- Sorts and merges the concatenated BED file by chromosome using `bedtools sortBED` and `bedtools mergeBED`, respectively.\n- Computes the read coverages for each BAM/CRAM file on the sorted and merged list of genomic regions present in the peak files using `multiBamSummary`.\n- Calculates and visualizes pairwise correlation values between the read coverages using the tool `plotCorrelation`.\n- The workflow produces three outputs:\n - a compressed numpy array containing the raw count of the read coverages (i.e., the output of `multiBamSummary`) in `.npz` format\n - the same raw count of the read coverages (i.e., the output of `multiBamSummary`) in `.tabular` format\n - a plot of pairwise correlation values between the read coverages (i.e., the output of `plotCorrelation`).\n\n### Warning\n\n- The `reference_genome` parameter value is used to select the appropriate chromosome information for sorting BED files with `bedtools sortBED`. Make sure that the selected reference genome is compatible with the provided peak files." "report": { + "readme": "# correlation of samples on peaks:\n\n## Inputs dataset\n\n- A list of peak files.\n- Sample BAM or CRAM files.\n\n## Inputs values\n\n- Reference genome: this field will be adapted to the genomes available for bedtools sortBED (dbkeys table).\n\n## Processing\n\n- The workflow will concatenate the list of peak files given as input.\n- Sorts and merges the concatenated BED file by chromosome using `bedtools sortBED` and `bedtools mergeBED`, respectively.\n- Computes the read coverages for each BAM/CRAM file on the sorted and merged list of genomic regions present in the peak files using `multiBamSummary`.\n- Calculates and visualizes pairwise correlation values between the read coverages using the tool `plotCorrelation`.\n- The workflow produces three outputs:\n - a compressed numpy array containing the raw count of the read coverages (i.e., the output of `multiBamSummary`) in `.npz` format\n - the same raw count of the read coverages (i.e., the output of `multiBamSummary`) in `.tabular` format\n - a plot of pairwise correlation values between the read coverages (i.e., the output of `plotCorrelation`).\n\n### Warning\n\n- The `reference_genome` parameter value is used to select the appropriate chromosome information for sorting BED files with `bedtools sortBED`. Make sure that the selected reference genome is compatible with the provided peak files.", + "report": { "markdown": "\n# Workflow Execution Report\n\n## Workflow Inputs\n```galaxy\ninvocation_inputs()\n```\n\n## Workflow Outputs\n```galaxy\ninvocation_outputs()\n```\n\n## Workflow\n```galaxy\nworkflow_display()\n```\n" }, "steps": { From 28c5669c74a576868c09ab5f263405f2d9e80162 Mon Sep 17 00:00:00 2001 From: Olusegun Ekundayo Adebayo Date: Wed, 15 Jul 2026 19:10:07 +0200 Subject: [PATCH 14/15] updated .ga readme --- .../correlation-of-samples-on-peaks.ga | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflows/epigenetics/correlation-of-samples-on-peaks/correlation-of-samples-on-peaks.ga b/workflows/epigenetics/correlation-of-samples-on-peaks/correlation-of-samples-on-peaks.ga index 96f2286268..78dc5117c7 100644 --- a/workflows/epigenetics/correlation-of-samples-on-peaks/correlation-of-samples-on-peaks.ga +++ b/workflows/epigenetics/correlation-of-samples-on-peaks/correlation-of-samples-on-peaks.ga @@ -23,7 +23,7 @@ "license": "MIT", "release":"0.1", "name": "correlation of samples on peaks", - "readme": "# correlation of samples on peaks:\n\n## Inputs dataset\n\n- A list of peak files.\n- Sample BAM or CRAM files.\n\n## Inputs values\n\n- Reference genome: this field will be adapted to the genomes available for bedtools sortBED (dbkeys table).\n\n## Processing\n\n- The workflow will concatenate the list of peak files given as input.\n- Sorts and merges the concatenated BED file by chromosome using `bedtools sortBED` and `bedtools mergeBED`, respectively.\n- Computes the read coverages for each BAM/CRAM file on the sorted and merged list of genomic regions present in the peak files using `multiBamSummary`.\n- Calculates and visualizes pairwise correlation values between the read coverages using the tool `plotCorrelation`.\n- The workflow produces three outputs:\n - a compressed numpy array containing the raw count of the read coverages (i.e., the output of `multiBamSummary`) in `.npz` format\n - the same raw count of the read coverages (i.e., the output of `multiBamSummary`) in `.tabular` format\n - a plot of pairwise correlation values between the read coverages (i.e., the output of `plotCorrelation`).\n\n### Warning\n\n- The `reference_genome` parameter value is used to select the appropriate chromosome information for sorting BED files with `bedtools sortBED`. Make sure that the selected reference genome is compatible with the provided peak files.", + "readme": "# correlation of samples on peaks:\n\n## Input datasets\n\n- A collection (list) of peak files.\n- A collection (list) of BAM or CRAM files\n\n## Inputs values\n\n- Reference genome: this field will be adapted to the genomes for bedtools sort (dbkeys table)\n\n## Processing\n\n- The workflow will concatenate the list of peak files given as input\n- Sorts and merges the concatenated BED file by Chromosome using `bedtools sortBED` and `bedtools mergeBED`, respectively.\n- Computes the read coverages for each BAM/CRAM file on the sorted and merged list of genomic region present in the bed files using `multiBamSummary`.\n- Calculate and visualize pairwise correlation values between the read coverages using the tool `plotCorrelation`.\n- The workflow produces three outputs:\n - a compressed numpy array containing the raw count of the read coverages (i.e., the output of `multiBamSummary`) in .npz format\n - The same raw count of the read coverages (i.e., the output of `multiBamSummary`) in .tabular format\n - a plot of pairwise correlation values between the read coverages (i.e., the output of `plotCorrelation`).", "report": { "markdown": "\n# Workflow Execution Report\n\n## Workflow Inputs\n```galaxy\ninvocation_inputs()\n```\n\n## Workflow Outputs\n```galaxy\ninvocation_outputs()\n```\n\n## Workflow\n```galaxy\nworkflow_display()\n```\n" }, From 6bebe85da26e2d34e4126b106c36a54b4919a5b9 Mon Sep 17 00:00:00 2001 From: Olusegun Ekundayo Adebayo Date: Thu, 16 Jul 2026 14:03:04 +0200 Subject: [PATCH 15/15] fixed the invalid YAML version in .dockstore.yml --- .../correlation-of-samples-on-peaks/.dockstore.yml | 4 ++-- .../correlation-of-samples-on-peaks.ga | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/workflows/epigenetics/correlation-of-samples-on-peaks/.dockstore.yml b/workflows/epigenetics/correlation-of-samples-on-peaks/.dockstore.yml index 3c9570dffd..5ea14e00cc 100644 --- a/workflows/epigenetics/correlation-of-samples-on-peaks/.dockstore.yml +++ b/workflows/epigenetics/correlation-of-samples-on-peaks/.dockstore.yml @@ -1,6 +1,6 @@ -version: 0.1 +version: 1.2 workflows: -- name: main +- name: correlation-of-samples-on-peaks subclass: Galaxy publish: true primaryDescriptorPath: /correlation-of-samples-on-peaks.ga diff --git a/workflows/epigenetics/correlation-of-samples-on-peaks/correlation-of-samples-on-peaks.ga b/workflows/epigenetics/correlation-of-samples-on-peaks/correlation-of-samples-on-peaks.ga index 78dc5117c7..885d7e913e 100644 --- a/workflows/epigenetics/correlation-of-samples-on-peaks/correlation-of-samples-on-peaks.ga +++ b/workflows/epigenetics/correlation-of-samples-on-peaks/correlation-of-samples-on-peaks.ga @@ -29,14 +29,14 @@ }, "steps": { "0": { - "annotation": "Here we are taking a collection of all peak files you which to use.", + "annotation": "Here we are taking a collection of all peak files you wish to use.", "content_id": null, "errors": null, "id": 0, "input_connections": {}, "inputs": [ { - "description": "Here we are taking a collection of all peak files you which to use.", + "description": "Here we are taking a collection of all peak files you wish to use.", "name": "Collection of peak files" } ], @@ -156,7 +156,7 @@ "workflow_outputs": [] }, "4": { - "annotation": "This sorts the bed files by choses rules", + "annotation": "This sorts the bed files by chosen rules", "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/bedtools/bedtools_sortbed/2.31.1+galaxy0", "errors": null, "id": 4,