From 0cbbaf33d152e7694b4a2f907c65be6821615626 Mon Sep 17 00:00:00 2001 From: Yvan Le Bras Date: Thu, 26 Sep 2019 09:55:50 +0200 Subject: [PATCH 01/83] Initialize GBIF cleaning tutorial --- .../tutorials/gbif_cleaning/tutorial.md | 468 ++++++++++++++++++ 1 file changed, 468 insertions(+) create mode 100644 topics/ecology/tutorials/gbif_cleaning/tutorial.md diff --git a/topics/ecology/tutorials/gbif_cleaning/tutorial.md b/topics/ecology/tutorials/gbif_cleaning/tutorial.md new file mode 100644 index 00000000000000..54dd76c4e04baf --- /dev/null +++ b/topics/ecology/tutorials/gbif_cleaning/tutorial.md @@ -0,0 +1,468 @@ +--- +layout: tutorial_hands_on + +title: Cleaning GBIF data for the use in Ecology +zenodo_link: '' +questions: +- Which biological questions are addressed by the tutorial? +- Which bioinformatics techniques are important to know for this type of data? +objectives: +- The learning objectives are the goals of the tutorial +- They will be informed by your audience and will communicate to them and to yourself + what you should focus on during the course +- They are single sentences describing what a learner should be able to do once they + have completed the tutorial +- You can use Bloom's Taxonomy to write effective learning objectives +time_estimation: 3H +key_points: +- The take-home messages +- They will appear at the end of the tutorial +contributors: +- contributor1 +- contributor2 + +--- + + +# Introduction +{:.no_toc} + + + +General introduction about the topic and then an introduction of the +tutorial (the questions and the objectives). It is nice also to have a +scheme to sum up the pipeline used during the tutorial. The idea is to +give to trainees insight into the content of the tutorial and the (theoretical +and technical) key concepts they will learn. + +You may want to cite some publications; this can be done by adding citations to the +bibliography file (`tutorial.bib` file next to your `tutorial.md` file). These citations +must be in bibtex format. If you have the DOI for the paper you wish to cite, you can +get the corresponding bibtex entry using [doi2bib.org](https://doi2bib.org). + +With the example you will find in the `tutorial.bib` file, you can add a citation to +this article here in your tutorial like this: +{% raw %} `{% cite Batut2018 %}`{% endraw %}. +This will be rendered like this: {% cite Batut2018 %}, and links to a +[bibliography section](#bibliography) which will automatically be created at the end of the +tutorial. + + +**Please follow our +[tutorial to learn how to fill the Markdown]({{ site.baseurl }}/topics/contributing/tutorials/create-new-tutorial-content/tutorial.html)** + +> ### Agenda +> +> In this tutorial, we will cover: +> +> 1. TOC +> {:toc} +> +{: .agenda} + +# Title for your first section + +Give some background about what the trainees will be doing in the section. +Remember that many people reading your materials will likely be novices, +so make sure to explain all the relevant concepts. + +## Title for a subsection +Section and subsection titles will be displayed in the tutorial index on the left side of +the page, so try to make them informative and concise! + +# Hands-on Sections +Below are a series of hand-on boxes, one for each tool in your workflow file. +Often you may wish to combine several boxes into one or make other adjustments such +as breaking the tutorial into sections, we encourage you to make such changes as you +see fit, this is just a starting point :) + +Anywhere you find the word "***TODO***", there is something that needs to be changed +depending on the specifics of your tutorial. + +have fun! + +## Get data + +> ### {% icon hands_on %} Hands-on: Data upload +> +> 1. Create a new history for this tutorial +> 2. Import the files from [Zenodo]() or from the shared data library +> +> ``` +> +> ``` +> ***TODO***: *Add the files by the ones on Zenodo here (if not added)* +> +> ***TODO***: *Remove the useless files (if added)* +> +> {% include snippets/import_via_link.md %} +> {% include snippets/import_from_data_library.md %} +> +> 3. Rename the datasets +> 4. Check that the datatype +> +> {% include snippets/change_datatype.md datatype="datatypes" %} +> +> 5. Add to each database a tag corresponding to ... +> +> {% include snippets/add_tag.md %} +> +{: .hands_on} + +# Title of the section usually corresponding to a big step in the analysis + +It comes first a description of the step: some background and some theory. +Some image can be added there to support the theory explanation: + +![Alternative text](../../images/image_name "Legend of the image") + +The idea is to keep the theory description before quite simple to focus more on the practical part. + +***TODO***: *Consider adding a detail box to expand the theory* + +> ### {% icon details %} More details about the theory +> +> But to describe more details, it is possible to use the detail boxes which are expandable +> +{: .details} + +A big step can have several subsections or sub steps: + + +## Sub-step with **Count** + +> ### {% icon hands_on %} Hands-on: Task description +> +> 1. **Count** {% icon tool %} with the following parameters: +> - {% icon param-file %} *"from dataset"*: `output` (output of **Get species occurrences data** {% icon tool %}) +> - *"Count occurrences of values in column(s)"*: `c[17]` +> +> ***TODO***: *Check parameter descriptions* +> +> ***TODO***: *Consider adding a comment or tip box* +> +> > ### {% icon comment %} Comment +> > +> > A comment about the tool or something else. This box can also be in the main text +> {: .comment} +> +{: .hands_on} + +***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* + +> ### {% icon question %} Questions +> +> 1. Question1? +> 2. Question2? +> +> > ### {% icon solution %} Solution +> > +> > 1. Answer for question1 +> > 2. Answer for question2 +> > +> {: .solution} +> +{: .question} + +## Sub-step with **Filter** + +> ### {% icon hands_on %} Hands-on: Task description +> +> 1. **Filter** {% icon tool %} with the following parameters: +> - {% icon param-file %} *"Filter"*: `output` (output of **Get species occurrences data** {% icon tool %}) +> - *"With following condition"*: `c17=='HUMAN_OBSERVATION' or c17=='OBSERVATION' or c17=='PRESERVED_SPECIMEN'` +> - *"Number of header lines to skip"*: `1` +> +> ***TODO***: *Check parameter descriptions* +> +> ***TODO***: *Consider adding a comment or tip box* +> +> > ### {% icon comment %} Comment +> > +> > A comment about the tool or something else. This box can also be in the main text +> {: .comment} +> +{: .hands_on} + +***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* + +> ### {% icon question %} Questions +> +> 1. Question1? +> 2. Question2? +> +> > ### {% icon solution %} Solution +> > +> > 1. Answer for question1 +> > 2. Answer for question2 +> > +> {: .solution} +> +{: .question} + +## Sub-step with **Summary Statistics** + +> ### {% icon hands_on %} Hands-on: Task description +> +> 1. **Summary Statistics** {% icon tool %} with the following parameters: +> - {% icon param-file %} *"Summary statistics on"*: `out_file1` (output of **Filter** {% icon tool %}) +> - *"Column or expression"*: `c57` +> +> ***TODO***: *Check parameter descriptions* +> +> ***TODO***: *Consider adding a comment or tip box* +> +> > ### {% icon comment %} Comment +> > +> > A comment about the tool or something else. This box can also be in the main text +> {: .comment} +> +{: .hands_on} + +***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* + +> ### {% icon question %} Questions +> +> 1. Question1? +> 2. Question2? +> +> > ### {% icon solution %} Solution +> > +> > 1. Answer for question1 +> > 2. Answer for question2 +> > +> {: .solution} +> +{: .question} + +## Sub-step with **Filter** + +> ### {% icon hands_on %} Hands-on: Task description +> +> 1. **Filter** {% icon tool %} with the following parameters: +> - {% icon param-file %} *"Filter"*: `out_file1` (output of **Filter** {% icon tool %}) +> - *"With following condition"*: `c57>0 and c57<99` +> - *"Number of header lines to skip"*: `1` +> +> ***TODO***: *Check parameter descriptions* +> +> ***TODO***: *Consider adding a comment or tip box* +> +> > ### {% icon comment %} Comment +> > +> > A comment about the tool or something else. This box can also be in the main text +> {: .comment} +> +{: .hands_on} + +***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* + +> ### {% icon question %} Questions +> +> 1. Question1? +> 2. Question2? +> +> > ### {% icon solution %} Solution +> > +> > 1. Answer for question1 +> > 2. Answer for question2 +> > +> {: .solution} +> +{: .question} + +## Sub-step with **Summary Statistics** + +> ### {% icon hands_on %} Hands-on: Task description +> +> 1. **Summary Statistics** {% icon tool %} with the following parameters: +> - {% icon param-file %} *"Summary statistics on"*: `out_file1` (output of **Filter** {% icon tool %}) +> - *"Column or expression"*: `c39` +> +> ***TODO***: *Check parameter descriptions* +> +> ***TODO***: *Consider adding a comment or tip box* +> +> > ### {% icon comment %} Comment +> > +> > A comment about the tool or something else. This box can also be in the main text +> {: .comment} +> +{: .hands_on} + +***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* + +> ### {% icon question %} Questions +> +> 1. Question1? +> 2. Question2? +> +> > ### {% icon solution %} Solution +> > +> > 1. Answer for question1 +> > 2. Answer for question2 +> > +> {: .solution} +> +{: .question} + +## Sub-step with **Filter** + +> ### {% icon hands_on %} Hands-on: Task description +> +> 1. **Filter** {% icon tool %} with the following parameters: +> - {% icon param-file %} *"Filter"*: `out_file1` (output of **Filter** {% icon tool %}) +> - *"With following condition"*: `c39>1945` +> - *"Number of header lines to skip"*: `1` +> +> ***TODO***: *Check parameter descriptions* +> +> ***TODO***: *Consider adding a comment or tip box* +> +> > ### {% icon comment %} Comment +> > +> > A comment about the tool or something else. This box can also be in the main text +> {: .comment} +> +{: .hands_on} + +***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* + +> ### {% icon question %} Questions +> +> 1. Question1? +> 2. Question2? +> +> > ### {% icon solution %} Solution +> > +> > 1. Answer for question1 +> > 2. Answer for question2 +> > +> {: .solution} +> +{: .question} + +## Sub-step with **Count** + +> ### {% icon hands_on %} Hands-on: Task description +> +> 1. **Count** {% icon tool %} with the following parameters: +> - {% icon param-file %} *"from dataset"*: `out_file1` (output of **Filter** {% icon tool %}) +> - *"Count occurrences of values in column(s)"*: `c[31]` +> +> ***TODO***: *Check parameter descriptions* +> +> ***TODO***: *Consider adding a comment or tip box* +> +> > ### {% icon comment %} Comment +> > +> > A comment about the tool or something else. This box can also be in the main text +> {: .comment} +> +{: .hands_on} + +***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* + +> ### {% icon question %} Questions +> +> 1. Question1? +> 2. Question2? +> +> > ### {% icon solution %} Solution +> > +> > 1. Answer for question1 +> > 2. Answer for question2 +> > +> {: .solution} +> +{: .question} + +## Sub-step with **Filter** + +> ### {% icon hands_on %} Hands-on: Task description +> +> 1. **Filter** {% icon tool %} with the following parameters: +> - {% icon param-file %} *"Filter"*: `out_file1` (output of **Filter** {% icon tool %}) +> - *"Number of header lines to skip"*: `1` +> +> ***TODO***: *Check parameter descriptions* +> +> ***TODO***: *Consider adding a comment or tip box* +> +> > ### {% icon comment %} Comment +> > +> > A comment about the tool or something else. This box can also be in the main text +> {: .comment} +> +{: .hands_on} + +***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* + +> ### {% icon question %} Questions +> +> 1. Question1? +> 2. Question2? +> +> > ### {% icon solution %} Solution +> > +> > 1. Answer for question1 +> > 2. Answer for question2 +> > +> {: .solution} +> +{: .question} + +## Sub-step with **OGR2ogr** + +> ### {% icon hands_on %} Hands-on: Task description +> +> 1. **OGR2ogr** {% icon tool %} with the following parameters: +> - {% icon param-file %} *"Gdal supported input file"*: `out_file1` (output of **Filter** {% icon tool %}) +> - *"Conversion format"*: `GEOJSON` +> - *"Specify advanced parameters"*: `Yes, see full parameter list.` +> - In *"Add an input dataset open option"*: +> - {% icon param-repeat %} *"Insert Add an input dataset open option"* +> - *"Input dataset open option"*: `X_POSSIBLE_NAMES=longitude` +> - {% icon param-repeat %} *"Insert Add an input dataset open option"* +> - *"Input dataset open option"*: `Y_POSSIBLE_NAMES=latitude` +> +> ***TODO***: *Check parameter descriptions* +> +> ***TODO***: *Consider adding a comment or tip box* +> +> > ### {% icon comment %} Comment +> > +> > A comment about the tool or something else. This box can also be in the main text +> {: .comment} +> +{: .hands_on} + +***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* + +> ### {% icon question %} Questions +> +> 1. Question1? +> 2. Question2? +> +> > ### {% icon solution %} Solution +> > +> > 1. Answer for question1 +> > 2. Answer for question2 +> > +> {: .solution} +> +{: .question} + + +## Re-arrange + +To create the template, each step of the workflow had its own subsection. + +***TODO***: *Re-arrange the generated subsections into sections or other subsections. +Consider merging some hands-on boxes to have a meaningful flow of the analyses* + +# Conclusion +{:.no_toc} + +Sum up the tutorial and the key takeaways here. We encourage adding an overview image of the +pipeline used. From e18119429a716b3b30f11e1e03f5cc8645f4167b Mon Sep 17 00:00:00 2001 From: Yvan Le Bras Date: Thu, 26 Sep 2019 10:14:42 +0200 Subject: [PATCH 02/83] Create test --- topics/ecology/tutorials/gbif_cleaning/workflows/test | 1 + 1 file changed, 1 insertion(+) create mode 100644 topics/ecology/tutorials/gbif_cleaning/workflows/test diff --git a/topics/ecology/tutorials/gbif_cleaning/workflows/test b/topics/ecology/tutorials/gbif_cleaning/workflows/test new file mode 100644 index 00000000000000..9daeafb9864cf4 --- /dev/null +++ b/topics/ecology/tutorials/gbif_cleaning/workflows/test @@ -0,0 +1 @@ +test From 82fd99d6a3d0c891d08060f5971e107173f48235 Mon Sep 17 00:00:00 2001 From: Yvan Le Bras Date: Thu, 26 Sep 2019 10:15:08 +0200 Subject: [PATCH 03/83] Add workflow file --- .../ecology/tutorials/gbif_cleaning/workflows/main_workflow.ga | 1 + 1 file changed, 1 insertion(+) create mode 100644 topics/ecology/tutorials/gbif_cleaning/workflows/main_workflow.ga diff --git a/topics/ecology/tutorials/gbif_cleaning/workflows/main_workflow.ga b/topics/ecology/tutorials/gbif_cleaning/workflows/main_workflow.ga new file mode 100644 index 00000000000000..540e06a5bdd23e --- /dev/null +++ b/topics/ecology/tutorials/gbif_cleaning/workflows/main_workflow.ga @@ -0,0 +1 @@ +{"uuid": "9606d354-e46b-49cb-9cbd-639da361eb6a", "tags": ["name:Ecology", "name:GBIF", "name:OccurencesData", "name:MapVisualization"], "format-version": "0.1", "name": "Ecology: From GBIF to curated occurences data", "version": 1, "steps": {"0": {"tool_id": "toolshed.g2.bx.psu.edu/repos/ecology/spocc_occ/spocc_occ/0.9.0", "tool_version": "0.9.0", "outputs": [{"type": "tabular", "name": "output"}], "workflow_outputs": [], "input_connections": {}, "tool_state": "{\"from\": \"[\\\"gbif\\\"]\", \"__rerun_remap_job_id__\": null, \"sname\": \"{\\\"__class__\\\": \\\"RuntimeValue\\\"}\", \"limit\": \"\\\"999999\\\"\", \"__page__\": null}", "id": 0, "tool_shed_repository": {"owner": "ecology", "changeset_revision": "724ad06de5a5", "name": "spocc_occ", "tool_shed": "toolshed.g2.bx.psu.edu"}, "uuid": "ee526bd2-f19b-451a-a404-907af2a9f485", "errors": null, "name": "Get species occurrences data", "post_job_actions": {}, "label": null, "inputs": [{"name": "sname", "description": "runtime parameter for tool Get species occurrences data"}], "position": {"top": 200, "left": 200}, "annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/ecology/spocc_occ/spocc_occ/0.9.0", "type": "tool"}, "1": {"tool_id": "Count1", "tool_version": "1.0.3", "outputs": [{"type": "tabular", "name": "out_file1"}], "workflow_outputs": [], "input_connections": {"input": {"output_name": "output", "id": 0}}, "tool_state": "{\"__page__\": null, \"sorting\": \"\\\"value\\\"\", \"column\": \"[\\\"17\\\"]\", \"__rerun_remap_job_id__\": null, \"delim\": \"\\\"T\\\"\", \"input\": \"{\\\"__class__\\\": \\\"ConnectedValue\\\"}\", \"chromInfo\": \"\\\"/opt/galaxy/tool-data/shared/ucsc/chrom/?.len\\\"\"}", "id": 1, "uuid": "6708ab22-727e-45ea-9bcd-82294eeedd25", "errors": null, "name": "Count", "post_job_actions": {}, "label": null, "inputs": [], "position": {"top": 200, "left": 420}, "annotation": "", "content_id": "Count1", "type": "tool"}, "2": {"tool_id": "Filter1", "tool_version": "1.1.0", "outputs": [{"type": "input", "name": "out_file1"}], "workflow_outputs": [], "input_connections": {"input": {"output_name": "output", "id": 0}}, "tool_state": "{\"input\": \"{\\\"__class__\\\": \\\"RuntimeValue\\\"}\", \"__rerun_remap_job_id__\": null, \"header_lines\": \"\\\"1\\\"\", \"cond\": \"\\\"c17=='HUMAN_OBSERVATION' or c17=='OBSERVATION' or c17=='PRESERVED_SPECIMEN'\\\"\", \"__page__\": null}", "id": 2, "uuid": "fa0f295a-bed6-4215-a7cb-7d2ee1d82c59", "errors": null, "name": "Filter", "post_job_actions": {"TagDatasetActionout_file1": {"output_name": "out_file1", "action_type": "TagDatasetAction", "action_arguments": {"tags": "#BasisOfRecordCuration"}}}, "label": null, "inputs": [{"name": "input", "description": "runtime parameter for tool Filter"}], "position": {"top": 318, "left": 419}, "annotation": "", "content_id": "Filter1", "type": "tool"}, "3": {"tool_id": "Summary_Statistics1", "tool_version": "1.1.2", "outputs": [{"type": "tabular", "name": "out_file1"}], "workflow_outputs": [], "input_connections": {"input": {"output_name": "out_file1", "id": 2}}, "tool_state": "{\"__page__\": null, \"input\": \"{\\\"__class__\\\": \\\"ConnectedValue\\\"}\", \"__rerun_remap_job_id__\": null, \"cond\": \"\\\"c57\\\"\", \"chromInfo\": \"\\\"/opt/galaxy/tool-data/shared/ucsc/chrom/?.len\\\"\"}", "id": 3, "uuid": "edebfe30-7a3a-47fc-b2e8-534eae7c665d", "errors": null, "name": "Summary Statistics", "post_job_actions": {}, "label": null, "inputs": [], "position": {"top": 200, "left": 640}, "annotation": "", "content_id": "Summary_Statistics1", "type": "tool"}, "4": {"tool_id": "Filter1", "tool_version": "1.1.0", "outputs": [{"type": "input", "name": "out_file1"}], "workflow_outputs": [], "input_connections": {"input": {"output_name": "out_file1", "id": 2}}, "tool_state": "{\"input\": \"{\\\"__class__\\\": \\\"RuntimeValue\\\"}\", \"__rerun_remap_job_id__\": null, \"header_lines\": \"\\\"1\\\"\", \"cond\": \"\\\"c57>0 and c57<99\\\"\", \"__page__\": null}", "id": 4, "uuid": "4a8882d9-f00a-4367-acfc-2537ef4f56fd", "errors": null, "name": "Filter", "post_job_actions": {"TagDatasetActionout_file1": {"output_name": "out_file1", "action_type": "TagDatasetAction", "action_arguments": {"tags": "#CountsCuration"}}}, "label": null, "inputs": [{"name": "input", "description": "runtime parameter for tool Filter"}], "position": {"top": 319, "left": 640}, "annotation": "", "content_id": "Filter1", "type": "tool"}, "5": {"tool_id": "Summary_Statistics1", "tool_version": "1.1.2", "outputs": [{"type": "tabular", "name": "out_file1"}], "workflow_outputs": [], "input_connections": {"input": {"output_name": "out_file1", "id": 2}}, "tool_state": "{\"__page__\": null, \"input\": \"{\\\"__class__\\\": \\\"ConnectedValue\\\"}\", \"__rerun_remap_job_id__\": null, \"cond\": \"\\\"c39\\\"\", \"chromInfo\": \"\\\"/opt/galaxy/tool-data/shared/ucsc/chrom/?.len\\\"\"}", "id": 5, "uuid": "f313d4aa-2a4a-4652-a1fa-5126ec0f456e", "errors": null, "name": "Summary Statistics", "post_job_actions": {}, "label": null, "inputs": [], "position": {"top": 440, "left": 640}, "annotation": "", "content_id": "Summary_Statistics1", "type": "tool"}, "6": {"tool_id": "Filter1", "tool_version": "1.1.0", "outputs": [{"type": "input", "name": "out_file1"}], "workflow_outputs": [], "input_connections": {"input": {"output_name": "out_file1", "id": 4}}, "tool_state": "{\"input\": \"{\\\"__class__\\\": \\\"RuntimeValue\\\"}\", \"__rerun_remap_job_id__\": null, \"header_lines\": \"\\\"1\\\"\", \"cond\": \"\\\"c39>1945\\\"\", \"__page__\": null}", "id": 6, "uuid": "7cf557b0-f7a4-48e2-9370-b319e2117ca4", "errors": null, "name": "Filter", "post_job_actions": {"TagDatasetActionout_file1": {"output_name": "out_file1", "action_type": "TagDatasetAction", "action_arguments": {"tags": "#DateCuration"}}}, "label": null, "inputs": [{"name": "input", "description": "runtime parameter for tool Filter"}], "position": {"top": 201, "left": 860}, "annotation": "", "content_id": "Filter1", "type": "tool"}, "7": {"tool_id": "Count1", "tool_version": "1.0.3", "outputs": [{"type": "tabular", "name": "out_file1"}], "workflow_outputs": [], "input_connections": {"input": {"output_name": "out_file1", "id": 6}}, "tool_state": "{\"__page__\": null, \"sorting\": \"\\\"value\\\"\", \"column\": \"[\\\"31\\\"]\", \"__rerun_remap_job_id__\": null, \"delim\": \"\\\"T\\\"\", \"input\": \"{\\\"__class__\\\": \\\"ConnectedValue\\\"}\", \"chromInfo\": \"\\\"/opt/galaxy/tool-data/shared/ucsc/chrom/?.len\\\"\"}", "id": 7, "uuid": "1c579b41-554e-4c27-a62b-270d7e346b67", "errors": null, "name": "Count", "post_job_actions": {}, "label": null, "inputs": [], "position": {"top": 200, "left": 1080}, "annotation": "", "content_id": "Count1", "type": "tool"}, "8": {"tool_id": "Filter1", "tool_version": "1.1.0", "outputs": [{"type": "input", "name": "out_file1"}], "workflow_outputs": [], "input_connections": {"input": {"output_name": "out_file1", "id": 6}}, "tool_state": "{\"input\": \"{\\\"__class__\\\": \\\"RuntimeValue\\\"}\", \"__rerun_remap_job_id__\": null, \"header_lines\": \"\\\"1\\\"\", \"cond\": \"{\\\"__class__\\\": \\\"RuntimeValue\\\"}\", \"__page__\": null}", "id": 8, "uuid": "c2ec4eef-f46f-47d9-b185-c661da666de6", "errors": null, "name": "Filter", "post_job_actions": {"TagDatasetActionout_file1": {"output_name": "out_file1", "action_type": "TagDatasetAction", "action_arguments": {"tags": "#FamilyCuration"}}}, "label": null, "inputs": [{"name": "input", "description": "runtime parameter for tool Filter"}, {"name": "cond", "description": "runtime parameter for tool Filter"}], "position": {"top": 320, "left": 1080}, "annotation": "", "content_id": "Filter1", "type": "tool"}, "9": {"tool_id": "toolshed.g2.bx.psu.edu/repos/ecology/gdal_ogr2ogr/gdal_ogr2ogr/3.0.0", "tool_version": "3.0.0", "outputs": [{"type": "xml", "name": "output"}], "workflow_outputs": [], "input_connections": {"input": {"output_name": "out_file1", "id": 8}}, "tool_state": "{\"__page__\": null, \"input\": \"{\\\"__class__\\\": \\\"RuntimeValue\\\"}\", \"__rerun_remap_job_id__\": null, \"f\": \"\\\"GeoJSON\\\"\", \"settings\": \"{\\\"__current_case__\\\": 1, \\\"advanced\\\": \\\"advanced\\\", \\\"series_oo\\\": [{\\\"__index__\\\": 0, \\\"oo\\\": \\\"X_POSSIBLE_NAMES=longitude\\\"}, {\\\"__index__\\\": 1, \\\"oo\\\": \\\"Y_POSSIBLE_NAMES=latitude\\\"}]}\"}", "id": 9, "tool_shed_repository": {"owner": "ecology", "changeset_revision": "e12db3b4d3a6", "name": "gdal_ogr2ogr", "tool_shed": "toolshed.g2.bx.psu.edu"}, "uuid": "386e9875-4d43-48c2-b930-d53d7d9f0cbd", "errors": null, "name": "OGR2ogr", "post_job_actions": {"ChangeDatatypeActionoutput": {"output_name": "output", "action_type": "ChangeDatatypeAction", "action_arguments": {"newtype": "geojson"}}, "TagDatasetActionoutput": {"output_name": "output", "action_type": "TagDatasetAction", "action_arguments": {"tags": "#MapVisualization"}}}, "label": null, "inputs": [{"name": "input", "description": "runtime parameter for tool OGR2ogr"}], "position": {"top": 200, "left": 1299}, "annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/ecology/gdal_ogr2ogr/gdal_ogr2ogr/3.0.0", "type": "tool"}}, "annotation": "", "a_galaxy_workflow": "true"} \ No newline at end of file From 6b21d9fb01fa20a9f8052e702a7c705c753303af Mon Sep 17 00:00:00 2001 From: Yvan Le Bras Date: Thu, 26 Sep 2019 10:15:39 +0200 Subject: [PATCH 04/83] Delete test --- topics/ecology/tutorials/gbif_cleaning/workflows/test | 1 - 1 file changed, 1 deletion(-) delete mode 100644 topics/ecology/tutorials/gbif_cleaning/workflows/test diff --git a/topics/ecology/tutorials/gbif_cleaning/workflows/test b/topics/ecology/tutorials/gbif_cleaning/workflows/test deleted file mode 100644 index 9daeafb9864cf4..00000000000000 --- a/topics/ecology/tutorials/gbif_cleaning/workflows/test +++ /dev/null @@ -1 +0,0 @@ -test From cd7395fcb06c3361cb677d341552e45875b5605d Mon Sep 17 00:00:00 2001 From: Yvan Le Bras Date: Thu, 26 Sep 2019 10:16:13 +0200 Subject: [PATCH 05/83] Add bib file --- .../tutorials/gbif_cleaning/tutorial.bib | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 topics/ecology/tutorials/gbif_cleaning/tutorial.bib diff --git a/topics/ecology/tutorials/gbif_cleaning/tutorial.bib b/topics/ecology/tutorials/gbif_cleaning/tutorial.bib new file mode 100644 index 00000000000000..754c04639efb8e --- /dev/null +++ b/topics/ecology/tutorials/gbif_cleaning/tutorial.bib @@ -0,0 +1,30 @@ + +# This is the bibliography file for your tutorial. +# +# To add bibliography (bibtex) entries here, follow these steps: +# 1) Find the DOI for the article you want to cite +# 2) Go to https://doi2bib.org and fill in the DOI +# 3) Copy the resulting bibtex entry into this file +# +# To cite the example below, in your tutorial.md file +# use {% Batut2018 %} + +@article{Batut2018, + doi = {10.1016/j.cels.2018.05.012}, + url = {https://doi.org/10.1016/j.cels.2018.05.012}, + year = {2018}, + month = jun, + publisher = {Elsevier {BV}}, + volume = {6}, + number = {6}, + pages = {752--758.e1}, + author = {B{\'{e}}r{\'{e}}nice Batut and Saskia Hiltemann and Andrea Bagnacani and Dannon Baker and Vivek Bhardwaj and + Clemens Blank and Anthony Bretaudeau and Loraine Brillet-Gu{\'{e}}guen and Martin {\v{C}}ech and John Chilton + and Dave Clements and Olivia Doppelt-Azeroual and Anika Erxleben and Mallory Ann Freeberg and Simon Gladman and + Youri Hoogstrate and Hans-Rudolf Hotz and Torsten Houwaart and Pratik Jagtap and Delphine Larivi{\`{e}}re and + Gildas Le Corguill{\'{e}} and Thomas Manke and Fabien Mareuil and Fidel Ram{\'{i}}rez and Devon Ryan and + Florian Christoph Sigloch and Nicola Soranzo and Joachim Wolff and Pavankumar Videm and Markus Wolfien and + Aisanjiang Wubuli and Dilmurat Yusuf and James Taylor and Rolf Backofen and Anton Nekrutenko and Bj\"{o}rn Gr\"{u}ning}, + title = {Community-Driven Data Analysis Training for Biology}, + journal = {Cell Systems} +} \ No newline at end of file From d7ec542b6eefeec8df3e71009a1d8318f84997db Mon Sep 17 00:00:00 2001 From: Yvan Le Bras Date: Thu, 3 Oct 2019 19:11:05 +0200 Subject: [PATCH 06/83] add zizka2018 --- .../tutorials/gbif_cleaning/tutorial.bib | 21 +++---------------- 1 file changed, 3 insertions(+), 18 deletions(-) diff --git a/topics/ecology/tutorials/gbif_cleaning/tutorial.bib b/topics/ecology/tutorials/gbif_cleaning/tutorial.bib index 754c04639efb8e..6c58612ef4f8eb 100644 --- a/topics/ecology/tutorials/gbif_cleaning/tutorial.bib +++ b/topics/ecology/tutorials/gbif_cleaning/tutorial.bib @@ -9,22 +9,7 @@ # To cite the example below, in your tutorial.md file # use {% Batut2018 %} -@article{Batut2018, - doi = {10.1016/j.cels.2018.05.012}, - url = {https://doi.org/10.1016/j.cels.2018.05.012}, +@misc{zizka2018, + url = {https://ropensci.github.io/CoordinateCleaner/articles/Cleaning_GBIF_data_with_CoordinateCleaner.html}, year = {2018}, - month = jun, - publisher = {Elsevier {BV}}, - volume = {6}, - number = {6}, - pages = {752--758.e1}, - author = {B{\'{e}}r{\'{e}}nice Batut and Saskia Hiltemann and Andrea Bagnacani and Dannon Baker and Vivek Bhardwaj and - Clemens Blank and Anthony Bretaudeau and Loraine Brillet-Gu{\'{e}}guen and Martin {\v{C}}ech and John Chilton - and Dave Clements and Olivia Doppelt-Azeroual and Anika Erxleben and Mallory Ann Freeberg and Simon Gladman and - Youri Hoogstrate and Hans-Rudolf Hotz and Torsten Houwaart and Pratik Jagtap and Delphine Larivi{\`{e}}re and - Gildas Le Corguill{\'{e}} and Thomas Manke and Fabien Mareuil and Fidel Ram{\'{i}}rez and Devon Ryan and - Florian Christoph Sigloch and Nicola Soranzo and Joachim Wolff and Pavankumar Videm and Markus Wolfien and - Aisanjiang Wubuli and Dilmurat Yusuf and James Taylor and Rolf Backofen and Anton Nekrutenko and Bj\"{o}rn Gr\"{u}ning}, - title = {Community-Driven Data Analysis Training for Biology}, - journal = {Cell Systems} -} \ No newline at end of file +} From 3cf0f274c28e103a6cad50ebe94bb9fc2a952daf Mon Sep 17 00:00:00 2001 From: Yvan Le Bras Date: Thu, 3 Oct 2019 19:23:50 +0200 Subject: [PATCH 07/83] Initialize introduction and first tool --- .../tutorials/gbif_cleaning/tutorial.md | 81 +++++++------------ 1 file changed, 30 insertions(+), 51 deletions(-) diff --git a/topics/ecology/tutorials/gbif_cleaning/tutorial.md b/topics/ecology/tutorials/gbif_cleaning/tutorial.md index 54dd76c4e04baf..413ed8d39336ba 100644 --- a/topics/ecology/tutorials/gbif_cleaning/tutorial.md +++ b/topics/ecology/tutorials/gbif_cleaning/tutorial.md @@ -5,7 +5,11 @@ title: Cleaning GBIF data for the use in Ecology zenodo_link: '' questions: - Which biological questions are addressed by the tutorial? -- Which bioinformatics techniques are important to know for this type of data? +Cleaning GBIF dataset for further anlayzes +- Which ecoinformatics techniques are important to know for this type of data? + - Data handling + - Data filtering + - Data visualization, notably delaing with GIS data objectives: - The learning objectives are the goals of the tutorial - They will be informed by your audience and will communicate to them and to yourself @@ -13,13 +17,14 @@ objectives: - They are single sentences describing what a learner should be able to do once they have completed the tutorial - You can use Bloom's Taxonomy to write effective learning objectives -time_estimation: 3H +time_estimation: 0H30 key_points: - The take-home messages +Take the time to look at your data first, manipulate it before analyzing it - They will appear at the end of the tutorial contributors: -- contributor1 -- contributor2 +- yvanlebras +- sbenateau --- @@ -29,24 +34,11 @@ contributors: -General introduction about the topic and then an introduction of the -tutorial (the questions and the objectives). It is nice also to have a -scheme to sum up the pipeline used during the tutorial. The idea is to -give to trainees insight into the content of the tutorial and the (theoretical -and technical) key concepts they will learn. +GBIF (Global Biodiversity Information Facility, www.gbif.org) is for sure THE most remarkable biodiversity data aggregator worldwide giving access to more than 1 billion reords across all taxonomic groups. The data provided via these sources are highly valuable for research. However, some issues exist concerning data heterogeneity, as they are obtained from various collection methods and sources. -You may want to cite some publications; this can be done by adding citations to the -bibliography file (`tutorial.bib` file next to your `tutorial.md` file). These citations -must be in bibtex format. If you have the DOI for the paper you wish to cite, you can -get the corresponding bibtex entry using [doi2bib.org](https://doi2bib.org). - -With the example you will find in the `tutorial.bib` file, you can add a citation to -this article here in your tutorial like this: -{% raw %} `{% cite Batut2018 %}`{% endraw %}. -This will be rendered like this: {% cite Batut2018 %}, and links to a -[bibliography section](#bibliography) which will automatically be created at the end of the -tutorial. +In this tutorial we will propose a way to clean occurence records retrieved from GBIF. +This tutorial is based on the Ropensci {% cite zizka2018 %} tutorial. **Please follow our [tutorial to learn how to fill the Markdown]({{ site.baseurl }}/topics/contributing/tutorials/create-new-tutorial-content/tutorial.html)** @@ -55,55 +47,42 @@ tutorial. > > In this tutorial, we will cover: > -> 1. TOC +> 1. Download data from GBIF +> 2. Clean data +> 3. Convert text data into GIS format +> 4. Visualize spatialized data > {:toc} > {: .agenda} -# Title for your first section - -Give some background about what the trainees will be doing in the section. -Remember that many people reading your materials will likely be novices, -so make sure to explain all the relevant concepts. - -## Title for a subsection -Section and subsection titles will be displayed in the tutorial index on the left side of -the page, so try to make them informative and concise! - -# Hands-on Sections -Below are a series of hand-on boxes, one for each tool in your workflow file. -Often you may wish to combine several boxes into one or make other adjustments such -as breaking the tutorial into sections, we encourage you to make such changes as you -see fit, this is just a starting point :) - -Anywhere you find the word "***TODO***", there is something that needs to be changed -depending on the specifics of your tutorial. - -have fun! +# Retrive data from GBIF ## Get data > ### {% icon hands_on %} Hands-on: Data upload > > 1. Create a new history for this tutorial -> 2. Import the files from [Zenodo]() or from the shared data library +> 2. Import the files from GBIF +> ### {% icon hands_on %} Hands-on: Task description +> +> 1. **Get species occurrences data** {% icon tool %} with the following parameters: +> - {% icon param-file %} *"Scientific name of the species"*: write the scientific name of something you are interested on, for example `Loligo vulgaris` +> - *"Data source to get data from"*: `Global Biodiversity Information Facility : GBIF` +> - *"Number of records to return"*: `999999` is a maimum value > -> ``` -> -> ``` -> ***TODO***: *Add the files by the ones on Zenodo here (if not added)* +> > ### {% icon comment %} Comment +> > +> > ***TODO***: *Consider adding a comment regarding the maximum value, the R package spocc ...* > -> ***TODO***: *Remove the useless files (if added)* +> {: .comment} > -> {% include snippets/import_via_link.md %} -> {% include snippets/import_from_data_library.md %} +{: .hands_on} > -> 3. Rename the datasets > 4. Check that the datatype > > {% include snippets/change_datatype.md datatype="datatypes" %} > -> 5. Add to each database a tag corresponding to ... +> 5. Add to each dataset a tag corresponding to the species and/or the data source for example > > {% include snippets/add_tag.md %} > From ec912a8223e53e78f0c6d91d047e80ec6e2f3238 Mon Sep 17 00:00:00 2001 From: Yvan Le Bras Date: Thu, 3 Oct 2019 19:32:52 +0200 Subject: [PATCH 08/83] Adding Count step2 --- .../tutorials/gbif_cleaning/tutorial.md | 38 ++++--------------- 1 file changed, 7 insertions(+), 31 deletions(-) diff --git a/topics/ecology/tutorials/gbif_cleaning/tutorial.md b/topics/ecology/tutorials/gbif_cleaning/tutorial.md index 413ed8d39336ba..398aa82b4a43bc 100644 --- a/topics/ecology/tutorials/gbif_cleaning/tutorial.md +++ b/topics/ecology/tutorials/gbif_cleaning/tutorial.md @@ -88,56 +88,32 @@ This tutorial is based on the Ropensci {% cite zizka2018 %} tutorial. > {: .hands_on} -# Title of the section usually corresponding to a big step in the analysis -It comes first a description of the step: some background and some theory. -Some image can be added there to support the theory explanation: +## Where come from the records? -![Alternative text](../../images/image_name "Legend of the image") - -The idea is to keep the theory description before quite simple to focus more on the practical part. - -***TODO***: *Consider adding a detail box to expand the theory* - -> ### {% icon details %} More details about the theory -> -> But to describe more details, it is possible to use the detail boxes which are expandable -> -{: .details} - -A big step can have several subsections or sub steps: - - -## Sub-step with **Count** - -> ### {% icon hands_on %} Hands-on: Task description +> ### {% icon hands_on %} Hands-on: Here we propose to investigate the contaent of the dataet looking notably at the "basisOfRecord" attribute to know more about heterogenity related to the data collection origin. > > 1. **Count** {% icon tool %} with the following parameters: > - {% icon param-file %} *"from dataset"*: `output` (output of **Get species occurrences data** {% icon tool %}) > - *"Count occurrences of values in column(s)"*: `c[17]` > -> ***TODO***: *Check parameter descriptions* -> -> ***TODO***: *Consider adding a comment or tip box* > > > ### {% icon comment %} Comment > > -> > A comment about the tool or something else. This box can also be in the main text +> > This tool is one of the important "classical" Galaxy tool who allows you to better synthtize information content of your data. Here we apply this tool to the 17th column (corresponding to the basisOfRecord attribute) but don't hesitate to investigate others attributes! > {: .comment} > {: .hands_on} -***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* - > ### {% icon question %} Questions > -> 1. Question1? -> 2. Question2? +> 1. How many different types of data collection origin are there? +> 2. What is your assumption regarding this heterogeneity? > > > ### {% icon solution %} Solution > > -> > 1. Answer for question1 -> > 2. Answer for question2 +> > 1. 5 +> > 2. each basisOfRecord type is related to different collection method so different data quality > > > {: .solution} > From 3c7b1cffb8460c100d8e04b3397a651ff37cbc20 Mon Sep 17 00:00:00 2001 From: Yvan Le Bras Date: Thu, 3 Oct 2019 19:39:54 +0200 Subject: [PATCH 09/83] Step3 filtering --- .../tutorials/gbif_cleaning/tutorial.md | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/topics/ecology/tutorials/gbif_cleaning/tutorial.md b/topics/ecology/tutorials/gbif_cleaning/tutorial.md index 398aa82b4a43bc..130e3e10266fb4 100644 --- a/topics/ecology/tutorials/gbif_cleaning/tutorial.md +++ b/topics/ecology/tutorials/gbif_cleaning/tutorial.md @@ -119,7 +119,7 @@ This tutorial is based on the Ropensci {% cite zizka2018 %} tutorial. > {: .question} -## Sub-step with **Filter** +## Filtering data thanks to the data origin > ### {% icon hands_on %} Hands-on: Task description > @@ -128,10 +128,6 @@ This tutorial is based on the Ropensci {% cite zizka2018 %} tutorial. > - *"With following condition"*: `c17=='HUMAN_OBSERVATION' or c17=='OBSERVATION' or c17=='PRESERVED_SPECIMEN'` > - *"Number of header lines to skip"*: `1` > -> ***TODO***: *Check parameter descriptions* -> -> ***TODO***: *Consider adding a comment or tip box* -> > > ### {% icon comment %} Comment > > > > A comment about the tool or something else. This box can also be in the main text @@ -139,22 +135,28 @@ This tutorial is based on the Ropensci {% cite zizka2018 %} tutorial. > {: .hands_on} -***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* - > ### {% icon question %} Questions > -> 1. Question1? -> 2. Question2? +> 1. How many records are kept and what is the percentage of filtered data? +> 2. Why are we keeping only these 3 types of data collection origin? > > > ### {% icon solution %} Solution > > -> > 1. Answer for question1 -> > 2. Answer for question2 +> > 1. 470 and 8.79% of records were drop out +> > 2. These data collection methods are the most relevant > > > {: .solution} > {: .question} +{: .hands_on} +> +> 1. Add to the outpu dataset a propagating tag corresponding to the filtering criteria adding `#basisOfRecord` string for example +> +> {% include snippets/add_tag.md %} +> +{: .hands_on} + ## Sub-step with **Summary Statistics** > ### {% icon hands_on %} Hands-on: Task description From 9e9b54e89dcea0a2855979ef3f0d585536f0d115 Mon Sep 17 00:00:00 2001 From: Yvan Le Bras Date: Thu, 3 Oct 2019 19:48:42 +0200 Subject: [PATCH 10/83] step4 summarystats --- .../tutorials/gbif_cleaning/tutorial.md | 25 ++++++------------- 1 file changed, 8 insertions(+), 17 deletions(-) diff --git a/topics/ecology/tutorials/gbif_cleaning/tutorial.md b/topics/ecology/tutorials/gbif_cleaning/tutorial.md index 130e3e10266fb4..9681129cc93c77 100644 --- a/topics/ecology/tutorials/gbif_cleaning/tutorial.md +++ b/topics/ecology/tutorials/gbif_cleaning/tutorial.md @@ -151,42 +151,33 @@ This tutorial is based on the Ropensci {% cite zizka2018 %} tutorial. {: .hands_on} > -> 1. Add to the outpu dataset a propagating tag corresponding to the filtering criteria adding `#basisOfRecord` string for example +> 1. Add to the output dataset a propagating tag corresponding to the filtering criteria adding `#basisOfRecord` string for example > > {% include snippets/add_tag.md %} > {: .hands_on} -## Sub-step with **Summary Statistics** +## Have a look at the age of records -> ### {% icon hands_on %} Hands-on: Task description +> ### {% icon hands_on %} Hands-on: Here we propose to have a look at the age of records to know if there is some ancient data to maybe not consider. > > 1. **Summary Statistics** {% icon tool %} with the following parameters: > - {% icon param-file %} *"Summary statistics on"*: `out_file1` (output of **Filter** {% icon tool %}) > - *"Column or expression"*: `c57` > -> ***TODO***: *Check parameter descriptions* -> -> ***TODO***: *Consider adding a comment or tip box* -> -> > ### {% icon comment %} Comment -> > -> > A comment about the tool or something else. This box can also be in the main text -> {: .comment} +> 2. Add to the output dataset a propagating tag corresponding to the filtering criteria adding `#ageOfRecord` string for example > {: .hands_on} -***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* - > ### {% icon question %} Questions > -> 1. Question1? -> 2. Question2? +> 1. What is the year of the oldier and younger records? +> 2. Why do you think of interest to treat differently ancient and recent records? > > > ### {% icon solution %} Solution > > -> > 1. Answer for question1 -> > 2. Answer for question2 +> > 1. From 1903 to 2018 +> > 2. We can assume ancient records are not made in the same way than recent one so keeping ancient records can enhance heterogeneity of our dataset. > > > {: .solution} > From 5a9ac6467e6e10f002d3484787b9449eeae43214 Mon Sep 17 00:00:00 2001 From: sbenateau Date: Thu, 3 Oct 2019 22:51:00 +0200 Subject: [PATCH 11/83] Change header, clean comments and remove typos --- .../tutorials/gbif_cleaning/tutorial.md | 25 +++++++------------ 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/topics/ecology/tutorials/gbif_cleaning/tutorial.md b/topics/ecology/tutorials/gbif_cleaning/tutorial.md index 9681129cc93c77..28bf8de2b3bea0 100644 --- a/topics/ecology/tutorials/gbif_cleaning/tutorial.md +++ b/topics/ecology/tutorials/gbif_cleaning/tutorial.md @@ -4,24 +4,20 @@ layout: tutorial_hands_on title: Cleaning GBIF data for the use in Ecology zenodo_link: '' questions: -- Which biological questions are addressed by the tutorial? -Cleaning GBIF dataset for further anlayzes +- How can I get ecological data from GBIF? +- How do I check and clean the data from GBIF? + - Which ecoinformatics techniques are important to know for this type of data? - Data handling - Data filtering - - Data visualization, notably delaing with GIS data + - Data visualization, notably dealing with GIS data objectives: -- The learning objectives are the goals of the tutorial -- They will be informed by your audience and will communicate to them and to yourself - what you should focus on during the course -- They are single sentences describing what a learner should be able to do once they - have completed the tutorial -- You can use Bloom's Taxonomy to write effective learning objectives +- Get occurrence data on a species +- Visualize the data to understand them +- Clean GBIF dataset for further analyses time_estimation: 0H30 key_points: -- The take-home messages -Take the time to look at your data first, manipulate it before analyzing it -- They will appear at the end of the tutorial +- Take the time to look at your data first, manipulate it before analyzing it contributors: - yvanlebras - sbenateau @@ -40,9 +36,6 @@ In this tutorial we will propose a way to clean occurence records retrieved from This tutorial is based on the Ropensci {% cite zizka2018 %} tutorial. -**Please follow our -[tutorial to learn how to fill the Markdown]({{ site.baseurl }}/topics/contributing/tutorials/create-new-tutorial-content/tutorial.html)** - > ### Agenda > > In this tutorial, we will cover: @@ -91,7 +84,7 @@ This tutorial is based on the Ropensci {% cite zizka2018 %} tutorial. ## Where come from the records? -> ### {% icon hands_on %} Hands-on: Here we propose to investigate the contaent of the dataet looking notably at the "basisOfRecord" attribute to know more about heterogenity related to the data collection origin. +> ### {% icon hands_on %} Hands-on: Here we propose to investigate the contaent of the dataet looking notably at the "basisOfRecord" attribute to know more about heterogenity related to the data collection origin. > > 1. **Count** {% icon tool %} with the following parameters: > - {% icon param-file %} *"from dataset"*: `output` (output of **Get species occurrences data** {% icon tool %}) From 3ad598297cf868dc6fd68ccd70fe3ff3875f41ae Mon Sep 17 00:00:00 2001 From: Yvan Le Bras Date: Mon, 31 Jan 2022 15:58:41 +0100 Subject: [PATCH 12/83] Delete tutorial.md --- .../tutorials/gbif_cleaning/tutorial.md | 409 ------------------ 1 file changed, 409 deletions(-) delete mode 100644 topics/ecology/tutorials/gbif_cleaning/tutorial.md diff --git a/topics/ecology/tutorials/gbif_cleaning/tutorial.md b/topics/ecology/tutorials/gbif_cleaning/tutorial.md deleted file mode 100644 index 28bf8de2b3bea0..00000000000000 --- a/topics/ecology/tutorials/gbif_cleaning/tutorial.md +++ /dev/null @@ -1,409 +0,0 @@ ---- -layout: tutorial_hands_on - -title: Cleaning GBIF data for the use in Ecology -zenodo_link: '' -questions: -- How can I get ecological data from GBIF? -- How do I check and clean the data from GBIF? - -- Which ecoinformatics techniques are important to know for this type of data? - - Data handling - - Data filtering - - Data visualization, notably dealing with GIS data -objectives: -- Get occurrence data on a species -- Visualize the data to understand them -- Clean GBIF dataset for further analyses -time_estimation: 0H30 -key_points: -- Take the time to look at your data first, manipulate it before analyzing it -contributors: -- yvanlebras -- sbenateau - ---- - - -# Introduction -{:.no_toc} - - - -GBIF (Global Biodiversity Information Facility, www.gbif.org) is for sure THE most remarkable biodiversity data aggregator worldwide giving access to more than 1 billion reords across all taxonomic groups. The data provided via these sources are highly valuable for research. However, some issues exist concerning data heterogeneity, as they are obtained from various collection methods and sources. - -In this tutorial we will propose a way to clean occurence records retrieved from GBIF. - -This tutorial is based on the Ropensci {% cite zizka2018 %} tutorial. - -> ### Agenda -> -> In this tutorial, we will cover: -> -> 1. Download data from GBIF -> 2. Clean data -> 3. Convert text data into GIS format -> 4. Visualize spatialized data -> {:toc} -> -{: .agenda} - -# Retrive data from GBIF - -## Get data - -> ### {% icon hands_on %} Hands-on: Data upload -> -> 1. Create a new history for this tutorial -> 2. Import the files from GBIF -> ### {% icon hands_on %} Hands-on: Task description -> -> 1. **Get species occurrences data** {% icon tool %} with the following parameters: -> - {% icon param-file %} *"Scientific name of the species"*: write the scientific name of something you are interested on, for example `Loligo vulgaris` -> - *"Data source to get data from"*: `Global Biodiversity Information Facility : GBIF` -> - *"Number of records to return"*: `999999` is a maimum value -> -> > ### {% icon comment %} Comment -> > -> > ***TODO***: *Consider adding a comment regarding the maximum value, the R package spocc ...* -> -> {: .comment} -> -{: .hands_on} -> -> 4. Check that the datatype -> -> {% include snippets/change_datatype.md datatype="datatypes" %} -> -> 5. Add to each dataset a tag corresponding to the species and/or the data source for example -> -> {% include snippets/add_tag.md %} -> -{: .hands_on} - - -## Where come from the records? - -> ### {% icon hands_on %} Hands-on: Here we propose to investigate the contaent of the dataet looking notably at the "basisOfRecord" attribute to know more about heterogenity related to the data collection origin. -> -> 1. **Count** {% icon tool %} with the following parameters: -> - {% icon param-file %} *"from dataset"*: `output` (output of **Get species occurrences data** {% icon tool %}) -> - *"Count occurrences of values in column(s)"*: `c[17]` -> -> -> > ### {% icon comment %} Comment -> > -> > This tool is one of the important "classical" Galaxy tool who allows you to better synthtize information content of your data. Here we apply this tool to the 17th column (corresponding to the basisOfRecord attribute) but don't hesitate to investigate others attributes! -> {: .comment} -> -{: .hands_on} - -> ### {% icon question %} Questions -> -> 1. How many different types of data collection origin are there? -> 2. What is your assumption regarding this heterogeneity? -> -> > ### {% icon solution %} Solution -> > -> > 1. 5 -> > 2. each basisOfRecord type is related to different collection method so different data quality -> > -> {: .solution} -> -{: .question} - -## Filtering data thanks to the data origin - -> ### {% icon hands_on %} Hands-on: Task description -> -> 1. **Filter** {% icon tool %} with the following parameters: -> - {% icon param-file %} *"Filter"*: `output` (output of **Get species occurrences data** {% icon tool %}) -> - *"With following condition"*: `c17=='HUMAN_OBSERVATION' or c17=='OBSERVATION' or c17=='PRESERVED_SPECIMEN'` -> - *"Number of header lines to skip"*: `1` -> -> > ### {% icon comment %} Comment -> > -> > A comment about the tool or something else. This box can also be in the main text -> {: .comment} -> -{: .hands_on} - -> ### {% icon question %} Questions -> -> 1. How many records are kept and what is the percentage of filtered data? -> 2. Why are we keeping only these 3 types of data collection origin? -> -> > ### {% icon solution %} Solution -> > -> > 1. 470 and 8.79% of records were drop out -> > 2. These data collection methods are the most relevant -> > -> {: .solution} -> -{: .question} - -{: .hands_on} -> -> 1. Add to the output dataset a propagating tag corresponding to the filtering criteria adding `#basisOfRecord` string for example -> -> {% include snippets/add_tag.md %} -> -{: .hands_on} - -## Have a look at the age of records - -> ### {% icon hands_on %} Hands-on: Here we propose to have a look at the age of records to know if there is some ancient data to maybe not consider. -> -> 1. **Summary Statistics** {% icon tool %} with the following parameters: -> - {% icon param-file %} *"Summary statistics on"*: `out_file1` (output of **Filter** {% icon tool %}) -> - *"Column or expression"*: `c57` -> -> 2. Add to the output dataset a propagating tag corresponding to the filtering criteria adding `#ageOfRecord` string for example -> -{: .hands_on} - -> ### {% icon question %} Questions -> -> 1. What is the year of the oldier and younger records? -> 2. Why do you think of interest to treat differently ancient and recent records? -> -> > ### {% icon solution %} Solution -> > -> > 1. From 1903 to 2018 -> > 2. We can assume ancient records are not made in the same way than recent one so keeping ancient records can enhance heterogeneity of our dataset. -> > -> {: .solution} -> -{: .question} - -## Sub-step with **Filter** - -> ### {% icon hands_on %} Hands-on: Task description -> -> 1. **Filter** {% icon tool %} with the following parameters: -> - {% icon param-file %} *"Filter"*: `out_file1` (output of **Filter** {% icon tool %}) -> - *"With following condition"*: `c57>0 and c57<99` -> - *"Number of header lines to skip"*: `1` -> -> ***TODO***: *Check parameter descriptions* -> -> ***TODO***: *Consider adding a comment or tip box* -> -> > ### {% icon comment %} Comment -> > -> > A comment about the tool or something else. This box can also be in the main text -> {: .comment} -> -{: .hands_on} - -***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* - -> ### {% icon question %} Questions -> -> 1. Question1? -> 2. Question2? -> -> > ### {% icon solution %} Solution -> > -> > 1. Answer for question1 -> > 2. Answer for question2 -> > -> {: .solution} -> -{: .question} - -## Sub-step with **Summary Statistics** - -> ### {% icon hands_on %} Hands-on: Task description -> -> 1. **Summary Statistics** {% icon tool %} with the following parameters: -> - {% icon param-file %} *"Summary statistics on"*: `out_file1` (output of **Filter** {% icon tool %}) -> - *"Column or expression"*: `c39` -> -> ***TODO***: *Check parameter descriptions* -> -> ***TODO***: *Consider adding a comment or tip box* -> -> > ### {% icon comment %} Comment -> > -> > A comment about the tool or something else. This box can also be in the main text -> {: .comment} -> -{: .hands_on} - -***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* - -> ### {% icon question %} Questions -> -> 1. Question1? -> 2. Question2? -> -> > ### {% icon solution %} Solution -> > -> > 1. Answer for question1 -> > 2. Answer for question2 -> > -> {: .solution} -> -{: .question} - -## Sub-step with **Filter** - -> ### {% icon hands_on %} Hands-on: Task description -> -> 1. **Filter** {% icon tool %} with the following parameters: -> - {% icon param-file %} *"Filter"*: `out_file1` (output of **Filter** {% icon tool %}) -> - *"With following condition"*: `c39>1945` -> - *"Number of header lines to skip"*: `1` -> -> ***TODO***: *Check parameter descriptions* -> -> ***TODO***: *Consider adding a comment or tip box* -> -> > ### {% icon comment %} Comment -> > -> > A comment about the tool or something else. This box can also be in the main text -> {: .comment} -> -{: .hands_on} - -***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* - -> ### {% icon question %} Questions -> -> 1. Question1? -> 2. Question2? -> -> > ### {% icon solution %} Solution -> > -> > 1. Answer for question1 -> > 2. Answer for question2 -> > -> {: .solution} -> -{: .question} - -## Sub-step with **Count** - -> ### {% icon hands_on %} Hands-on: Task description -> -> 1. **Count** {% icon tool %} with the following parameters: -> - {% icon param-file %} *"from dataset"*: `out_file1` (output of **Filter** {% icon tool %}) -> - *"Count occurrences of values in column(s)"*: `c[31]` -> -> ***TODO***: *Check parameter descriptions* -> -> ***TODO***: *Consider adding a comment or tip box* -> -> > ### {% icon comment %} Comment -> > -> > A comment about the tool or something else. This box can also be in the main text -> {: .comment} -> -{: .hands_on} - -***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* - -> ### {% icon question %} Questions -> -> 1. Question1? -> 2. Question2? -> -> > ### {% icon solution %} Solution -> > -> > 1. Answer for question1 -> > 2. Answer for question2 -> > -> {: .solution} -> -{: .question} - -## Sub-step with **Filter** - -> ### {% icon hands_on %} Hands-on: Task description -> -> 1. **Filter** {% icon tool %} with the following parameters: -> - {% icon param-file %} *"Filter"*: `out_file1` (output of **Filter** {% icon tool %}) -> - *"Number of header lines to skip"*: `1` -> -> ***TODO***: *Check parameter descriptions* -> -> ***TODO***: *Consider adding a comment or tip box* -> -> > ### {% icon comment %} Comment -> > -> > A comment about the tool or something else. This box can also be in the main text -> {: .comment} -> -{: .hands_on} - -***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* - -> ### {% icon question %} Questions -> -> 1. Question1? -> 2. Question2? -> -> > ### {% icon solution %} Solution -> > -> > 1. Answer for question1 -> > 2. Answer for question2 -> > -> {: .solution} -> -{: .question} - -## Sub-step with **OGR2ogr** - -> ### {% icon hands_on %} Hands-on: Task description -> -> 1. **OGR2ogr** {% icon tool %} with the following parameters: -> - {% icon param-file %} *"Gdal supported input file"*: `out_file1` (output of **Filter** {% icon tool %}) -> - *"Conversion format"*: `GEOJSON` -> - *"Specify advanced parameters"*: `Yes, see full parameter list.` -> - In *"Add an input dataset open option"*: -> - {% icon param-repeat %} *"Insert Add an input dataset open option"* -> - *"Input dataset open option"*: `X_POSSIBLE_NAMES=longitude` -> - {% icon param-repeat %} *"Insert Add an input dataset open option"* -> - *"Input dataset open option"*: `Y_POSSIBLE_NAMES=latitude` -> -> ***TODO***: *Check parameter descriptions* -> -> ***TODO***: *Consider adding a comment or tip box* -> -> > ### {% icon comment %} Comment -> > -> > A comment about the tool or something else. This box can also be in the main text -> {: .comment} -> -{: .hands_on} - -***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* - -> ### {% icon question %} Questions -> -> 1. Question1? -> 2. Question2? -> -> > ### {% icon solution %} Solution -> > -> > 1. Answer for question1 -> > 2. Answer for question2 -> > -> {: .solution} -> -{: .question} - - -## Re-arrange - -To create the template, each step of the workflow had its own subsection. - -***TODO***: *Re-arrange the generated subsections into sections or other subsections. -Consider merging some hands-on boxes to have a meaningful flow of the analyses* - -# Conclusion -{:.no_toc} - -Sum up the tutorial and the key takeaways here. We encourage adding an overview image of the -pipeline used. From 654d97dce10ed975ee99aa68fe47a01431c8bf23 Mon Sep 17 00:00:00 2001 From: Yvan Le Bras Date: Mon, 31 Jan 2022 15:58:55 +0100 Subject: [PATCH 13/83] Delete tutorial.bib --- .../ecology/tutorials/gbif_cleaning/tutorial.bib | 15 --------------- 1 file changed, 15 deletions(-) delete mode 100644 topics/ecology/tutorials/gbif_cleaning/tutorial.bib diff --git a/topics/ecology/tutorials/gbif_cleaning/tutorial.bib b/topics/ecology/tutorials/gbif_cleaning/tutorial.bib deleted file mode 100644 index 6c58612ef4f8eb..00000000000000 --- a/topics/ecology/tutorials/gbif_cleaning/tutorial.bib +++ /dev/null @@ -1,15 +0,0 @@ - -# This is the bibliography file for your tutorial. -# -# To add bibliography (bibtex) entries here, follow these steps: -# 1) Find the DOI for the article you want to cite -# 2) Go to https://doi2bib.org and fill in the DOI -# 3) Copy the resulting bibtex entry into this file -# -# To cite the example below, in your tutorial.md file -# use {% Batut2018 %} - -@misc{zizka2018, - url = {https://ropensci.github.io/CoordinateCleaner/articles/Cleaning_GBIF_data_with_CoordinateCleaner.html}, - year = {2018}, -} From 86ba6f30c3c8e76d2a8f07c2a333a13a48cabfc5 Mon Sep 17 00:00:00 2001 From: Yvan Le Bras Date: Mon, 31 Jan 2022 15:59:12 +0100 Subject: [PATCH 14/83] Delete main_workflow.ga --- .../ecology/tutorials/gbif_cleaning/workflows/main_workflow.ga | 1 - 1 file changed, 1 deletion(-) delete mode 100644 topics/ecology/tutorials/gbif_cleaning/workflows/main_workflow.ga diff --git a/topics/ecology/tutorials/gbif_cleaning/workflows/main_workflow.ga b/topics/ecology/tutorials/gbif_cleaning/workflows/main_workflow.ga deleted file mode 100644 index 540e06a5bdd23e..00000000000000 --- a/topics/ecology/tutorials/gbif_cleaning/workflows/main_workflow.ga +++ /dev/null @@ -1 +0,0 @@ -{"uuid": "9606d354-e46b-49cb-9cbd-639da361eb6a", "tags": ["name:Ecology", "name:GBIF", "name:OccurencesData", "name:MapVisualization"], "format-version": "0.1", "name": "Ecology: From GBIF to curated occurences data", "version": 1, "steps": {"0": {"tool_id": "toolshed.g2.bx.psu.edu/repos/ecology/spocc_occ/spocc_occ/0.9.0", "tool_version": "0.9.0", "outputs": [{"type": "tabular", "name": "output"}], "workflow_outputs": [], "input_connections": {}, "tool_state": "{\"from\": \"[\\\"gbif\\\"]\", \"__rerun_remap_job_id__\": null, \"sname\": \"{\\\"__class__\\\": \\\"RuntimeValue\\\"}\", \"limit\": \"\\\"999999\\\"\", \"__page__\": null}", "id": 0, "tool_shed_repository": {"owner": "ecology", "changeset_revision": "724ad06de5a5", "name": "spocc_occ", "tool_shed": "toolshed.g2.bx.psu.edu"}, "uuid": "ee526bd2-f19b-451a-a404-907af2a9f485", "errors": null, "name": "Get species occurrences data", "post_job_actions": {}, "label": null, "inputs": [{"name": "sname", "description": "runtime parameter for tool Get species occurrences data"}], "position": {"top": 200, "left": 200}, "annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/ecology/spocc_occ/spocc_occ/0.9.0", "type": "tool"}, "1": {"tool_id": "Count1", "tool_version": "1.0.3", "outputs": [{"type": "tabular", "name": "out_file1"}], "workflow_outputs": [], "input_connections": {"input": {"output_name": "output", "id": 0}}, "tool_state": "{\"__page__\": null, \"sorting\": \"\\\"value\\\"\", \"column\": \"[\\\"17\\\"]\", \"__rerun_remap_job_id__\": null, \"delim\": \"\\\"T\\\"\", \"input\": \"{\\\"__class__\\\": \\\"ConnectedValue\\\"}\", \"chromInfo\": \"\\\"/opt/galaxy/tool-data/shared/ucsc/chrom/?.len\\\"\"}", "id": 1, "uuid": "6708ab22-727e-45ea-9bcd-82294eeedd25", "errors": null, "name": "Count", "post_job_actions": {}, "label": null, "inputs": [], "position": {"top": 200, "left": 420}, "annotation": "", "content_id": "Count1", "type": "tool"}, "2": {"tool_id": "Filter1", "tool_version": "1.1.0", "outputs": [{"type": "input", "name": "out_file1"}], "workflow_outputs": [], "input_connections": {"input": {"output_name": "output", "id": 0}}, "tool_state": "{\"input\": \"{\\\"__class__\\\": \\\"RuntimeValue\\\"}\", \"__rerun_remap_job_id__\": null, \"header_lines\": \"\\\"1\\\"\", \"cond\": \"\\\"c17=='HUMAN_OBSERVATION' or c17=='OBSERVATION' or c17=='PRESERVED_SPECIMEN'\\\"\", \"__page__\": null}", "id": 2, "uuid": "fa0f295a-bed6-4215-a7cb-7d2ee1d82c59", "errors": null, "name": "Filter", "post_job_actions": {"TagDatasetActionout_file1": {"output_name": "out_file1", "action_type": "TagDatasetAction", "action_arguments": {"tags": "#BasisOfRecordCuration"}}}, "label": null, "inputs": [{"name": "input", "description": "runtime parameter for tool Filter"}], "position": {"top": 318, "left": 419}, "annotation": "", "content_id": "Filter1", "type": "tool"}, "3": {"tool_id": "Summary_Statistics1", "tool_version": "1.1.2", "outputs": [{"type": "tabular", "name": "out_file1"}], "workflow_outputs": [], "input_connections": {"input": {"output_name": "out_file1", "id": 2}}, "tool_state": "{\"__page__\": null, \"input\": \"{\\\"__class__\\\": \\\"ConnectedValue\\\"}\", \"__rerun_remap_job_id__\": null, \"cond\": \"\\\"c57\\\"\", \"chromInfo\": \"\\\"/opt/galaxy/tool-data/shared/ucsc/chrom/?.len\\\"\"}", "id": 3, "uuid": "edebfe30-7a3a-47fc-b2e8-534eae7c665d", "errors": null, "name": "Summary Statistics", "post_job_actions": {}, "label": null, "inputs": [], "position": {"top": 200, "left": 640}, "annotation": "", "content_id": "Summary_Statistics1", "type": "tool"}, "4": {"tool_id": "Filter1", "tool_version": "1.1.0", "outputs": [{"type": "input", "name": "out_file1"}], "workflow_outputs": [], "input_connections": {"input": {"output_name": "out_file1", "id": 2}}, "tool_state": "{\"input\": \"{\\\"__class__\\\": \\\"RuntimeValue\\\"}\", \"__rerun_remap_job_id__\": null, \"header_lines\": \"\\\"1\\\"\", \"cond\": \"\\\"c57>0 and c57<99\\\"\", \"__page__\": null}", "id": 4, "uuid": "4a8882d9-f00a-4367-acfc-2537ef4f56fd", "errors": null, "name": "Filter", "post_job_actions": {"TagDatasetActionout_file1": {"output_name": "out_file1", "action_type": "TagDatasetAction", "action_arguments": {"tags": "#CountsCuration"}}}, "label": null, "inputs": [{"name": "input", "description": "runtime parameter for tool Filter"}], "position": {"top": 319, "left": 640}, "annotation": "", "content_id": "Filter1", "type": "tool"}, "5": {"tool_id": "Summary_Statistics1", "tool_version": "1.1.2", "outputs": [{"type": "tabular", "name": "out_file1"}], "workflow_outputs": [], "input_connections": {"input": {"output_name": "out_file1", "id": 2}}, "tool_state": "{\"__page__\": null, \"input\": \"{\\\"__class__\\\": \\\"ConnectedValue\\\"}\", \"__rerun_remap_job_id__\": null, \"cond\": \"\\\"c39\\\"\", \"chromInfo\": \"\\\"/opt/galaxy/tool-data/shared/ucsc/chrom/?.len\\\"\"}", "id": 5, "uuid": "f313d4aa-2a4a-4652-a1fa-5126ec0f456e", "errors": null, "name": "Summary Statistics", "post_job_actions": {}, "label": null, "inputs": [], "position": {"top": 440, "left": 640}, "annotation": "", "content_id": "Summary_Statistics1", "type": "tool"}, "6": {"tool_id": "Filter1", "tool_version": "1.1.0", "outputs": [{"type": "input", "name": "out_file1"}], "workflow_outputs": [], "input_connections": {"input": {"output_name": "out_file1", "id": 4}}, "tool_state": "{\"input\": \"{\\\"__class__\\\": \\\"RuntimeValue\\\"}\", \"__rerun_remap_job_id__\": null, \"header_lines\": \"\\\"1\\\"\", \"cond\": \"\\\"c39>1945\\\"\", \"__page__\": null}", "id": 6, "uuid": "7cf557b0-f7a4-48e2-9370-b319e2117ca4", "errors": null, "name": "Filter", "post_job_actions": {"TagDatasetActionout_file1": {"output_name": "out_file1", "action_type": "TagDatasetAction", "action_arguments": {"tags": "#DateCuration"}}}, "label": null, "inputs": [{"name": "input", "description": "runtime parameter for tool Filter"}], "position": {"top": 201, "left": 860}, "annotation": "", "content_id": "Filter1", "type": "tool"}, "7": {"tool_id": "Count1", "tool_version": "1.0.3", "outputs": [{"type": "tabular", "name": "out_file1"}], "workflow_outputs": [], "input_connections": {"input": {"output_name": "out_file1", "id": 6}}, "tool_state": "{\"__page__\": null, \"sorting\": \"\\\"value\\\"\", \"column\": \"[\\\"31\\\"]\", \"__rerun_remap_job_id__\": null, \"delim\": \"\\\"T\\\"\", \"input\": \"{\\\"__class__\\\": \\\"ConnectedValue\\\"}\", \"chromInfo\": \"\\\"/opt/galaxy/tool-data/shared/ucsc/chrom/?.len\\\"\"}", "id": 7, "uuid": "1c579b41-554e-4c27-a62b-270d7e346b67", "errors": null, "name": "Count", "post_job_actions": {}, "label": null, "inputs": [], "position": {"top": 200, "left": 1080}, "annotation": "", "content_id": "Count1", "type": "tool"}, "8": {"tool_id": "Filter1", "tool_version": "1.1.0", "outputs": [{"type": "input", "name": "out_file1"}], "workflow_outputs": [], "input_connections": {"input": {"output_name": "out_file1", "id": 6}}, "tool_state": "{\"input\": \"{\\\"__class__\\\": \\\"RuntimeValue\\\"}\", \"__rerun_remap_job_id__\": null, \"header_lines\": \"\\\"1\\\"\", \"cond\": \"{\\\"__class__\\\": \\\"RuntimeValue\\\"}\", \"__page__\": null}", "id": 8, "uuid": "c2ec4eef-f46f-47d9-b185-c661da666de6", "errors": null, "name": "Filter", "post_job_actions": {"TagDatasetActionout_file1": {"output_name": "out_file1", "action_type": "TagDatasetAction", "action_arguments": {"tags": "#FamilyCuration"}}}, "label": null, "inputs": [{"name": "input", "description": "runtime parameter for tool Filter"}, {"name": "cond", "description": "runtime parameter for tool Filter"}], "position": {"top": 320, "left": 1080}, "annotation": "", "content_id": "Filter1", "type": "tool"}, "9": {"tool_id": "toolshed.g2.bx.psu.edu/repos/ecology/gdal_ogr2ogr/gdal_ogr2ogr/3.0.0", "tool_version": "3.0.0", "outputs": [{"type": "xml", "name": "output"}], "workflow_outputs": [], "input_connections": {"input": {"output_name": "out_file1", "id": 8}}, "tool_state": "{\"__page__\": null, \"input\": \"{\\\"__class__\\\": \\\"RuntimeValue\\\"}\", \"__rerun_remap_job_id__\": null, \"f\": \"\\\"GeoJSON\\\"\", \"settings\": \"{\\\"__current_case__\\\": 1, \\\"advanced\\\": \\\"advanced\\\", \\\"series_oo\\\": [{\\\"__index__\\\": 0, \\\"oo\\\": \\\"X_POSSIBLE_NAMES=longitude\\\"}, {\\\"__index__\\\": 1, \\\"oo\\\": \\\"Y_POSSIBLE_NAMES=latitude\\\"}]}\"}", "id": 9, "tool_shed_repository": {"owner": "ecology", "changeset_revision": "e12db3b4d3a6", "name": "gdal_ogr2ogr", "tool_shed": "toolshed.g2.bx.psu.edu"}, "uuid": "386e9875-4d43-48c2-b930-d53d7d9f0cbd", "errors": null, "name": "OGR2ogr", "post_job_actions": {"ChangeDatatypeActionoutput": {"output_name": "output", "action_type": "ChangeDatatypeAction", "action_arguments": {"newtype": "geojson"}}, "TagDatasetActionoutput": {"output_name": "output", "action_type": "TagDatasetAction", "action_arguments": {"tags": "#MapVisualization"}}}, "label": null, "inputs": [{"name": "input", "description": "runtime parameter for tool OGR2ogr"}], "position": {"top": 200, "left": 1299}, "annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/ecology/gdal_ogr2ogr/gdal_ogr2ogr/3.0.0", "type": "tool"}}, "annotation": "", "a_galaxy_workflow": "true"} \ No newline at end of file From f1cc311ab590230f32745fbf33732d1bf2f0010b Mon Sep 17 00:00:00 2001 From: Yvan Le Bras Date: Mon, 31 Jan 2022 21:10:23 +0100 Subject: [PATCH 15/83] Initiate OBITools tutorial --- .../Obitools-metabarcoding/tutorial.md | 537 ++++++++++++++++++ 1 file changed, 537 insertions(+) create mode 100644 topics/ecology/tutorials/Obitools-metabarcoding/tutorial.md diff --git a/topics/ecology/tutorials/Obitools-metabarcoding/tutorial.md b/topics/ecology/tutorials/Obitools-metabarcoding/tutorial.md new file mode 100644 index 00000000000000..6ae6b6773b61f6 --- /dev/null +++ b/topics/ecology/tutorials/Obitools-metabarcoding/tutorial.md @@ -0,0 +1,537 @@ +--- +layout: tutorial_hands_on + +title: Metabarcoding/eDNA through Obitools +zenodo_link: https://zenodo.org/record/5932108/files/wolf_tutorial.zip?download=1 +questions: +- how to analyze DNA metabarcoding / eDNA data produced on Illumina sequencers using the OBITools? +objectives: +- Deal with paired-end data to create consensus sequences +- Clean, filter and anlayse data to obtain strong results +time_estimation: 1H +key_points: +- From raw reads you can process, clean and filter data to obtain a list of species from environmental DNA (eDNA) samples. +contributors: +- colineroyaux +- onorvez +- obitools_team +- yvanlebras + +--- + + +# Introduction +{:.no_toc} + +The data used in this tutorial correspond to the [official OBITools tutorial](https://pythonhosted.org/OBITools/wolves.html) and show how to analyse four wolf scats, using the protocol published in Shehzad et al. (2012) for assessing carnivore diet. After extracting DNA from the faeces, the DNA amplifications were carried out using the primers TTAGATACCCCACTATGC and TAGAACAGGCTCCTCTAG amplifiying the 12S-V5 region (Riaz et al. 2011), together with a wolf blocking oligonucleotide. + +> ### Agenda +> +> In this tutorial, we will cover: +> +> 1. TOC +> {:toc} +> +{: .agenda} + +# OBITools overview +It is always a good idea to have a look at the intermediate results or to evaluate the best parameter for each step. Some commands are designed for that purpose, for example you can use : + +- obicount to count the number of sequence records in a file +- obihead and obitail to view the first or last sequence records of a file +- obistat to get some basic statistics (count, mean, standard deviation) on the attributes (key=value combinations) in the header of each sequence record (see The extended OBITools fasta format in the fasta format description) +- any Galaxy tools corresponding to classical unix command such as less, awk, sort, wc to check your files. + +# Data +The data needed to run the tutorial are the following: + +- fastq files resulting of a GA IIx (Illumina) paired-end (2 x 108 bp) sequencing assay of DNA extracted and amplified from four wolf faeces: + - wolf_F.fastq + - wolf_R.fastq +- the file describing the primers and tags used for all samples sequenced: + - wolf_diet_ngsfilter.txt The tags correspond to short and specific sequences added on the 5’ end of each primer to distinguish the different samples +- the file containing the reference database in a fasta format: + -db_v05_r117.fasta This reference database has been extracted from the release 117 of EMBL using ecoPCR + +## Get data + +> ### {% icon hands_on %} Hands-on: Data upload +> +> 1. Create a new history for this tutorial +> 2. Import the files from [Zenodo](https://zenodo.org/record/5932108/files/wolf_tutorial.zip?download=1) +> +> ``` +> +> ``` +> ***TODO***: *Add the files by the ones on Zenodo here (if not added)* +> +> ***TODO***: *Remove the useless files (if added)* +> +> {% snippet faqs/galaxy/datasets_import_via_link.md %} +> +> {% snippet faqs/galaxy/datasets_import_from_data_library.md %} +> +> 3. Rename the datasets +> 4. Check that the datatype +> +> {% snippet faqs/galaxy/datasets_change_datatype.md datatype="datatypes" %} +> +> 5. Add to each database a tag corresponding to ... +> +> {% snippet faqs/galaxy/datasets_add_tag.md %} +> +{: .hands_on} + +# Title of the section usually corresponding to a big step in the analysis + +It comes first a description of the step: some background and some theory. +Some image can be added there to support the theory explanation: + +![Alternative text](../../images/image_name "Legend of the image") + +The idea is to keep the theory description before quite simple to focus more on the practical part. + +***TODO***: *Consider adding a detail box to expand the theory* + +> ### {% icon details %} More details about the theory +> +> But to describe more details, it is possible to use the detail boxes which are expandable +> +{: .details} + +A big step can have several subsections or sub steps: + + +## Sub-step with **Unzip** + +> ### {% icon hands_on %} Hands-on: Task description +> +> 1. {% tool [Unzip](toolshed.g2.bx.psu.edu/repos/imgteam/unzip/unzip/0.2) %} with the following parameters: +> - *"Extract single file"*: `All files` +> +> ***TODO***: *Check parameter descriptions* +> +> ***TODO***: *Consider adding a comment or tip box* +> +> > ### {% icon comment %} Comment +> > +> > A comment about the tool or something else. This box can also be in the main text +> {: .comment} +> +{: .hands_on} + +***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* + +> ### {% icon question %} Questions +> +> 1. Question1? +> 2. Question2? +> +> > ### {% icon solution %} Solution +> > +> > 1. Answer for question1 +> > 2. Answer for question2 +> > +> {: .solution} +> +{: .question} + +## Sub-step with **obigrep** + +> ### {% icon hands_on %} Hands-on: Task description +> +> 1. {% tool [obigrep](toolshed.g2.bx.psu.edu/repos/iuc/obi_grep/obi_grep/1.2.13) %} with the following parameters: +> - *"Choose the sequence record selection option"*: `predicat` +> - *"Python boolean expression to be evaluated for each sequence record."*: `mode!=joined` +> +> ***TODO***: *Check parameter descriptions* +> +> ***TODO***: *Consider adding a comment or tip box* +> +> > ### {% icon comment %} Comment +> > +> > A comment about the tool or something else. This box can also be in the main text +> {: .comment} +> +{: .hands_on} + +***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* + +> ### {% icon question %} Questions +> +> 1. Question1? +> 2. Question2? +> +> > ### {% icon solution %} Solution +> > +> > 1. Answer for question1 +> > 2. Answer for question2 +> > +> {: .solution} +> +{: .question} + +## Sub-step with **NGSfilter** + +> ### {% icon hands_on %} Hands-on: Task description +> +> 1. {% tool [NGSfilter](toolshed.g2.bx.psu.edu/repos/iuc/obi_ngsfilter/obi_ngsfilter/1.2.13) %} with the following parameters: +> - *"Output data type"*: `fastq` +> +> ***TODO***: *Check parameter descriptions* +> +> ***TODO***: *Consider adding a comment or tip box* +> +> > ### {% icon comment %} Comment +> > +> > A comment about the tool or something else. This box can also be in the main text +> {: .comment} +> +{: .hands_on} + +***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* + +> ### {% icon question %} Questions +> +> 1. Question1? +> 2. Question2? +> +> > ### {% icon solution %} Solution +> > +> > 1. Answer for question1 +> > 2. Answer for question2 +> > +> {: .solution} +> +{: .question} + +## Sub-step with **obiuniq** + +> ### {% icon hands_on %} Hands-on: Task description +> +> 1. {% tool [obiuniq](toolshed.g2.bx.psu.edu/repos/iuc/obi_uniq/obi_uniq/1.2.13) %} with the following parameters: +> - *"Attribute to merge"*: `sample` +> +> ***TODO***: *Check parameter descriptions* +> +> ***TODO***: *Consider adding a comment or tip box* +> +> > ### {% icon comment %} Comment +> > +> > A comment about the tool or something else. This box can also be in the main text +> {: .comment} +> +{: .hands_on} + +***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* + +> ### {% icon question %} Questions +> +> 1. Question1? +> 2. Question2? +> +> > ### {% icon solution %} Solution +> > +> > 1. Answer for question1 +> > 2. Answer for question2 +> > +> {: .solution} +> +{: .question} + +## Sub-step with **FastQC** + +> ### {% icon hands_on %} Hands-on: Task description +> +> 1. {% tool [FastQC](toolshed.g2.bx.psu.edu/repos/devteam/fastqc/fastqc/0.73+galaxy0) %} with the following parameters: +> +> ***TODO***: *Check parameter descriptions* +> +> ***TODO***: *Consider adding a comment or tip box* +> +> > ### {% icon comment %} Comment +> > +> > A comment about the tool or something else. This box can also be in the main text +> {: .comment} +> +{: .hands_on} + +***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* + +> ### {% icon question %} Questions +> +> 1. Question1? +> 2. Question2? +> +> > ### {% icon solution %} Solution +> > +> > 1. Answer for question1 +> > 2. Answer for question2 +> > +> {: .solution} +> +{: .question} + +## Sub-step with **obiannotate** + +> ### {% icon hands_on %} Hands-on: Task description +> +> 1. {% tool [obiannotate](toolshed.g2.bx.psu.edu/repos/iuc/obi_annotate/obi_annotate/1.2.13) %} with the following parameters: +> - In *"Keep only attribute with key"*: +> - *"key"*: `count` +> - *"if you want to specify a second key"*: `merged_sample` +> +> ***TODO***: *Check parameter descriptions* +> +> ***TODO***: *Consider adding a comment or tip box* +> +> > ### {% icon comment %} Comment +> > +> > A comment about the tool or something else. This box can also be in the main text +> {: .comment} +> +{: .hands_on} + +***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* + +> ### {% icon question %} Questions +> +> 1. Question1? +> 2. Question2? +> +> > ### {% icon solution %} Solution +> > +> > 1. Answer for question1 +> > 2. Answer for question2 +> > +> {: .solution} +> +{: .question} + +## Sub-step with **obistat** + +> ### {% icon hands_on %} Hands-on: Task description +> +> 1. {% tool [obistat](toolshed.g2.bx.psu.edu/repos/iuc/obi_stat/obi_stat/1.2.13) %} with the following parameters: +> - In *"Category attribute"*: +> - {% icon param-repeat %} *"Insert Category attribute"* +> - *"How would you specify the category attribute key?"*: `simply by a key of an attribute` +> - *"Attribute used to categorize the sequence records"*: `count` +> - *"Use a specific option"*: `no` +> +> ***TODO***: *Check parameter descriptions* +> +> ***TODO***: *Consider adding a comment or tip box* +> +> > ### {% icon comment %} Comment +> > +> > A comment about the tool or something else. This box can also be in the main text +> {: .comment} +> +{: .hands_on} + +***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* + +> ### {% icon question %} Questions +> +> 1. Question1? +> 2. Question2? +> +> > ### {% icon solution %} Solution +> > +> > 1. Answer for question1 +> > 2. Answer for question2 +> > +> {: .solution} +> +{: .question} + +## Sub-step with **obigrep** + +> ### {% icon hands_on %} Hands-on: Task description +> +> 1. {% tool [obigrep](toolshed.g2.bx.psu.edu/repos/iuc/obi_grep/obi_grep/1.2.13) %} with the following parameters: +> - *"Choose the sequence record selection option"*: `predicat` +> - *"Python boolean expression to be evaluated for each sequence record."*: `count>=10` +> +> ***TODO***: *Check parameter descriptions* +> +> ***TODO***: *Consider adding a comment or tip box* +> +> > ### {% icon comment %} Comment +> > +> > A comment about the tool or something else. This box can also be in the main text +> {: .comment} +> +{: .hands_on} + +***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* + +> ### {% icon question %} Questions +> +> 1. Question1? +> 2. Question2? +> +> > ### {% icon solution %} Solution +> > +> > 1. Answer for question1 +> > 2. Answer for question2 +> > +> {: .solution} +> +{: .question} + +## Sub-step with **obigrep** + +> ### {% icon hands_on %} Hands-on: Task description +> +> 1. {% tool [obigrep](toolshed.g2.bx.psu.edu/repos/iuc/obi_grep/obi_grep/1.2.13) %} with the following parameters: +> - *"Choose the sequence record selection option"*: `lmin` +> - *"lmin"*: `80` +> +> ***TODO***: *Check parameter descriptions* +> +> ***TODO***: *Consider adding a comment or tip box* +> +> > ### {% icon comment %} Comment +> > +> > A comment about the tool or something else. This box can also be in the main text +> {: .comment} +> +{: .hands_on} + +***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* + +> ### {% icon question %} Questions +> +> 1. Question1? +> 2. Question2? +> +> > ### {% icon solution %} Solution +> > +> > 1. Answer for question1 +> > 2. Answer for question2 +> > +> {: .solution} +> +{: .question} + +## Sub-step with **obiclean** + +> ### {% icon hands_on %} Hands-on: Task description +> +> 1. {% tool [obiclean](toolshed.g2.bx.psu.edu/repos/iuc/obi_clean/obi_clean/1.2.13) %} with the following parameters: +> - *"Threshold ratio between counts (rare/abundant counts) of two sequence records so that the less abundant one is a variant of the more abundant (default: 1, i.e. all less abundant sequences are variants)"*: `0.05` +> - *"Do you want to select only sequences with the head status in a least one sample?"*: `Yes` +> +> ***TODO***: *Check parameter descriptions* +> +> ***TODO***: *Consider adding a comment or tip box* +> +> > ### {% icon comment %} Comment +> > +> > A comment about the tool or something else. This box can also be in the main text +> {: .comment} +> +{: .hands_on} + +***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* + +> ### {% icon question %} Questions +> +> 1. Question1? +> 2. Question2? +> +> > ### {% icon solution %} Solution +> > +> > 1. Answer for question1 +> > 2. Answer for question2 +> > +> {: .solution} +> +{: .question} + +## Sub-step with **NCBI BLAST+ blastn** + +> ### {% icon hands_on %} Hands-on: Task description +> +> 1. {% tool [NCBI BLAST+ blastn](toolshed.g2.bx.psu.edu/repos/devteam/ncbi_blast_plus/ncbi_blastn_wrapper/2.10.1+galaxy0) %} with the following parameters: +> - *"Subject database/sequences"*: `FASTA file from your history (see warning note below)` +> - *"Set expectation value cutoff"*: `0.0001` +> - *"Output format"*: `Tabular (extended 25 columns)` +> - *"Advanced Options"*: `Hide Advanced Options` +> +> ***TODO***: *Check parameter descriptions* +> +> ***TODO***: *Consider adding a comment or tip box* +> +> > ### {% icon comment %} Comment +> > +> > A comment about the tool or something else. This box can also be in the main text +> {: .comment} +> +{: .hands_on} + +***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* + +> ### {% icon question %} Questions +> +> 1. Question1? +> 2. Question2? +> +> > ### {% icon solution %} Solution +> > +> > 1. Answer for question1 +> > 2. Answer for question2 +> > +> {: .solution} +> +{: .question} + +## Sub-step with **Filter** + +> ### {% icon hands_on %} Hands-on: Task description +> +> 1. {% tool [Filter](Filter1) %} with the following parameters: +> - *"With following condition"*: `c3>99.99` +> +> ***TODO***: *Check parameter descriptions* +> +> ***TODO***: *Consider adding a comment or tip box* +> +> > ### {% icon comment %} Comment +> > +> > A comment about the tool or something else. This box can also be in the main text +> {: .comment} +> +{: .hands_on} + +***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* + +> ### {% icon question %} Questions +> +> 1. Question1? +> 2. Question2? +> +> > ### {% icon solution %} Solution +> > +> > 1. Answer for question1 +> > 2. Answer for question2 +> > +> {: .solution} +> +{: .question} + + +## Re-arrange + +To create the template, each step of the workflow had its own subsection. + +***TODO***: *Re-arrange the generated subsections into sections or other subsections. +Consider merging some hands-on boxes to have a meaningful flow of the analyses* + +# Conclusion +{:.no_toc} + +Sum up the tutorial and the key takeaways here. We encourage adding an overview image of the +pipeline used. From 45ca3bc6d72f0eb5c43d19929da4730ec9c838db Mon Sep 17 00:00:00 2001 From: Yvan Le Bras Date: Mon, 31 Jan 2022 21:10:46 +0100 Subject: [PATCH 16/83] Add files via upload --- .../Obitools-metabarcoding/data-library.yaml | 12 ++++++ .../Obitools-metabarcoding/tutorial.bib | 42 +++++++++++++++++++ .../Obitools-metabarcoding/workflows/index.md | 3 ++ .../workflows/main_workflow.ga | 1 + 4 files changed, 58 insertions(+) create mode 100644 topics/ecology/tutorials/Obitools-metabarcoding/data-library.yaml create mode 100644 topics/ecology/tutorials/Obitools-metabarcoding/tutorial.bib create mode 100644 topics/ecology/tutorials/Obitools-metabarcoding/workflows/index.md create mode 100644 topics/ecology/tutorials/Obitools-metabarcoding/workflows/main_workflow.ga diff --git a/topics/ecology/tutorials/Obitools-metabarcoding/data-library.yaml b/topics/ecology/tutorials/Obitools-metabarcoding/data-library.yaml new file mode 100644 index 00000000000000..3adf29343b0e21 --- /dev/null +++ b/topics/ecology/tutorials/Obitools-metabarcoding/data-library.yaml @@ -0,0 +1,12 @@ +--- +destination: + type: library + name: GTN - Material + description: Galaxy Training Network Material + synopsis: Galaxy Training Network Material. See https://training.galaxyproject.org +items: +- name: New topic + description: Topic summary + items: + - name: Metabarcoding/eDNA through Obitools + items: [] diff --git a/topics/ecology/tutorials/Obitools-metabarcoding/tutorial.bib b/topics/ecology/tutorials/Obitools-metabarcoding/tutorial.bib new file mode 100644 index 00000000000000..9206b0b6e4cae4 --- /dev/null +++ b/topics/ecology/tutorials/Obitools-metabarcoding/tutorial.bib @@ -0,0 +1,42 @@ + +# This is the bibliography file for your tutorial. +# +# To add bibliography (bibtex) entries here, follow these steps: +# 1) Find the DOI for the article you want to cite +# 2) Go to https://doi2bib.org and fill in the DOI +# 3) Copy the resulting bibtex entry into this file +# +# To cite the example below, in your tutorial.md file +# use {% cite Batut2018 %} +# +# If you want to cite an online resourse (website etc) +# you can use the 'online' format (see below) +# +# You can remove the examples below + +@article{Batut2018, + doi = {10.1016/j.cels.2018.05.012}, + url = {https://doi.org/10.1016/j.cels.2018.05.012}, + year = {2018}, + month = jun, + publisher = {Elsevier {BV}}, + volume = {6}, + number = {6}, + pages = {752--758.e1}, + author = {B{\'{e}}r{\'{e}}nice Batut and Saskia Hiltemann and Andrea Bagnacani and Dannon Baker and Vivek Bhardwaj and + Clemens Blank and Anthony Bretaudeau and Loraine Brillet-Gu{\'{e}}guen and Martin {\v{C}}ech and John Chilton + and Dave Clements and Olivia Doppelt-Azeroual and Anika Erxleben and Mallory Ann Freeberg and Simon Gladman and + Youri Hoogstrate and Hans-Rudolf Hotz and Torsten Houwaart and Pratik Jagtap and Delphine Larivi{\`{e}}re and + Gildas Le Corguill{\'{e}} and Thomas Manke and Fabien Mareuil and Fidel Ram{\'{i}}rez and Devon Ryan and + Florian Christoph Sigloch and Nicola Soranzo and Joachim Wolff and Pavankumar Videm and Markus Wolfien and + Aisanjiang Wubuli and Dilmurat Yusuf and James Taylor and Rolf Backofen and Anton Nekrutenko and Bj\"{o}rn Gr\"{u}ning}, + title = {Community-Driven Data Analysis Training for Biology}, + journal = {Cell Systems} +} + +@online{gtn-website, + author = {GTN community}, + title = {GTN Training Materials: Collection of tutorials developed and maintained by the worldwide Galaxy community}, + url = {https://training.galaxyproject.org}, + urldate = {2021-03-24} +} diff --git a/topics/ecology/tutorials/Obitools-metabarcoding/workflows/index.md b/topics/ecology/tutorials/Obitools-metabarcoding/workflows/index.md new file mode 100644 index 00000000000000..e092e0ae66ddd4 --- /dev/null +++ b/topics/ecology/tutorials/Obitools-metabarcoding/workflows/index.md @@ -0,0 +1,3 @@ +--- +layout: workflow-list +--- diff --git a/topics/ecology/tutorials/Obitools-metabarcoding/workflows/main_workflow.ga b/topics/ecology/tutorials/Obitools-metabarcoding/workflows/main_workflow.ga new file mode 100644 index 00000000000000..a73ad07283ba31 --- /dev/null +++ b/topics/ecology/tutorials/Obitools-metabarcoding/workflows/main_workflow.ga @@ -0,0 +1 @@ +{"a_galaxy_workflow": "true", "annotation": "", "format-version": "0.1", "name": "Workflow constructed from history 'Tuto Obitools'", "steps": {"0": {"annotation": "", "content_id": null, "errors": null, "id": 0, "input_connections": {}, "inputs": [{"description": "", "name": "wolf_tutorial.zip"}], "label": "wolf_tutorial.zip", "name": "Input dataset", "outputs": [], "position": {"left": 10, "top": 10}, "tool_id": null, "tool_state": "{\"optional\": false}", "tool_version": null, "type": "data_input", "uuid": "5bcef1e8-1129-4118-a648-b749039b9355", "workflow_outputs": []}, "1": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/obi_illumina_pairend/obi_illumina_pairend/1.2.13", "errors": null, "id": 1, "input_connections": {}, "inputs": [], "label": null, "name": "Illuminapairedend", "outputs": [{"name": "output", "type": "input"}], "position": {"left": 10, "top": 130}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/obi_illumina_pairend/obi_illumina_pairend/1.2.13", "tool_shed_repository": {"changeset_revision": "83fbdf93d51e", "name": "obi_illumina_pairend", "owner": "iuc", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"__input_ext\": \"input\", \"chromInfo\": \"/opt/galaxy/tool-data/shared/ucsc/chrom/?.len\", \"inputfastq3p\": null, \"inputfastq5p\": null, \"score\": \"40.0\", \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "1.2.13", "type": "tool", "uuid": "0ef516b0-a2cc-4e84-aa61-11c0d19f68ae", "workflow_outputs": []}, "2": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/devteam/fastqc/fastqc/0.73+galaxy0", "errors": null, "id": 2, "input_connections": {}, "inputs": [], "label": null, "name": "FastQC", "outputs": [{"name": "html_file", "type": "html"}, {"name": "text_file", "type": "txt"}], "position": {"left": 10, "top": 250}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/devteam/fastqc/fastqc/0.73+galaxy0", "tool_shed_repository": {"changeset_revision": "3d0c7bdf12f5", "name": "fastqc", "owner": "devteam", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"__input_ext\": \"fastq\", \"adapters\": null, \"chromInfo\": \"/opt/galaxy/tool-data/shared/ucsc/chrom/?.len\", \"contaminants\": null, \"input_file\": null, \"kmers\": \"7\", \"limits\": null, \"min_length\": null, \"nogroup\": \"false\", \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "0.73+galaxy0", "type": "tool", "uuid": "a2362236-540b-47a0-9909-0c5747a66a43", "workflow_outputs": []}, "3": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/devteam/fastqc/fastqc/0.73+galaxy0", "errors": null, "id": 3, "input_connections": {}, "inputs": [], "label": null, "name": "FastQC", "outputs": [{"name": "html_file", "type": "html"}, {"name": "text_file", "type": "txt"}], "position": {"left": 10, "top": 370}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/devteam/fastqc/fastqc/0.73+galaxy0", "tool_shed_repository": {"changeset_revision": "3d0c7bdf12f5", "name": "fastqc", "owner": "devteam", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"__input_ext\": \"fastq\", \"adapters\": null, \"chromInfo\": \"/opt/galaxy/tool-data/shared/ucsc/chrom/?.len\", \"contaminants\": null, \"input_file\": null, \"kmers\": \"7\", \"limits\": null, \"min_length\": null, \"nogroup\": \"false\", \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "0.73+galaxy0", "type": "tool", "uuid": "0ce00046-4466-47f4-ab40-e2d20104c929", "workflow_outputs": []}, "4": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/imgteam/unzip/unzip/0.2", "errors": null, "id": 4, "input_connections": {"input_file": {"id": 0, "output_name": "output"}}, "inputs": [], "label": null, "name": "Unzip", "outputs": [{"name": "unzipped", "type": "input"}], "position": {"left": 230, "top": 10}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/imgteam/unzip/unzip/0.2", "tool_shed_repository": {"changeset_revision": "38eec75fbe9b", "name": "unzip", "owner": "imgteam", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"__input_ext\": \"zip\", \"chromInfo\": \"/opt/galaxy/tool-data/shared/ucsc/chrom/?.len\", \"extract_options\": {\"extract_all\": \"True\", \"__current_case__\": 0}, \"input_file\": null, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "0.2", "type": "tool", "uuid": "fe423950-80d4-416d-acaf-561fff3ebbb5", "workflow_outputs": []}, "5": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/obi_grep/obi_grep/1.2.13", "errors": null, "id": 5, "input_connections": {"input": {"id": 1, "output_name": "output"}}, "inputs": [], "label": null, "name": "obigrep", "outputs": [{"name": "output", "type": "auto"}], "position": {"left": 230, "top": 130}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/obi_grep/obi_grep/1.2.13", "tool_shed_repository": {"changeset_revision": "fe7ec8a3d35e", "name": "obi_grep", "owner": "iuc", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"__input_ext\": \"input\", \"chromInfo\": \"/opt/galaxy/tool-data/shared/ucsc/chrom/?.len\", \"input\": null, \"input_format_options\": {\"options_inputtype\": null, \"options_seqtype\": null}, \"options_grep\": {\"options_grep_selector\": \"predicat\", \"__current_case__\": 6, \"predicat\": \"mode!=\\\"joined\\\"\"}, \"out_format\": null, \"v\": \"false\", \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "1.2.13", "type": "tool", "uuid": "6e6af66c-a6f2-4e5b-8265-167466ea6ec3", "workflow_outputs": []}, "6": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/obi_ngsfilter/obi_ngsfilter/1.2.13", "errors": null, "id": 6, "input_connections": {"input": {"id": 5, "output_name": "output"}}, "inputs": [], "label": null, "name": "NGSfilter", "outputs": [{"name": "unident", "type": "auto"}, {"name": "output", "type": "auto"}], "position": {"left": 450, "top": 10}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/obi_ngsfilter/obi_ngsfilter/1.2.13", "tool_shed_repository": {"changeset_revision": "3bf57dadf7cd", "name": "obi_ngsfilter", "owner": "iuc", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"__input_ext\": \"input\", \"bool\": \"true\", \"chromInfo\": \"/opt/galaxy/tool-data/shared/ucsc/chrom/?.len\", \"input\": null, \"input_format_options\": {\"options_inputtype\": null, \"options_seqtype\": null}, \"inputextrafile\": null, \"mismatch\": \"2\", \"out_format\": \"fastq\", \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "1.2.13", "type": "tool", "uuid": "c16a05f3-4c76-454e-9258-55bed8ebef14", "workflow_outputs": []}, "7": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/obi_uniq/obi_uniq/1.2.13", "errors": null, "id": 7, "input_connections": {"input": {"id": 6, "output_name": "output"}}, "inputs": [], "label": null, "name": "obiuniq", "outputs": [{"name": "output", "type": "auto"}], "position": {"left": 670, "top": 10}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/obi_uniq/obi_uniq/1.2.13", "tool_shed_repository": {"changeset_revision": "ec215ed98831", "name": "obi_uniq", "owner": "iuc", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"__input_ext\": \"input\", \"chromInfo\": \"/opt/galaxy/tool-data/shared/ucsc/chrom/?.len\", \"input\": null, \"input_format_options\": {\"options_inputtype\": null, \"options_seqtype\": null}, \"mid\": \"false\", \"options_attribute\": \"merge\", \"options_uniq\": \"sample\", \"prefix\": \"false\", \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "1.2.13", "type": "tool", "uuid": "eb0fc3c9-916a-41bb-8419-dc2e5f58fda0", "workflow_outputs": []}, "8": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/devteam/fastqc/fastqc/0.73+galaxy0", "errors": null, "id": 8, "input_connections": {"input_file": {"id": 6, "output_name": "output"}}, "inputs": [], "label": null, "name": "FastQC", "outputs": [{"name": "html_file", "type": "html"}, {"name": "text_file", "type": "txt"}], "position": {"left": 670, "top": 130}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/devteam/fastqc/fastqc/0.73+galaxy0", "tool_shed_repository": {"changeset_revision": "3d0c7bdf12f5", "name": "fastqc", "owner": "devteam", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"__input_ext\": \"fastqsanger\", \"adapters\": null, \"chromInfo\": \"/opt/galaxy/tool-data/shared/ucsc/chrom/?.len\", \"contaminants\": null, \"input_file\": null, \"kmers\": \"7\", \"limits\": null, \"min_length\": null, \"nogroup\": \"false\", \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "0.73+galaxy0", "type": "tool", "uuid": "50f57649-1e74-4f1c-8fa4-11f0d7a98c12", "workflow_outputs": []}, "9": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/obi_annotate/obi_annotate/1.2.13", "errors": null, "id": 9, "input_connections": {"input": {"id": 7, "output_name": "output"}}, "inputs": [], "label": null, "name": "obiannotate", "outputs": [{"name": "output", "type": "auto"}], "position": {"left": 890, "top": 10}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/obi_annotate/obi_annotate/1.2.13", "tool_shed_repository": {"changeset_revision": "f82cefbbcea5", "name": "obi_annotate", "owner": "iuc", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"__input_ext\": \"input\", \"chromInfo\": \"/opt/galaxy/tool-data/shared/ucsc/chrom/?.len\", \"clearbool\": \"false\", \"deletetag_key\": \"\", \"input\": null, \"input_format_options\": {\"options_inputtype\": null, \"options_seqtype\": null}, \"key_selector\": {\"key\": \"count\", \"key2\": \"merged_sample\", \"key3\": \"\", \"key4\": \"\", \"key5\": \"\"}, \"length\": \"false\", \"mclfile\": null, \"out_format\": null, \"pythonexpression\": \"\", \"rankname\": \"\", \"rename_tag\": {\"old_name\": \"\", \"new_name\": \"\"}, \"seqrank\": \"false\", \"set_tag\": {\"key\": \"\", \"pythonexpression\": \"\"}, \"setdefinition_pythonexpression\": \"\", \"setid_pythonexpression\": \"\", \"setsequence_pythonexpression\": \"\", \"taglist\": null, \"uniqid\": \"false\", \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "1.2.13", "type": "tool", "uuid": "1274fd44-2ea5-4db6-b569-97141d9fff26", "workflow_outputs": []}, "10": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/obi_stat/obi_stat/1.2.13", "errors": null, "id": 10, "input_connections": {"input": {"id": 9, "output_name": "output"}}, "inputs": [], "label": null, "name": "obistat", "outputs": [{"name": "output", "type": "txt"}], "position": {"left": 1110, "top": 10}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/obi_stat/obi_stat/1.2.13", "tool_shed_repository": {"changeset_revision": "723a93febe89", "name": "obi_stat", "owner": "iuc", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"__input_ext\": \"input\", \"catattributes\": [{\"__index__\": 0, \"options_attributespe\": {\"options_attributespe_selector\": \"key\", \"__current_case__\": 1, \"options_catattribute_selector\": \"count\"}}], \"chromInfo\": \"/opt/galaxy/tool-data/shared/ucsc/chrom/?.len\", \"input\": null, \"input_format_options\": {\"options_inputtype\": null, \"options_seqtype\": null}, \"options_attribute\": {\"options_attributebe_selector\": \"None\", \"__current_case__\": 1}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "1.2.13", "type": "tool", "uuid": "a1f1ecb4-9dee-4b02-bff6-d6efa40fb077", "workflow_outputs": []}, "11": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/obi_grep/obi_grep/1.2.13", "errors": null, "id": 11, "input_connections": {"input": {"id": 9, "output_name": "output"}}, "inputs": [], "label": null, "name": "obigrep", "outputs": [{"name": "output", "type": "auto"}], "position": {"left": 1110, "top": 130}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/obi_grep/obi_grep/1.2.13", "tool_shed_repository": {"changeset_revision": "fe7ec8a3d35e", "name": "obi_grep", "owner": "iuc", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"__input_ext\": \"input\", \"chromInfo\": \"/opt/galaxy/tool-data/shared/ucsc/chrom/?.len\", \"input\": null, \"input_format_options\": {\"options_inputtype\": null, \"options_seqtype\": null}, \"options_grep\": {\"options_grep_selector\": \"predicat\", \"__current_case__\": 6, \"predicat\": \"count>=10\"}, \"out_format\": null, \"v\": \"false\", \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "1.2.13", "type": "tool", "uuid": "5df88b1a-3aff-448b-a92a-cd2752a49a21", "workflow_outputs": []}, "12": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/obi_grep/obi_grep/1.2.13", "errors": null, "id": 12, "input_connections": {"input": {"id": 11, "output_name": "output"}}, "inputs": [], "label": null, "name": "obigrep", "outputs": [{"name": "output", "type": "auto"}], "position": {"left": 1330, "top": 10}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/obi_grep/obi_grep/1.2.13", "tool_shed_repository": {"changeset_revision": "fe7ec8a3d35e", "name": "obi_grep", "owner": "iuc", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"__input_ext\": \"input\", \"chromInfo\": \"/opt/galaxy/tool-data/shared/ucsc/chrom/?.len\", \"input\": null, \"input_format_options\": {\"options_inputtype\": null, \"options_seqtype\": null}, \"options_grep\": {\"options_grep_selector\": \"lmin\", \"__current_case__\": 8, \"lmin\": \"80\"}, \"out_format\": null, \"v\": \"false\", \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "1.2.13", "type": "tool", "uuid": "cbf55fb5-5d46-4aee-9ca8-c20eecbf0711", "workflow_outputs": []}, "13": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/obi_clean/obi_clean/1.2.13", "errors": null, "id": 13, "input_connections": {"input": {"id": 12, "output_name": "output"}}, "inputs": [], "label": null, "name": "obiclean", "outputs": [{"name": "output", "type": "auto"}], "position": {"left": 1550, "top": 10}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/obi_clean/obi_clean/1.2.13", "tool_shed_repository": {"changeset_revision": "12baadec7809", "name": "obi_clean", "owner": "iuc", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"__input_ext\": \"input\", \"chromInfo\": \"/opt/galaxy/tool-data/shared/ucsc/chrom/?.len\", \"distance\": \"1\", \"head\": \"true\", \"input\": null, \"input_format_options\": {\"options_inputtype\": null, \"options_seqtype\": null}, \"key\": \"\", \"out_format\": null, \"ratio\": \"0.05\", \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "1.2.13", "type": "tool", "uuid": "91d470e4-a532-4afd-9b7e-7b4e541ed803", "workflow_outputs": []}, "14": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/devteam/ncbi_blast_plus/ncbi_blastn_wrapper/2.10.1+galaxy0", "errors": null, "id": 14, "input_connections": {"query": {"id": 13, "output_name": "output"}}, "inputs": [], "label": null, "name": "NCBI BLAST+ blastn", "outputs": [{"name": "output1", "type": "tabular"}], "position": {"left": 1770, "top": 10}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/devteam/ncbi_blast_plus/ncbi_blastn_wrapper/2.10.1+galaxy0", "tool_shed_repository": {"changeset_revision": "5edc472ec434", "name": "ncbi_blast_plus", "owner": "devteam", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"__input_ext\": \"input\", \"adv_opts\": {\"adv_opts_selector\": \"basic\", \"__current_case__\": 0}, \"blast_type\": \"megablast\", \"chromInfo\": \"/opt/galaxy/tool-data/shared/ucsc/chrom/?.len\", \"db_opts\": {\"db_opts_selector\": \"file\", \"__current_case__\": 2, \"database\": \"\", \"histdb\": \"\", \"subject\": null}, \"evalue_cutoff\": \"0.0001\", \"output\": {\"out_format\": \"ext\", \"__current_case__\": 1}, \"query\": null, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "2.10.1+galaxy0", "type": "tool", "uuid": "3fb8be46-d7e6-4484-a449-d074bf655e18", "workflow_outputs": []}, "15": {"annotation": "", "content_id": "Filter1", "errors": null, "id": 15, "input_connections": {"input": {"id": 14, "output_name": "output1"}}, "inputs": [], "label": null, "name": "Filter", "outputs": [{"name": "out_file1", "type": "input"}], "position": {"left": 1990, "top": 10}, "post_job_actions": {}, "tool_id": "Filter1", "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/opt/galaxy/tool-data/shared/ucsc/chrom/?.len\", \"cond\": \"c3>99.99\", \"header_lines\": \"0\", \"input\": null, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "1.1.1", "type": "tool", "uuid": "be5e3311-a8a7-4758-ae16-f4d4f01f8efb", "workflow_outputs": []}}, "tags": [], "uuid": "907ed6b8-95f0-48bd-8cfc-7daeb7213227", "version": 0} \ No newline at end of file From 83a3a455f92041e219d20166717a113d98ac02a5 Mon Sep 17 00:00:00 2001 From: Yvan Le Bras Date: Tue, 1 Feb 2022 12:35:07 +0100 Subject: [PATCH 17/83] Add zenodo file download link --- topics/ecology/tutorials/Obitools-metabarcoding/tutorial.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/topics/ecology/tutorials/Obitools-metabarcoding/tutorial.md b/topics/ecology/tutorials/Obitools-metabarcoding/tutorial.md index 6ae6b6773b61f6..5aeaa3a5d1f7b0 100644 --- a/topics/ecology/tutorials/Obitools-metabarcoding/tutorial.md +++ b/topics/ecology/tutorials/Obitools-metabarcoding/tutorial.md @@ -61,11 +61,8 @@ The data needed to run the tutorial are the following: > 2. Import the files from [Zenodo](https://zenodo.org/record/5932108/files/wolf_tutorial.zip?download=1) > > ``` -> +> https://zenodo.org/record/5932108/files/wolf_tutorial.zip?download=1 > ``` -> ***TODO***: *Add the files by the ones on Zenodo here (if not added)* -> -> ***TODO***: *Remove the useless files (if added)* > > {% snippet faqs/galaxy/datasets_import_via_link.md %} > From 88b42db3e7bc9aeb6b42c037b751e8d50020aa84 Mon Sep 17 00:00:00 2001 From: Yvan Le Bras Date: Tue, 1 Feb 2022 12:42:00 +0100 Subject: [PATCH 18/83] Add zip and collection actions --- .../Obitools-metabarcoding/tutorial.md | 67 ++++++++++--------- 1 file changed, 35 insertions(+), 32 deletions(-) diff --git a/topics/ecology/tutorials/Obitools-metabarcoding/tutorial.md b/topics/ecology/tutorials/Obitools-metabarcoding/tutorial.md index 5aeaa3a5d1f7b0..a783de247da2be 100644 --- a/topics/ecology/tutorials/Obitools-metabarcoding/tutorial.md +++ b/topics/ecology/tutorials/Obitools-metabarcoding/tutorial.md @@ -58,7 +58,7 @@ The data needed to run the tutorial are the following: > ### {% icon hands_on %} Hands-on: Data upload > > 1. Create a new history for this tutorial -> 2. Import the files from [Zenodo](https://zenodo.org/record/5932108/files/wolf_tutorial.zip?download=1) +> 2. Import the zip archive containing input files from [Zenodo](https://zenodo.org/record/5932108/files/wolf_tutorial.zip?download=1) > > ``` > https://zenodo.org/record/5932108/files/wolf_tutorial.zip?download=1 @@ -68,36 +68,11 @@ The data needed to run the tutorial are the following: > > {% snippet faqs/galaxy/datasets_import_from_data_library.md %} > -> 3. Rename the datasets -> 4. Check that the datatype +> 3. Rename the dataset, here a zip archive, if needed +> 4. Check that the datatype is `zip` > > {% snippet faqs/galaxy/datasets_change_datatype.md datatype="datatypes" %} > -> 5. Add to each database a tag corresponding to ... -> -> {% snippet faqs/galaxy/datasets_add_tag.md %} -> -{: .hands_on} - -# Title of the section usually corresponding to a big step in the analysis - -It comes first a description of the step: some background and some theory. -Some image can be added there to support the theory explanation: - -![Alternative text](../../images/image_name "Legend of the image") - -The idea is to keep the theory description before quite simple to focus more on the practical part. - -***TODO***: *Consider adding a detail box to expand the theory* - -> ### {% icon details %} More details about the theory -> -> But to describe more details, it is possible to use the detail boxes which are expandable -> -{: .details} - -A big step can have several subsections or sub steps: - ## Sub-step with **Unzip** @@ -106,15 +81,18 @@ A big step can have several subsections or sub steps: > 1. {% tool [Unzip](toolshed.g2.bx.psu.edu/repos/imgteam/unzip/unzip/0.2) %} with the following parameters: > - *"Extract single file"*: `All files` > -> ***TODO***: *Check parameter descriptions* -> -> ***TODO***: *Consider adding a comment or tip box* -> > > ### {% icon comment %} Comment > > > > A comment about the tool or something else. This box can also be in the main text > {: .comment} > +> 2. Add to each datafile a tag corresponding or modify names if needed +> +> {% snippet faqs/galaxy/datasets_add_tag.md %} +> +> 3. Unhide all dataset from the resulting data collection so you can use these files independently. +> +> 4. Modify format from txt to tabular for xxxx file {: .hands_on} ***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* @@ -133,6 +111,31 @@ A big step can have several subsections or sub steps: > {: .question} + + + +# Title of the section usually corresponding to a big step in the analysis + +It comes first a description of the step: some background and some theory. +Some image can be added there to support the theory explanation: + +![Alternative text](../../images/image_name "Legend of the image") + +The idea is to keep the theory description before quite simple to focus more on the practical part. + +***TODO***: *Consider adding a detail box to expand the theory* + +> ### {% icon details %} More details about the theory +> +> But to describe more details, it is possible to use the detail boxes which are expandable +> +{: .details} + +A big step can have several subsections or sub steps: + + + + ## Sub-step with **obigrep** > ### {% icon hands_on %} Hands-on: Task description From 7132a2114f364fbbebf696df657a60acd0e96d6c Mon Sep 17 00:00:00 2001 From: Yvan Le Bras Date: Tue, 1 Feb 2022 14:46:22 +0100 Subject: [PATCH 19/83] Update tutorial.md --- .../Obitools-metabarcoding/tutorial.md | 64 ++++++++++++++----- 1 file changed, 49 insertions(+), 15 deletions(-) diff --git a/topics/ecology/tutorials/Obitools-metabarcoding/tutorial.md b/topics/ecology/tutorials/Obitools-metabarcoding/tutorial.md index a783de247da2be..d8a8d97456df8a 100644 --- a/topics/ecology/tutorials/Obitools-metabarcoding/tutorial.md +++ b/topics/ecology/tutorials/Obitools-metabarcoding/tutorial.md @@ -42,7 +42,7 @@ It is always a good idea to have a look at the intermediate results or to evalua - obistat to get some basic statistics (count, mean, standard deviation) on the attributes (key=value combinations) in the header of each sequence record (see The extended OBITools fasta format in the fasta format description) - any Galaxy tools corresponding to classical unix command such as less, awk, sort, wc to check your files. -# Data +# Manage input data The data needed to run the tutorial are the following: - fastq files resulting of a GA IIx (Illumina) paired-end (2 x 108 bp) sequencing assay of DNA extracted and amplified from four wolf faeces: @@ -74,9 +74,9 @@ The data needed to run the tutorial are the following: > {% snippet faqs/galaxy/datasets_change_datatype.md datatype="datatypes" %} > -## Sub-step with **Unzip** +## **Unzip** the downloaded archive -> ### {% icon hands_on %} Hands-on: Task description +> ### {% icon hands_on %} Hands-on: Unzip the downladed .zip archive and prepare unzipped files to be used by OBITools Galaxy tools > > 1. {% tool [Unzip](toolshed.g2.bx.psu.edu/repos/imgteam/unzip/unzip/0.2) %} with the following parameters: > - *"Extract single file"*: `All files` @@ -86,13 +86,13 @@ The data needed to run the tutorial are the following: > > A comment about the tool or something else. This box can also be in the main text > {: .comment} > -> 2. Add to each datafile a tag corresponding or modify names if needed +> 2. Add to each datafile a tag and/or modify names (*optional*) > > {% snippet faqs/galaxy/datasets_add_tag.md %} > > 3. Unhide all dataset from the resulting data collection so you can use these files independently. > -> 4. Modify format from txt to tabular for xxxx file +> 4. Modify datatype from txt to tabular for the `wolf_diet_ngsfilter` dataset {: .hands_on} ***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* @@ -114,7 +114,7 @@ The data needed to run the tutorial are the following: -# Title of the section usually corresponding to a big step in the analysis +# Use OBITools It comes first a description of the step: some background and some theory. Some image can be added there to support the theory explanation: @@ -134,19 +134,54 @@ The idea is to keep the theory description before quite simple to focus more on A big step can have several subsections or sub steps: +## Sub-step with **illuminapairedend** + +> ### {% icon hands_on %} Hands-on: Recover consensus sequences from overlapping forward and reverse reads. +> +> When using the result of a paired-end sequencing assay with supposedly overlapping forward and reverse reads, the first step is to recover the assembled sequence. +> +> The forward and reverse reads of the same fragment are at the same line position in the two fastq files obtained after sequencing. Based on these two files, the assembly of the forward and reverse reads is done with the illuminapairedend utility that aligns the two reads and returns the reconstructed sequence. +> +> 1. {% tool [illuminapairedend](toolshed.g2.bx.psu.edu/repos/iuc/obi_grep/obi_illuminapairedend/1.2.13) %} with the following parameters: +> - *"Read from file"*: `wolf_F` for the 3p file +> - *"Read from file"*: `wolfRF` for the 5p file +> - *"minimum score for keeping aligment"*: `40.0` +> +> > ### {% icon comment %} Comment +> > +> > Sequence records corresponding to the same read pair must be in the same order in the two files ! +> > +> > If the alignment score is below the defined score, here 40, the forward and reverse reads are not aligned but concatenated, and the value of the mode attribute in the sequence header is set to joined instead of alignment +> {: .comment} +> +{: .hands_on} + +***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* + +> ### {% icon question %} Questions +> +> 1. Question1? +> 2. Question2? +> +> > ### {% icon solution %} Solution +> > +> > 1. Answer for question1 +> > 2. Answer for question2 +> > +> {: .solution} +> +{: .question} ## Sub-step with **obigrep** -> ### {% icon hands_on %} Hands-on: Task description +> ### {% icon hands_on %} Hands-on: Remove unaligned sequence records +> We here use the value of the mode attribute in the sequence header to discard sequences not "joined" (see explanation about this mode on the previous step) > > 1. {% tool [obigrep](toolshed.g2.bx.psu.edu/repos/iuc/obi_grep/obi_grep/1.2.13) %} with the following parameters: > - *"Choose the sequence record selection option"*: `predicat` > - *"Python boolean expression to be evaluated for each sequence record."*: `mode!=joined` > -> ***TODO***: *Check parameter descriptions* -> -> ***TODO***: *Consider adding a comment or tip box* > > > ### {% icon comment %} Comment > > @@ -155,17 +190,16 @@ A big step can have several subsections or sub steps: > {: .hands_on} -***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* > ### {% icon question %} Questions > -> 1. Question1? -> 2. Question2? +> 1. How do you verify the operation is successfull? +> 2. How many sequences are kept? > > > ### {% icon solution %} Solution > > -> > 1. Answer for question1 -> > 2. Answer for question2 +> > 1. you can search in the input file content the presence of `mode=joined` and same on the output file (just clicking the eye to visualize the content of each file and typing CTRL+C for example to search `mode=joined` in the file, or using a regex Galaxy tool for example). You can also at least look at the size of the output file, if smaller than input file, this is a first good indication. +> > 2. You can use a Galaxy tool like `Line/Word/Character count of a dataset` to count the number of lines of each dataset (input and output of obigrep) and divided by 4 (as in a FastQ file, each sequence is represented by a block of 4 lines). 45 276 sequences for input file. 44 717 for output file. Thus 559 sequences. > > > {: .solution} > From a9f77b3a3685019c8a103b4c65d317e6d2c3ab8c Mon Sep 17 00:00:00 2001 From: Yvan Le Bras Date: Tue, 1 Feb 2022 18:42:39 +0100 Subject: [PATCH 20/83] Update tutorial.md --- .../Obitools-metabarcoding/tutorial.md | 95 ++++++++++--------- 1 file changed, 49 insertions(+), 46 deletions(-) diff --git a/topics/ecology/tutorials/Obitools-metabarcoding/tutorial.md b/topics/ecology/tutorials/Obitools-metabarcoding/tutorial.md index d8a8d97456df8a..4d0caf223656e1 100644 --- a/topics/ecology/tutorials/Obitools-metabarcoding/tutorial.md +++ b/topics/ecology/tutorials/Obitools-metabarcoding/tutorial.md @@ -116,22 +116,11 @@ The data needed to run the tutorial are the following: # Use OBITools -It comes first a description of the step: some background and some theory. -Some image can be added there to support the theory explanation: +OBITools is a set of programs specifically designed for analyzing NGS data in a DNA metabarcoding context, taking into account taxonomic information. It is distributed as an open source software available on the following website: http://metabarcoding.org/obitools. -![Alternative text](../../images/image_name "Legend of the image") +Citation: Boyer F., Mercier C., Bonin A., Taberlet P., Coissac E. (2014) OBITools: a Unix-inspired software package for DNA metabarcoding. Molecular Ecology Resources, submitted. -The idea is to keep the theory description before quite simple to focus more on the practical part. - -***TODO***: *Consider adding a detail box to expand the theory* - -> ### {% icon details %} More details about the theory -> -> But to describe more details, it is possible to use the detail boxes which are expandable -> -{: .details} - -A big step can have several subsections or sub steps: +The OBITools commands consider a sequence record as an entity composed of five distinct elements. Two of them are mandatory, the identifier (id) and the DNA or protein sequence itself. The id is a single word composed of characters, digits, and other symbols like dots or underscores excluding spaces. Formally, the ids should be unique within a dataset and should identify each sequence record unambiguously, but only a few OBITools actually rely on this property. The sequence is an ordered set of characters corresponding to nucleotides or amino-acids according to the International Union of Pure and Applied Chemistry (IUPAC) nomenclature (Cornish-Bowden 1985). The three other elements composing a sequence record are optional. They consist in a sequence definition, a quality vector, and a set of attributes. The sequence definition is a free text describing the sequence briefly. The quality vector associates a quality score to each nucleotide or amino-acid. Usually this quality score is the result of the base-calling process by the sequencer. The last element is a set of attributes qualifying the sequence, each attribute being described by a key=value pair. The set of attributes is the central concept of the OBITools system. When an OBITools command is run on the sequence records included in a dataset, the result of the computation often consist in the addition of new attributes completing the annotation of each sequence record. This strategy of sequence annotation allows the OBITools to return their results as a new sequence record file that can be used as the input of another OBITools program, ultimately creating complex pipelines. ## Sub-step with **illuminapairedend** @@ -156,21 +145,6 @@ A big step can have several subsections or sub steps: > {: .hands_on} -***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* - -> ### {% icon question %} Questions -> -> 1. Question1? -> 2. Question2? -> -> > ### {% icon solution %} Solution -> > -> > 1. Answer for question1 -> > 2. Answer for question2 -> > -> {: .solution} -> -{: .question} ## Sub-step with **obigrep** @@ -185,7 +159,24 @@ A big step can have several subsections or sub steps: > > > ### {% icon comment %} Comment > > -> > A comment about the tool or something else. This box can also be in the main text +> > The obigrep command is in some way analog to the standard Unix grep command. It selects a subset of sequence records from a sequence file. +> > +> > A sequence record is a complex object composed of an identifier, a set of attributes (key=value), a definition, and the sequence itself. +> > +> > Instead of working text line by text line as the standard Unix tool, selection is done sequence record by sequence record. A large set of options allows refining selection on any of the sequence record elements. +> > +> > Moreover obigrep allows specifying simultaneously several conditions (that take the value TRUE or FALSE) and only the sequence records that fulfill all the conditions (all conditions are TRUE) are selected. +> > +> > Sequence record selection options : +> > * sequence : Regular expression pattern to be tested against the sequence itself. ex: GAATTC +> > * definition : Regular expression pattern to be tested against the definition of the sequence record. ex: [Cc]hloroplast +> > * identifier : Regular expression pattern to be tested against the identifier of the sequence record. ex: ^GH +> > * idlist : points to a text file containing the list of sequence record identifiers to be selected. +> > * attribute : Regular expression pattern matched against the attributes of the sequence record. the value of this attribute is of the form : key:regular_pattern. ex:'family_name:Asteraceae' +> > * hasattribute : Selects sequence records having an attribute whose key = KEY. +> > * predicat : Python boolean expression to be evaluated for each sequence record. The attribute keys defined for each sequence record can be used in the expression as variable names. An extra variable named ‘sequence’ refers to the sequence record itself. ex: mode!="joined" +> > * lmax : Keeps sequence records whose sequence length is equal or shorter than lmax. ex : 100 +> > * lmin : Selects sequence records whose sequence length is equal or longer than lmin. ex : 100 > {: .comment} > {: .hands_on} @@ -207,18 +198,22 @@ A big step can have several subsections or sub steps: ## Sub-step with **NGSfilter** -> ### {% icon hands_on %} Hands-on: Task description +> ### {% icon hands_on %} Hands-on: Assigns sequence records to the corresponding experiment/sample based on DNA tags and primers > > 1. {% tool [NGSfilter](toolshed.g2.bx.psu.edu/repos/iuc/obi_ngsfilter/obi_ngsfilter/1.2.13) %} with the following parameters: +> - *"Parameter file"*: `wolf_diet_ngsfilter` +> - *"Read from file"*: `obigrep output` +> - *"Number of errors allowed for matching primers"*: `2` > - *"Output data type"*: `fastq` > -> ***TODO***: *Check parameter descriptions* -> -> ***TODO***: *Consider adding a comment or tip box* > > > ### {% icon comment %} Comment > > -> > A comment about the tool or something else. This box can also be in the main text +> > A DNA metabarcoding experiment can be considered as a set a PCR products mixed together and sequenced using a next generation sequencer ({i.e.} a solexa or a 454). To distinguish between this different PCR products, pairs of small DNA sequences (call tags, see the oligoTag command and its associated paper for more informations on the design of such tags) unique for each PCR products are concatenated to the PCR primers. As they are amplified during the PCR, these tags should be recognizable, together with their respective primers, at the beginning and the end of the reads. The first step in data analysis is thus to demultiplex the large resulting sequence file by identifying these DNA tags and the primers. + +Usually the results of sequencing are stored in one or more files formatted according to the fasta or fastq format. ngsfilter take as input such sequence file and an extra file describing the DNA tags and primers sequences used for each sample. + +The results consist of sequences trimmed of the primers and tags and annotated with the corresponding sample (and possibly some extra informations). Sequences for which the tags and primers have not been well identified, and which are thus unassigned to any sample, are tagged as erroneous sequences by ngsfilter. Such erroneous sequences are not reported by the program unless specified by the appropriate option. > {: .comment} > {: .hands_on} @@ -241,7 +236,7 @@ A big step can have several subsections or sub steps: ## Sub-step with **obiuniq** -> ### {% icon hands_on %} Hands-on: Task description +> ### {% icon hands_on %} Hands-on: Groups together sequence records > > 1. {% tool [obiuniq](toolshed.g2.bx.psu.edu/repos/iuc/obi_uniq/obi_uniq/1.2.13) %} with the following parameters: > - *"Attribute to merge"*: `sample` @@ -275,7 +270,7 @@ A big step can have several subsections or sub steps: ## Sub-step with **FastQC** -> ### {% icon hands_on %} Hands-on: Task description +> ### {% icon hands_on %} Hands-on: Check quality of your data before and after analysis > > 1. {% tool [FastQC](toolshed.g2.bx.psu.edu/repos/devteam/fastqc/fastqc/0.73+galaxy0) %} with the following parameters: > @@ -308,7 +303,7 @@ A big step can have several subsections or sub steps: ## Sub-step with **obiannotate** -> ### {% icon hands_on %} Hands-on: Task description +> ### {% icon hands_on %} Hands-on: Adds/Edits sequence record annotations > > 1. {% tool [obiannotate](toolshed.g2.bx.psu.edu/repos/iuc/obi_annotate/obi_annotate/1.2.13) %} with the following parameters: > - In *"Keep only attribute with key"*: @@ -321,7 +316,8 @@ A big step can have several subsections or sub steps: > > > ### {% icon comment %} Comment > > -> > A comment about the tool or something else. This box can also be in the main text +> > obiannotate is the command that allows adding/modifying/removing annotation attributes attached to sequence records. +> > Once such attributes are added, they can be used by the other OBITools commands for filtering purposes or for statistics computing. > {: .comment} > {: .hands_on} @@ -344,7 +340,7 @@ A big step can have several subsections or sub steps: ## Sub-step with **obistat** -> ### {% icon hands_on %} Hands-on: Task description +> ### {% icon hands_on %} Hands-on: Computes basic statistics for attribute values > > 1. {% tool [obistat](toolshed.g2.bx.psu.edu/repos/iuc/obi_stat/obi_stat/1.2.13) %} with the following parameters: > - In *"Category attribute"*: @@ -359,7 +355,14 @@ A big step can have several subsections or sub steps: > > > ### {% icon comment %} Comment > > -> > A comment about the tool or something else. This box can also be in the main text +> > stats computes basic statistics for attribute values of sequence records. The sequence records can be categorized or not using one or several -c options. By default, only the number of sequence records and the total count are computed for each category. Additional statistics can be computed for attribute values in each category, like: +> > * minimum value (-m option) +> > * maximum value (-M option) +> > * mean value (-a option) +> > * variance (-v option) +> > * standard deviation (-s option) +> > +> > The result is a contingency table with the different categories in rows, and the computed statistics in columns. > {: .comment} > {: .hands_on} @@ -382,7 +385,7 @@ A big step can have several subsections or sub steps: ## Sub-step with **obigrep** -> ### {% icon hands_on %} Hands-on: Task description +> ### {% icon hands_on %} Hands-on: Filters sequence file on count criteria > > 1. {% tool [obigrep](toolshed.g2.bx.psu.edu/repos/iuc/obi_grep/obi_grep/1.2.13) %} with the following parameters: > - *"Choose the sequence record selection option"*: `predicat` @@ -417,7 +420,7 @@ A big step can have several subsections or sub steps: ## Sub-step with **obigrep** -> ### {% icon hands_on %} Hands-on: Task description +> ### {% icon hands_on %} Hands-on: Filters sequence file on sequence length criteria > > 1. {% tool [obigrep](toolshed.g2.bx.psu.edu/repos/iuc/obi_grep/obi_grep/1.2.13) %} with the following parameters: > - *"Choose the sequence record selection option"*: `lmin` @@ -452,7 +455,7 @@ A big step can have several subsections or sub steps: ## Sub-step with **obiclean** -> ### {% icon hands_on %} Hands-on: Task description +> ### {% icon hands_on %} Hands-on: Tags a set of sequences for PCR/sequencing errors identification > > 1. {% tool [obiclean](toolshed.g2.bx.psu.edu/repos/iuc/obi_clean/obi_clean/1.2.13) %} with the following parameters: > - *"Threshold ratio between counts (rare/abundant counts) of two sequence records so that the less abundant one is a variant of the more abundant (default: 1, i.e. all less abundant sequences are variants)"*: `0.05` @@ -487,7 +490,7 @@ A big step can have several subsections or sub steps: ## Sub-step with **NCBI BLAST+ blastn** -> ### {% icon hands_on %} Hands-on: Task description +> ### {% icon hands_on %} Hands-on: Search nucleotide database with nucleotide query sequence(s) from OBITools treatments > > 1. {% tool [NCBI BLAST+ blastn](toolshed.g2.bx.psu.edu/repos/devteam/ncbi_blast_plus/ncbi_blastn_wrapper/2.10.1+galaxy0) %} with the following parameters: > - *"Subject database/sequences"*: `FASTA file from your history (see warning note below)` @@ -524,7 +527,7 @@ A big step can have several subsections or sub steps: ## Sub-step with **Filter** -> ### {% icon hands_on %} Hands-on: Task description +> ### {% icon hands_on %} Hands-on: Filter Blast results > > 1. {% tool [Filter](Filter1) %} with the following parameters: > - *"With following condition"*: `c3>99.99` From 4e171765888888fec3d956ebaf850efd7cb3c26d Mon Sep 17 00:00:00 2001 From: Yvan Le Bras Date: Wed, 2 Feb 2022 00:07:42 +0100 Subject: [PATCH 21/83] Update tutorial.md --- .../Obitools-metabarcoding/tutorial.md | 46 +++++++++---------- 1 file changed, 22 insertions(+), 24 deletions(-) diff --git a/topics/ecology/tutorials/Obitools-metabarcoding/tutorial.md b/topics/ecology/tutorials/Obitools-metabarcoding/tutorial.md index 4d0caf223656e1..945c7e127de6ea 100644 --- a/topics/ecology/tutorials/Obitools-metabarcoding/tutorial.md +++ b/topics/ecology/tutorials/Obitools-metabarcoding/tutorial.md @@ -23,7 +23,7 @@ contributors: # Introduction {:.no_toc} -The data used in this tutorial correspond to the [official OBITools tutorial](https://pythonhosted.org/OBITools/wolves.html) and show how to analyse four wolf scats, using the protocol published in Shehzad et al. (2012) for assessing carnivore diet. After extracting DNA from the faeces, the DNA amplifications were carried out using the primers TTAGATACCCCACTATGC and TAGAACAGGCTCCTCTAG amplifiying the 12S-V5 region (Riaz et al. 2011), together with a wolf blocking oligonucleotide. +The data used in this tutorial correspond to those described in the [official OBITools tutorial](https://pythonhosted.org/OBITools/wolves.html) and show how to analyse four wolf scats, using the protocol published in Shehzad et al. (2012) for assessing carnivore diet. After extracting DNA from the faeces, the DNA amplifications were carried out using the primers TTAGATACCCCACTATGC and TAGAACAGGCTCCTCTAG amplifiying the 12S-V5 region (Riaz et al. 2011), together with a wolf blocking oligonucleotide. > ### Agenda > @@ -34,7 +34,13 @@ The data used in this tutorial correspond to the [official OBITools tutorial](ht > {: .agenda} -# OBITools overview +# Tutorial based on the official OBITools one +Based on this [OBITools official tutorial](https://pythonhosted.org/OBITools/wolves.html), you will learn here how to analyze DNA metabarcoding data produced on Illumina sequencers using: + * the OBITools on Galaxy + * some classical Galaxy tools + +The data used in this tutorial correspond to the analysis of four wolf scats, using the protocol published in Shehzad et al. (2012) for assessing carnivore diet. After extracting DNA from the faeces, the DNA amplifications were carried out using the primers TTAGATACCCCACTATGC and TAGAACAGGCTCCTCTAG amplifiying the 12S-V5 region (Riaz et al. 2011), together with a wolf blocking oligonucleotide. + It is always a good idea to have a look at the intermediate results or to evaluate the best parameter for each step. Some commands are designed for that purpose, for example you can use : - obicount to count the number of sequence records in a file @@ -76,14 +82,14 @@ The data needed to run the tutorial are the following: ## **Unzip** the downloaded archive -> ### {% icon hands_on %} Hands-on: Unzip the downladed .zip archive and prepare unzipped files to be used by OBITools Galaxy tools +> ### {% icon hands_on %} Hands-on: Unzip the downladed .zip archive and prepare unzipped files to be used by OBITools > > 1. {% tool [Unzip](toolshed.g2.bx.psu.edu/repos/imgteam/unzip/unzip/0.2) %} with the following parameters: > - *"Extract single file"*: `All files` > > > ### {% icon comment %} Comment > > -> > A comment about the tool or something else. This box can also be in the main text +> > To work properly, this unzip Galaxy tool is waiting "simple" archive as input, this means without sub directory. > {: .comment} > > 2. Add to each datafile a tag and/or modify names (*optional*) @@ -95,17 +101,14 @@ The data needed to run the tutorial are the following: > 4. Modify datatype from txt to tabular for the `wolf_diet_ngsfilter` dataset {: .hands_on} -***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* > ### {% icon question %} Questions > -> 1. Question1? -> 2. Question2? +> 1. Why do we need to unhide manually datasets from the data collection? > > > ### {% icon solution %} Solution > > -> > 1. Answer for question1 -> > 2. Answer for question2 +> > 1. Data collection is a functionality often used to deal with multiple datasets on the same format who can be analysed in batch mode. Here, the data collection is populated with heterogenous datafiles, coming from an archive. We thus need to treat separately each dataset of the collection, and to do so, we need to unhide corresponding datasets from the history, as datasets insides collections ar "just" like "symbolic link" to "classical" history datasets hidden by default. > > > {: .solution} > @@ -118,7 +121,7 @@ The data needed to run the tutorial are the following: OBITools is a set of programs specifically designed for analyzing NGS data in a DNA metabarcoding context, taking into account taxonomic information. It is distributed as an open source software available on the following website: http://metabarcoding.org/obitools. -Citation: Boyer F., Mercier C., Bonin A., Taberlet P., Coissac E. (2014) OBITools: a Unix-inspired software package for DNA metabarcoding. Molecular Ecology Resources, submitted. +Citation: Boyer F., Mercier C., Bonin A., Taberlet P., Coissac E. (2016) OBITools: [a Unix-inspired software package for DNA metabarcoding](https://pubmed.ncbi.nlm.nih.gov/25959493/). Molecular Ecology Resources. The OBITools commands consider a sequence record as an entity composed of five distinct elements. Two of them are mandatory, the identifier (id) and the DNA or protein sequence itself. The id is a single word composed of characters, digits, and other symbols like dots or underscores excluding spaces. Formally, the ids should be unique within a dataset and should identify each sequence record unambiguously, but only a few OBITools actually rely on this property. The sequence is an ordered set of characters corresponding to nucleotides or amino-acids according to the International Union of Pure and Applied Chemistry (IUPAC) nomenclature (Cornish-Bowden 1985). The three other elements composing a sequence record are optional. They consist in a sequence definition, a quality vector, and a set of attributes. The sequence definition is a free text describing the sequence briefly. The quality vector associates a quality score to each nucleotide or amino-acid. Usually this quality score is the result of the base-calling process by the sequencer. The last element is a set of attributes qualifying the sequence, each attribute being described by a key=value pair. The set of attributes is the central concept of the OBITools system. When an OBITools command is run on the sequence records included in a dataset, the result of the computation often consist in the addition of new attributes completing the annotation of each sequence record. This strategy of sequence annotation allows the OBITools to return their results as a new sequence record file that can be used as the input of another OBITools program, ultimately creating complex pipelines. @@ -185,12 +188,12 @@ The OBITools commands consider a sequence record as an entity composed of five d > ### {% icon question %} Questions > > 1. How do you verify the operation is successfull? -> 2. How many sequences are kept? +> 2. How many sequences are kept? Discarded? > > > ### {% icon solution %} Solution > > > > 1. you can search in the input file content the presence of `mode=joined` and same on the output file (just clicking the eye to visualize the content of each file and typing CTRL+C for example to search `mode=joined` in the file, or using a regex Galaxy tool for example). You can also at least look at the size of the output file, if smaller than input file, this is a first good indication. -> > 2. You can use a Galaxy tool like `Line/Word/Character count of a dataset` to count the number of lines of each dataset (input and output of obigrep) and divided by 4 (as in a FastQ file, each sequence is represented by a block of 4 lines). 45 276 sequences for input file. 44 717 for output file. Thus 559 sequences. +> > 2. You can use a Galaxy tool like `Line/Word/Character count of a dataset` to count the number of lines of each dataset (input and output of obigrep) and divided by 4 (as in a FastQ file, each sequence is represented by a block of 4 lines). 45 276 sequences for input file. 44 717 for output file. Thus 559 sequences discarded. > > > {: .solution} > @@ -209,11 +212,7 @@ The OBITools commands consider a sequence record as an entity composed of five d > > > ### {% icon comment %} Comment > > -> > A DNA metabarcoding experiment can be considered as a set a PCR products mixed together and sequenced using a next generation sequencer ({i.e.} a solexa or a 454). To distinguish between this different PCR products, pairs of small DNA sequences (call tags, see the oligoTag command and its associated paper for more informations on the design of such tags) unique for each PCR products are concatenated to the PCR primers. As they are amplified during the PCR, these tags should be recognizable, together with their respective primers, at the beginning and the end of the reads. The first step in data analysis is thus to demultiplex the large resulting sequence file by identifying these DNA tags and the primers. - -Usually the results of sequencing are stored in one or more files formatted according to the fasta or fastq format. ngsfilter take as input such sequence file and an extra file describing the DNA tags and primers sequences used for each sample. - -The results consist of sequences trimmed of the primers and tags and annotated with the corresponding sample (and possibly some extra informations). Sequences for which the tags and primers have not been well identified, and which are thus unassigned to any sample, are tagged as erroneous sequences by ngsfilter. Such erroneous sequences are not reported by the program unless specified by the appropriate option. +> > Each sequence record is assigned to its corresponding sample and marker using the data provided in a text file (here wolf_diet_ngsfilter.txt). This text file contains one line per sample, with the name of the experiment (several experiments can be included in the same file), the name of the tags (for example: aattaac if the same tag has been used on each extremity of the PCR products, or aattaac:gaagtag if the tags were different), the sequence of the forward primer, the sequence of the reverse primer, the letter T or F for sample identification using the forward primer and tag only or using both primers and both tags, respectively. > {: .comment} > {: .hands_on} @@ -222,13 +221,11 @@ The results consist of sequences trimmed of the primers and tags and annotated w > ### {% icon question %} Questions > -> 1. Question1? -> 2. Question2? +> 1. How many sequences are not assigned? > > > ### {% icon solution %} Solution > > -> > 1. Answer for question1 -> > 2. Answer for question2 +> > 1. 1391 > > > {: .solution} > @@ -239,11 +236,12 @@ The results consist of sequences trimmed of the primers and tags and annotated w > ### {% icon hands_on %} Hands-on: Groups together sequence records > > 1. {% tool [obiuniq](toolshed.g2.bx.psu.edu/repos/iuc/obi_uniq/obi_uniq/1.2.13) %} with the following parameters: +> - *"Input sequences file"*: `Trimmed and annotated file by NGSfilter` +> > - *"Attribute to merge"*: `sample` +> +> - *"Use specific option"*: `merge` > -> ***TODO***: *Check parameter descriptions* -> -> ***TODO***: *Consider adding a comment or tip box* > > > ### {% icon comment %} Comment > > From 0ec29d819a045cf5498ff4f231e4274bb14565b0 Mon Sep 17 00:00:00 2001 From: Yvan Le Bras Date: Wed, 2 Feb 2022 00:43:12 +0100 Subject: [PATCH 22/83] Update tutorial.md --- .../Obitools-metabarcoding/tutorial.md | 58 ++++++------------- 1 file changed, 19 insertions(+), 39 deletions(-) diff --git a/topics/ecology/tutorials/Obitools-metabarcoding/tutorial.md b/topics/ecology/tutorials/Obitools-metabarcoding/tutorial.md index 945c7e127de6ea..a461eb544a8aa4 100644 --- a/topics/ecology/tutorials/Obitools-metabarcoding/tutorial.md +++ b/topics/ecology/tutorials/Obitools-metabarcoding/tutorial.md @@ -217,8 +217,6 @@ The OBITools commands consider a sequence record as an entity composed of five d > {: .hands_on} -***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* - > ### {% icon question %} Questions > > 1. How many sequences are not assigned? @@ -245,22 +243,23 @@ The OBITools commands consider a sequence record as an entity composed of five d > > > ### {% icon comment %} Comment > > -> > A comment about the tool or something else. This box can also be in the main text +> > The same DNA molecule can be sequenced several times. In order to reduce both file size and computations time, and to get easier interpretable results, it is convenient to work with unique sequences instead of reads. To dereplicate such reads into unique sequences, we use the obiuniq command. +> > Definition: Dereplicate reads into unique sequences +> > * compare all the reads in a data set to each other +> > * group strictly identical reads together +> > * output the sequence for each group and its count in the original dataset (in this way, all duplicated reads are removed) +> > *Definition adapted from Seguritan and Rohwer (2001)* > {: .comment} > {: .hands_on} -***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* - > ### {% icon question %} Questions > -> 1. Question1? -> 2. Question2? +> 1. How many sequences you had and how many you finally obtain? > > > ### {% icon solution %} Solution > > -> > 1. Answer for question1 -> > 2. Answer for question2 +> > 1. From 43 326 to 3 962 > > > {: .solution} > @@ -271,29 +270,26 @@ The OBITools commands consider a sequence record as an entity composed of five d > ### {% icon hands_on %} Hands-on: Check quality of your data before and after analysis > > 1. {% tool [FastQC](toolshed.g2.bx.psu.edu/repos/devteam/fastqc/fastqc/0.73+galaxy0) %} with the following parameters: -> -> ***TODO***: *Check parameter descriptions* -> -> ***TODO***: *Consider adding a comment or tip box* +> - *"Raw read data from your current history"*: `wolf-F`, `wolf-R` and `obigrep output file` > > > ### {% icon comment %} Comment > > -> > A comment about the tool or something else. This box can also be in the main text +> > To select more than one input dataset and execute the tool in parallel on multiple files, you have to select the `Multiple datasets` mode. +> > +> > The run of obiuniq has added two key=values entries in the header of the fasta sequence: +> > * merged_sample={'29a_F260619': 1}: this sequence have been found once in a single sample called 29a_F260619 +> > * count=1 : the total count for this sequence is 1 > {: .comment} > {: .hands_on} -***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* - > ### {% icon question %} Questions > -> 1. Question1? -> 2. Question2? +> 1. Do you know why Per base sequence quality is ok with obigrep output file and not original F and R files? > > > ### {% icon solution %} Solution > > -> > 1. Answer for question1 -> > 2. Answer for question2 +> > 1. Raw F and R files have classical decrease of sequencing quality with the length of sequences. On obigrep output dataset, Forward and Reverse sequences are merged so nucleotides with low sequencing quality from the end of forward reads are replaced by the high sequencing quality from the start of reverse corresponding reads. > > > {: .solution} > @@ -307,34 +303,18 @@ The OBITools commands consider a sequence record as an entity composed of five d > - In *"Keep only attribute with key"*: > - *"key"*: `count` > - *"if you want to specify a second key"*: `merged_sample` -> -> ***TODO***: *Check parameter descriptions* -> -> ***TODO***: *Consider adding a comment or tip box* + > > > ### {% icon comment %} Comment > > > > obiannotate is the command that allows adding/modifying/removing annotation attributes attached to sequence records. > > Once such attributes are added, they can be used by the other OBITools commands for filtering purposes or for statistics computing. +> > +> > Here, the goal is to keep only `count` and `merged_sample` key=value attributes! > {: .comment} > {: .hands_on} -***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* - -> ### {% icon question %} Questions -> -> 1. Question1? -> 2. Question2? -> -> > ### {% icon solution %} Solution -> > -> > 1. Answer for question1 -> > 2. Answer for question2 -> > -> {: .solution} -> -{: .question} ## Sub-step with **obistat** From d62b573bc57600dcafa382421790a73871995ea9 Mon Sep 17 00:00:00 2001 From: Yvan Le Bras Date: Wed, 2 Feb 2022 14:27:12 +0100 Subject: [PATCH 23/83] Update tutorial.md --- .../Obitools-metabarcoding/tutorial.md | 103 +++++++----------- 1 file changed, 38 insertions(+), 65 deletions(-) diff --git a/topics/ecology/tutorials/Obitools-metabarcoding/tutorial.md b/topics/ecology/tutorials/Obitools-metabarcoding/tutorial.md index a461eb544a8aa4..c5dc61021126f2 100644 --- a/topics/ecology/tutorials/Obitools-metabarcoding/tutorial.md +++ b/topics/ecology/tutorials/Obitools-metabarcoding/tutorial.md @@ -276,9 +276,6 @@ The OBITools commands consider a sequence record as an entity composed of five d > > > > To select more than one input dataset and execute the tool in parallel on multiple files, you have to select the `Multiple datasets` mode. > > -> > The run of obiuniq has added two key=values entries in the header of the fasta sequence: -> > * merged_sample={'29a_F260619': 1}: this sequence have been found once in a single sample called 29a_F260619 -> > * count=1 : the total count for this sequence is 1 > {: .comment} > {: .hands_on} @@ -310,7 +307,7 @@ The OBITools commands consider a sequence record as an entity composed of five d > > obiannotate is the command that allows adding/modifying/removing annotation attributes attached to sequence records. > > Once such attributes are added, they can be used by the other OBITools commands for filtering purposes or for statistics computing. > > -> > Here, the goal is to keep only `count` and `merged_sample` key=value attributes! +> > Here, the goal is to keep only `count` and `merged_sample` key=value attributes! > {: .comment} > {: .hands_on} @@ -349,13 +346,11 @@ The OBITools commands consider a sequence record as an entity composed of five d > ### {% icon question %} Questions > -> 1. Question1? -> 2. Question2? +> 1. Can you use this result to say how many sequences occuring only once? You would need to use Galaxy tools like `Sort data in ascending or descending order` and ` Select first lines from a dataset` to answer the question > > > ### {% icon solution %} Solution > > -> > 1. Answer for question1 -> > 2. Answer for question2 +> > 1. 3131 sequences are occuring once. > > > {: .solution} > @@ -363,90 +358,66 @@ The OBITools commands consider a sequence record as an entity composed of five d ## Sub-step with **obigrep** -> ### {% icon hands_on %} Hands-on: Filters sequence file on count criteria +> ### {% icon hands_on %} Hands-on: Keep only the sequences having a count greater or equal to 10 and a length shorter than 80 bp > > 1. {% tool [obigrep](toolshed.g2.bx.psu.edu/repos/iuc/obi_grep/obi_grep/1.2.13) %} with the following parameters: > - *"Choose the sequence record selection option"*: `predicat` > - *"Python boolean expression to be evaluated for each sequence record."*: `count>=10` > -> ***TODO***: *Check parameter descriptions* -> -> ***TODO***: *Consider adding a comment or tip box* +> 2. {% tool [obigrep](toolshed.g2.bx.psu.edu/repos/iuc/obi_grep/obi_grep/1.2.13) %} with the following parameters: +> - *"Choose the sequence record selection option"*: `lmin` +> - *"lmin"*: `80` > > > ### {% icon comment %} Comment -> > -> > A comment about the tool or something else. This box can also be in the main text +> > Based on the previous observation, we set the cut-off for keeping sequences for further analysis to a count of 10 +> > Based on previous knowledge we also remove sequences with a length shorter than 80 bp (option -l) as we know that the amplified 12S-V5 barcode for vertebrates must have a length around 100bp > {: .comment} > {: .hands_on} -***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* - > ### {% icon question %} Questions > -> 1. Question1? -> 2. Question2? +> 1. How many sequences are kept following the "count" filter? +> 2. How many sequences are kept following the "length" filter? > > > ### {% icon solution %} Solution > > -> > 1. Answer for question1 -> > 2. Answer for question2 +> > 1. 178 +> > 2. 175 > > > {: .solution} > {: .question} -## Sub-step with **obigrep** +## Sub-step with **obiclean** -> ### {% icon hands_on %} Hands-on: Filters sequence file on sequence length criteria +> ### {% icon hands_on %} Hands-on: Clean the sequences for PCR/sequencing errors (sequence variants) > -> 1. {% tool [obigrep](toolshed.g2.bx.psu.edu/repos/iuc/obi_grep/obi_grep/1.2.13) %} with the following parameters: -> - *"Choose the sequence record selection option"*: `lmin` -> - *"lmin"*: `80` -> -> ***TODO***: *Check parameter descriptions* -> -> ***TODO***: *Consider adding a comment or tip box* +> 1. {% tool [obiclean](toolshed.g2.bx.psu.edu/repos/iuc/obi_clean/obi_clean/1.2.13) %} with the following parameters: +> - *"Input sequences file"*: `obigrep output file` +> - *"Maximum numbers of differences between two variant sequences (default: 1)"*: `1` +> - *"Threshold ratio between counts (rare/abundant counts) of two sequence records so that the less abundant one is a variant of the more abundant (default: 1, i.e. all less abundant sequences are variants)"*: `0.05` +> - *"Do you want to select only sequences with the head status in a least one sample?"*: `Yes` > > > ### {% icon comment %} Comment > > -> > A comment about the tool or something else. This box can also be in the main text +> > As a final denoising step, using the obiclean program, we keep the head sequences that are sequences with no variants with a count greater than 5% of their own count > {: .comment} > {: .hands_on} -***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* - -> ### {% icon question %} Questions -> -> 1. Question1? -> 2. Question2? -> -> > ### {% icon solution %} Solution -> > -> > 1. Answer for question1 -> > 2. Answer for question2 -> > -> {: .solution} -> -{: .question} -## Sub-step with **obiclean** +## Sub-step with **NCBI BLAST+ blastn** -> ### {% icon hands_on %} Hands-on: Tags a set of sequences for PCR/sequencing errors identification -> -> 1. {% tool [obiclean](toolshed.g2.bx.psu.edu/repos/iuc/obi_clean/obi_clean/1.2.13) %} with the following parameters: -> - *"Threshold ratio between counts (rare/abundant counts) of two sequence records so that the less abundant one is a variant of the more abundant (default: 1, i.e. all less abundant sequences are variants)"*: `0.05` -> - *"Do you want to select only sequences with the head status in a least one sample?"*: `Yes` -> -> ***TODO***: *Check parameter descriptions* +> ### {% icon hands_on %} Hands-on: Search nucleotide database with nucleotide query sequence(s) from OBITools treatments > -> ***TODO***: *Consider adding a comment or tip box* +> 1. {% tool [NCBI BLAST+ blastn](toolshed.g2.bx.psu.edu/repos/devteam/ncbi_blast_plus/ncbi_blastn_wrapper/2.10.1+galaxy0) %} with the following parameters: +> - *"Subject database/sequences"*: `FASTA file from your history (see warning note below)` +> - *"Set expectation value cutoff"*: `0.0001` +> - *"Output format"*: `Tabular (extended 25 columns)` +> - *"Advanced Options"*: `Show Advanced Options` +> - *"Maximum hits to consider/show": `1` > -> > ### {% icon comment %} Comment -> > -> > A comment about the tool or something else. This box can also be in the main text -> {: .comment} > {: .hands_on} @@ -466,15 +437,13 @@ The OBITools commands consider a sequence record as an entity composed of five d > {: .question} -## Sub-step with **NCBI BLAST+ blastn** -> ### {% icon hands_on %} Hands-on: Search nucleotide database with nucleotide query sequence(s) from OBITools treatments +## Sub-step with **Filter sequences by ID** + +> ### {% icon hands_on %} Hands-on: Filter Blast results > -> 1. {% tool [NCBI BLAST+ blastn](toolshed.g2.bx.psu.edu/repos/devteam/ncbi_blast_plus/ncbi_blastn_wrapper/2.10.1+galaxy0) %} with the following parameters: -> - *"Subject database/sequences"*: `FASTA file from your history (see warning note below)` -> - *"Set expectation value cutoff"*: `0.0001` -> - *"Output format"*: `Tabular (extended 25 columns)` -> - *"Advanced Options"*: `Hide Advanced Options` +> 1. {% tool [Filter](Filter1) %} with the following parameters: +> - *"Sequence file to be filtered"*: `db_v05_r117` > > ***TODO***: *Check parameter descriptions* > @@ -503,6 +472,10 @@ The OBITools commands consider a sequence record as an entity composed of five d > {: .question} + + + + ## Sub-step with **Filter** > ### {% icon hands_on %} Hands-on: Filter Blast results From 8b280ec5a9bfafb152a6681e3cf585708a89221c Mon Sep 17 00:00:00 2001 From: Yvan Le Bras Date: Thu, 3 Feb 2022 16:21:28 +0100 Subject: [PATCH 24/83] Update tutorial.md --- .../Obitools-metabarcoding/tutorial.md | 23 ++++--------------- 1 file changed, 4 insertions(+), 19 deletions(-) diff --git a/topics/ecology/tutorials/Obitools-metabarcoding/tutorial.md b/topics/ecology/tutorials/Obitools-metabarcoding/tutorial.md index c5dc61021126f2..5d6cfe2498ac2f 100644 --- a/topics/ecology/tutorials/Obitools-metabarcoding/tutorial.md +++ b/topics/ecology/tutorials/Obitools-metabarcoding/tutorial.md @@ -421,22 +421,6 @@ The OBITools commands consider a sequence record as an entity composed of five d > {: .hands_on} -***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* - -> ### {% icon question %} Questions -> -> 1. Question1? -> 2. Question2? -> -> > ### {% icon solution %} Solution -> > -> > 1. Answer for question1 -> > 2. Answer for question2 -> > -> {: .solution} -> -{: .question} - ## Sub-step with **Filter sequences by ID** @@ -444,10 +428,11 @@ The OBITools commands consider a sequence record as an entity composed of five d > > 1. {% tool [Filter](Filter1) %} with the following parameters: > - *"Sequence file to be filtered"*: `db_v05_r117` +> - *"Filter using the ID list from"*: `tabular file` +> - *"Tabular file containing sequence identifiers"*: `megablast obiclean` +> - *"Column(s) containing sequence identifiers"*: `Column 2` +> - *"Output positive matches, negative matches, or both?"*: `just positive match` > -> ***TODO***: *Check parameter descriptions* -> -> ***TODO***: *Consider adding a comment or tip box* > > > ### {% icon comment %} Comment > > From 956edcbc66aaf203af7a55133e7bddc03bb7e1ee Mon Sep 17 00:00:00 2001 From: Yvan Le Bras Date: Thu, 3 Feb 2022 23:56:04 +0100 Subject: [PATCH 25/83] End af the first pass! --- .../Obitools-metabarcoding/tutorial.md | 47 +++++-------------- 1 file changed, 11 insertions(+), 36 deletions(-) diff --git a/topics/ecology/tutorials/Obitools-metabarcoding/tutorial.md b/topics/ecology/tutorials/Obitools-metabarcoding/tutorial.md index 5d6cfe2498ac2f..32bdedb0c7dedf 100644 --- a/topics/ecology/tutorials/Obitools-metabarcoding/tutorial.md +++ b/topics/ecology/tutorials/Obitools-metabarcoding/tutorial.md @@ -426,7 +426,7 @@ The OBITools commands consider a sequence record as an entity composed of five d > ### {% icon hands_on %} Hands-on: Filter Blast results > -> 1. {% tool [Filter](Filter1) %} with the following parameters: +> 1. {% tool [obitab](toolshed.g2.bx.psu.edu/repos/iuc/obi_tab/obi_tab/1.2.13) %} with the following parameters: > - *"Sequence file to be filtered"*: `db_v05_r117` > - *"Filter using the ID list from"*: `tabular file` > - *"Tabular file containing sequence identifiers"*: `megablast obiclean` @@ -436,75 +436,50 @@ The OBITools commands consider a sequence record as an entity composed of five d > > > ### {% icon comment %} Comment > > -> > A comment about the tool or something else. This box can also be in the main text +> > This tool allows you to re-associate all the reference sequences information, notably the `species_name` one so you can see which species are potentially seen on the sample. > {: .comment} > {: .hands_on} -***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* - -> ### {% icon question %} Questions -> -> 1. Question1? -> 2. Question2? -> -> > ### {% icon solution %} Solution -> > -> > 1. Answer for question1 -> > 2. Answer for question2 -> > -> {: .solution} -> -{: .question} - -## Sub-step with **Filter** +## Sub-step with **Obitab** > ### {% icon hands_on %} Hands-on: Filter Blast results > -> 1. {% tool [Filter](Filter1) %} with the following parameters: -> - *"With following condition"*: `c3>99.99` -> -> ***TODO***: *Check parameter descriptions* -> -> ***TODO***: *Consider adding a comment or tip box* +> 1. {% tool [obitab](toolshed.g2.bx.psu.edu/repos/iuc/obi_tab/obi_tab/1.2.13) %} with the following parameters: +> - *"Input sequences file"*: `db_v05_r117 with matched ID` > > > ### {% icon comment %} Comment > > -> > A comment about the tool or something else. This box can also be in the main text +> > This tool allows you to convert a fasta file into a tabular one so it is easier to read sequences definitions. > {: .comment} > {: .hands_on} -***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* > ### {% icon question %} Questions > -> 1. Question1? -> 2. Question2? +> 1. How many species are identified? You can use `Cut columns from a table` and `unique occurences of each record` to isolate the `species name` column of obitab results. +> 2. Can you deduce the diet of each sample? You can use tools like `obitab` and `Join two Datasets side by side on a specified field` to join megablast results to obigrep one and `db_v05_r117 with matched ID` > > > ### {% icon solution %} Solution > > -> > 1. Answer for question1 -> > 2. Answer for question2 +> > 1. 1O +> > 2. If we remove human sequences ;), some squirrel (sample:26a_F040644), deer (sample:15a_F730814 + sample:29a_F260619), stag (sample:29a_F260619 + sample:13a_F730603), marmot (sample:26a_F040644), doe (sample:29a_F260619), Grimm's duiker (sample:29a_F260619). > > > {: .solution} > {: .question} - ## Re-arrange To create the template, each step of the workflow had its own subsection. -***TODO***: *Re-arrange the generated subsections into sections or other subsections. -Consider merging some hands-on boxes to have a meaningful flow of the analyses* # Conclusion {:.no_toc} -Sum up the tutorial and the key takeaways here. We encourage adding an overview image of the -pipeline used. +You analyzed raw metabarcoding data to identify diet of wolves. From dfc664a2da71a5e3452bbf31156cc52d2ad4026b Mon Sep 17 00:00:00 2001 From: Yvan Le Bras Date: Fri, 4 Feb 2022 07:20:26 +0100 Subject: [PATCH 26/83] Create Readme.md --- topics/ecology/images/Obitools/Readme.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 topics/ecology/images/Obitools/Readme.md diff --git a/topics/ecology/images/Obitools/Readme.md b/topics/ecology/images/Obitools/Readme.md new file mode 100644 index 00000000000000..345e6aef713208 --- /dev/null +++ b/topics/ecology/images/Obitools/Readme.md @@ -0,0 +1 @@ +Test From c153ca09fa471c8abe195e1203cf6b62ef3c16f2 Mon Sep 17 00:00:00 2001 From: Yvan Le Bras Date: Fri, 4 Feb 2022 07:21:56 +0100 Subject: [PATCH 27/83] Add files via upload --- .../ecology/images/Obitools/fig-Pipeline.png | Bin 0 -> 313624 bytes topics/ecology/images/Obitools/fig-Record.png | Bin 0 -> 152032 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 topics/ecology/images/Obitools/fig-Pipeline.png create mode 100644 topics/ecology/images/Obitools/fig-Record.png diff --git a/topics/ecology/images/Obitools/fig-Pipeline.png b/topics/ecology/images/Obitools/fig-Pipeline.png new file mode 100644 index 0000000000000000000000000000000000000000..6991dde2111ca1d5856bd2d5dc6d5a6fb5bfccb8 GIT binary patch literal 313624 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
Lac>|4#e@$WKH4bz~U!n>;2YonZf%kPiZE8u(m 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 z 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

wJ7Gb| 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 JKa$F$Z<_e?WXTeWAW@Iu^5@ zH(0Dwe!K%o+k14Jjzs3X-TdXtZj`Q#cD?2@Vsq(zY1b}9rj(M+Hz9o9QHS;q!gHN>7K}-GSh&g6~6{Q)^+aKM!*A;Ayx@?VXYlda0a`BMJ6V zXdR69aMWLEf{-b)2AsbLv%vVIe+h?k*+6;5TcH0S&5;9Q`1j-{FUY2n;-$G2O)TgFb7k;S7;6yv|zd1@IhZq2|iZrtS^F47gXzwnm- zgIzJTwq$+2&{*@ht#X6h+8%4HmzDIfj*b~CQgik-ES>U0n0Ku`lO5X>r~kwxD>2<9 z@DJKc@p3sveetUf8smdjD`5>HC_8_Cd^yKF@!Io@#qKG)wMC-(o{GJ;p<_A~LL0XO zyfTGodcHM|(1xZxx1yfy)ve}ifZin4A1_C+38a3Seb93KTw`xVH7+W^hsD#Qre4)T zN^qkq45DME@TG%lD;u&OZQl5795Fm}RV3FJalx_*^+x&efY8fP-){(Iq_gt}7H!KQ zmH!}eR8>4$rp z>-+9qp_GlRMb2iZ;fozxg1b|phw7K32ynphPsrU-3GN?zbm3Rq@9LWRj^^4MKW1zW zH5lh?B2i+D#Cr+}5$v3;MEk!XVlU63@$~TUcnovwt_|aLWR8=~d?Pa%ekiCI_k}2r z=Ga2`Y|l6%lA5h2!*VS{*KC}0pnLYE&Go^l{p^df{cD-ojxSP!}>qFtLM+3Og+|zh1 zbiOS!M6L)G`tsr`9n0<zOWk>3LV#oLe zpm!Zc_z6uG&wHx=#EC`+!9e^1$z=e;s40DI62=fvyh*KV{y1(6@GOvvjtbAQzt(^b zPMQ`r7#ooAk{TlOGFj8`atV#Sof#vAYQIDW?R(rSb)JjcrkDfxqWW=7kDt}g-O5Gq> zNvR$Q+`$mS)_dO}+-u2u^#nifE&nw72T`_z(>T<+sIk|mw517i-qL4FB%cM5bm-P= zqJ=o0e!`?88zr+=E^J~Yy|d6`EgAkHF5e@sa^yrt&4zoXj1oZZtkJ)xqfA@_;Pr>0 zu2Gc0dk0L<+Q^H?f-$p%I7`NYc-r2oH6RzfV_Wn-sSOB z$Bj#a{2r^eWnRf^5mk7u#CGTo)~c5JF=#xdl6p3LI;-3z{0{DQR>#P78zePtfD>g7 zTN05T)3N-D*1oGA?;Z%#?DcxpA|ZC=>?h-MaUsm`9vr)4?S2#5KJRR-*#cvReJ`OI zkH*Z0bIY@Pr3U^Fc9$!-g^y3ivkvVZLpyz!HHSwBr|6u=k2uc~sr$`VcXEnHSc6G= zne%tX>knlmy2)Wv78??E0rBdN)12FN0j=;q0^YXc>w5>fJ#ve$Ymw)^`*SEsL74@* zf=8RrHM!Wyu*Hr#s7uPL^cMg;DtG)q+{O3kO*?t{=leJ-yOv>1%zBN^bSctdH?73| zQs|A0MH<4&y$@hntY!^%+0?s6hK>Ft@`vj}Mp+I#CK@~8A+sd)nw9dzMo6{bM=6}! zw9qv8qpS2I@Way~u0@P?NL?^A@5XvkTN^_)q2bIRD!5MpRB$h?sTIC0d6_2jy6J$% zAfof&fw0R?yHq-J@zS9`+FKW;%|s~`^U`9(vx;Yd{i4$(obXobY%~9wMtWTfhdUhO z0%&n6)RJXvtdPf|{?-PD_%8S#A+=hz^C&J?g^zqf;S~T zZT<*!U2(N&uCzKDs2>P+Y`jiizqDY6t=^PPAF{%!Vdr-}Cf=Uy;M7(=VH5XWGHEc> zHCYu8Xmyjwp(Og*!(QzvlvYsRU?-}yD&BW}I?-~-Q|fG3c@T*0WL#~BUkSG4=@6qY zZ)dM8Qa?aFoj;(QQ(k^7yFKZ309%^l!bB7d%lpif0PZlT-|Kc|aa2SOxw5#>AWx;b z6KYFb{&Y96_}Z{KGK^O=gmZ>d=gC*nVWxt0Udv5osMu}d9Ifxe5jg zd#H5ktAJ~h0C_0@P|P##g0{F*+F!f8c`;GDqk0Gfj!lDtuiiYF>T{+lyOOEwZsfgQ zraP3XK76ee+;7$_LtKJw(y&2wULN!~n>O>jY&&G_bKn+-Lu_(y zYHl}IYNYm4Rnrb8BQi7jcFR@N)hmbV`>0JDN^ZjJM5bEc)hy32S=+ScF;8oDvK>wS zB5?AyL^rmyoCYYe3}@~EQn$*5eVH7Xp||>)K%XPEM#o}LAfd4@seLEM z)D9>Vy9(oBq5bGdh^hro9`!`ilL^OM;@vvB$YoY0C%X|ZgKsvM+{#5oq&zQ_uO=}E z;P93%X-7~(!}LmHVj_I4B|`!(XJEaHoLlI4*_lwSUQa$(jm$p6g$`? z##x`}_?}~&?x7L}1Jj!6b*hzrx?Yh%@~l6#bZeLPG&F;{lU>_YxMLJ<;k4}nbE{Ag?}G@SM~T(Sj5b$*k0SJJBHoU-hPv~WQnrm zP;36+q55$4We%K_a?YgzpY2?2q1uAe!SvIkTh)H(Qo($c7Am&jN`eFaYoxN025x)J zod>s}DZP*(*@le1Op!P0%aJXpZ&+sSKWH?ZWI`V5b-%E( z*9i|43ATR;*Joh~ZDR!YPs-}U$>)A&g4_CzdOmVVv)LfPa5E*7czC0J$uxM*{Xkg{ zZ~RVhZ?!LQDTtvkegqsRF(pXOtlRW3FE!f^UI8+C#^ESLDMr7+ZU!NG(#*-@k+m(x z$^}E`D}7Y^0k>q_cX0=5Fx8GWLJJR>k%>2on+=AGu+kkh*>y6K=u3tzYALAy0BiGx z{FPVc>(&V!D6TmODr!>ZC#WA8DWC0z10zu+d4=NQH(dQ< zuNO{2p0xPI^xZmV!45~$E+(OTXBGh0($d*LHif;=b*g#bdYJ#}l6+tcFt(cLlV4^Q zo(9xUdc1qNcsIA{UdnomqjG?u1T*D&Vp~T)9Xp)A zBw*eEoD{_Y>RGPf4Fn(24`)ZUP3+FL_xulZxyF_Fs?*<*8zg;FM*GnpI=wntkij|~ zXJ$E_7&x{?ws<-?#P zSmIJz<3OUjIKMc$h^e-6;b2iZpQadIs&M>L=ruw_&2a!`?aJ zNisMaxHe~u3%kzVqK_5}jQr9&&ee=zJGW0Nu&H`2Mc2YH?CR^DhcFxWwmew6(#d2q zQBb`4=G`cz;U6=@v=+jq3ik}yDYtV_5xZ@9w4~y#gIZWN^&VG(#T)uBA>k4IxSch3 z4%}!nmh!mAS=U=G@9uCHs&x;kiXR;6m3)W3P5XB@JQOVz@SJ3k?((g;v7XyzJ;D&(3%95n3 z@6wu>tspi@68IvPR}5ytz>RL9BLBtR8D2Cp(&m&tDO6D7(MBzH znT9=AE}SL_WlqWrs~!V%klwYrA&qTjwxCp)eW{iWX>aC;diYQM9OLJeqh(2~Mu&!F zd?$+|i%PbW@0SCT_G;NOwE+@q!CMsYaUhHMp7Rq3YFbu?$xz z-|{!6OZSr2b|oC7Mb5oaQ}HuXq+1tnuYoGnMACtAQA3lx(CHZ--cKcrZcl0kd>T|! z58dAEx_(N^hf`hshs{hEAB!v;Nj$YSM4eBW(S&~y?g6;j*WR_uu9Do22W4h`gM<5m zQn~?b$Iwq5t-8sMEdI?Yt1_>YynWq#oB~en)7tuE!W~?B?<1=jk@7>;9E?(c%tmgx ze(8ATLNSYVVh<;KL)4Rz;swf93wjC*<))>3{H9%!ShvTWrp3ji)p?2H0Q2b;Hn)=U z(o>eI_nd28*b)G%J+?EowP4wUzy2_GFvs4{y=lu^%Y9%d!OJH!=K(Zz#k;wrE}8ZD z-uMIe5e!-Ki`&Ay>ExZ8VdCk&(Kmv`{Nmwi4#izESr(Tb9^T6O0WGhF>~B)@__Pc7 zzG_@JGxng(;yUUe0-liz5i zaP{7)W0q?<$qP40e9^Hm*{if#v-DOY$1&6}asLy)okg>$c(ptaEA5hd8H*~gm_%E~ z-Ho2fRy>Us=AbzFUFno^o5AM*o*9ByBJqEsofdCY2B}rTfy|-e+}xZ6`q5~i)ZNZ= zr4!v}S;d*V=TUGZb7vSL6KsSm?Kb|7ydA%8XX( zu`6E8-GH1kbYFYK|xsTyEZ)mF>roHOebCvB~&_mpyk7(m)h;`O92&`gg4y*>FTByH+dU2ut|i zExuhxVW&5M-w+I|*Y&F*tH<8f9rR{WB-|`7v4*!)ORtyHoOkCp=?Sn3Qb3V7v4C*I zw~x&aF|(XLjrafBETYmlx3XqOpa+w5jZ+l3lE-!BfX0GC=;D~6q}$NFvzRqS9)r@86SKU$@PXm9o!=nb$)GT}c|6Wz0`aug$1oS5{4? zzVmy++#6Wkz}$lqjY9{5132yn>Bc^K!EE^Fp2~P4b9b22NoKf%UgD4Ro4gs z6KPvaZ}VF-MSdQl$(sRd0*_asKeV>1h$vsb>6uS9Ae5DiD0W(v#`B?d3(qJhfglyT z(&>*#7^aZT^_BkCVeQdDmiu;}OE|c1j#n)BBk>k3HP2^Qo6K_2H&$#q6CUSPPc}}) zGdLAB$l5}KdGnYkBolz%Vj6%?U_U!w*j14F}^zD@<;X|;jK&%bkTM4rX=PHMX z>Mg>7Y$BR1H4-z{?~FF{roER{aIB~zvy}#{hNX7%%=?g$SIfmo_)FP^Ifi8@T>(OP zzk3ORz93wH1K=Voad(I~JRl`bSDwv8t{O=`XnsFJf;zdMYw-<+NgdxRP$pIa`%-_> z)~Kg|Y5tl6AZhLHDORtou_ADb7H~o~rit+7pMAn&$&sjT*)pSvmHY72q_n=IRVb*V zUrwSCY0)w)VqW&C0>u~$MdiahhNQQArH{h#<-CAcIuE%B_R2gf8Q;(rpTe10Q9qHQ zDe-FptA&ZSkXHj+vTZ-9B}@<6PD# z$auh_g?jZKo-(HAq2<5i*;W{#jT5Vk*{-m3Ou(J#XD4r#zMCmshVi=Fxi2)})pwfH zD#fNNC9a(jG%B$u5Y)muk9u^s;F|7@*{i#%&MD*ym&C8#7bMp*D{!_7zpPo^QyN~AY{tOoh`ez_w>_3nE=_qzoBv}nY4i|xLz#+Pl+lK_z2jnV=`7^1hMAsvj3N!O*q?{LbPMU) z&Wx{->A?n_6gu}Vn_kIPNct^)2sn+?vCgB0Y@L?p?~)A*tjFa<<8>L+xo7Xp6KzkS(& z$cG|785ekOR?IxZW(C8!x5a0UT1srR(ITm=&%<<1J*JVI**sh{$97+e%H^iH(`7a! zB34U|$mkR}BZ(K~p&`@#8a02ed$yTNiM=B9Jd@gfN?YE6xiJ;p6yR^#Q=AF3AzmuQ zG%ZbW!y#zQahvbdrS1fQ^;xvkohjuWU1nzgYr-n;oy_#MyRt&_nn|wc#c_6k&P>AnG z)Pj2(Y>(w@Ixc93FNKhnTQh5awVjh{A zxuYk97=T0(UGX#M9lq~?^kMDOA`%^oy~w3#}|?HZuhN1Dm# zSmy=z#Xk{7Aw@A1*QYOU+QK5QP$>Fj)Zf>Sn24z8ji>!lci%TIl%U12FTL)NvU*== zUweGz$+tw@gCn%;awoN_By11%=|!uRk0U#sIG0GWs9LEwcS>HUYDM1u>`9B_L5FCD zxaAk_rYQfafG;0yyU2an@8`lgnNA)5x^EKOp-rl!2i;bY8A6I)IoaA8BGj9S;?PW) zfJ52sliOLJ0;V+-VgV6JD*>d%v!ljb}p`F6O$K$rJ^3;vfTQ5ZkAP-5@!17I=^*0Ce=`5C`M2uKM3~Ko8WGoTm*&SBU+zl! z>%@NJ8u4u!VEKWxTp&89OQb=xMhNSCy8OPV?;|+^lZd_I2NghLS8!e30EDdTKwpt= zmh$_X#^aU+MnW7B(DH!;gY^s7@B83}XCkl0c(sIh*uK?A7Rm0A`3RBtw3Q$xrWEl4 z)I{?F=4C3rlbZ;(w8X#GA1=WO0R1t|1d*D?HfD|f{J=wKMLI8 zk=|Aq+mvOsiAMw&PYt68_7D{_Z!epFSpqol*6v79untc>%ME+Vv&?fo-}N#HdZTJs zrdAJI`Eocz3<$~AH~9?8y+Qx?eVP*#L$1xS^>)$UhD`JQ>iG!2a+ap^njZ#_vo*Se zWo}-M%*Q+t%&$pVrePgQ-72Sd_YMNU!S{AUEnP+u9_GqO!< z^tumhpzs-BZEPkGu=udfl`N(qzSG>QU~Ouff>|KE`RAca(w`%HmcrtZ|B=l07IeFz{IVW~PajioJzARYAUf*kkn@Au5?cvUWzm2&oodS=-Lga}nR^1gy^b9} z0DAM+Z_w#{lX89nOwaqiBygm^d}ly#J8!@-Ocv3VBH8{-o&Z0&HNZDa39hErWoS#J z=$B}jZdUfTSFtwUd+}`}$9GihnR+gdDHkHKufE9o`sMuOuh+N83#Q6cor3uf^TpPv z)7c6562moTPs{P-9!o#kVHV;%;`gWgy+}PGU$A%Ve=U^w{%6mpr6OW*+GZJ^0_Un~ zTV+(kB2O63d}zLI%pvi<0s7t}ZoL>jS(|-Xz`%Zz-{)RS=;APY$N5d#`bo4AaNntB zMZXMu7%2}WG$;G}B|E|6Q!?P`>7*S!~q%>I|32}wyw2WY4|@#3T8|IG9YXmEy?T%oU=ZSt`G z^ahUj{0y$AcW~>w%W{>PuqYozlEmX8hndA>o(g{TFS(k5Wzc4jqaYrJ9&_P=HczdaS~!mWZ=bO`7#FU6Y2!k{=VVkuGpN zV|sa6O`!!|x1T;$)`~)1W-`xVUiDIZZqxabZm*p2>x!kxVlyaf;--?d_mqFH!R8OE zT|vk<%hxTr#)M+S(n%cUajY<5yR}v;VIb&toVF+DCx0H0u-ml3#PGF!=Jty+8WB0C zAQ9OI@Zyvx_Kc`5KWC?*nHjyc()=Vu_|yM~?+Nc4S+q$!wXbZVRdh0zhj0lNBLjFO z2p_?dN=1mz_TdTHI!aRZ&8{Py4s$T+wU~$tO4aT?Di3z%$vs~>7O6>XyGw@ z>7KAo$EUi!e=G)&3$|vdb z-i`ZV^^DJARElhCeLbd&i_5?#sz#u%S|zZ0z}daY4(^Mgf6g5KWYAxya#IWbTtVqh za#W)dk!bpEo{V^Yx96yil9rVtqU9C$IDA@gN?n-UM&A)B0@@dCqn?HB+4{F$v?e>t zw-me-(4!_eF@vJne^&2j@Fql+I_q?~$Fo8Db-#^gw4lu{hAJo8<&~PH*=$p?^E*)nJHq}$%(bFRI*=TX}!VeTex3b07zr{ zyu33Gs3OkCopu<`V=6zA7~gS(8MwT@IpJYADJ-=54O{b6FT*}xe>41n#X3CAUKJCD*sa>nmeSoiBz(j!LVq2NJ^>?BD~6OFy&HYWB)fNVe=zDddQ5(XJRc$^S$F zHoyxC3bKGMEAN4hE0MyJMI?N~l0-{_5$aRTdoxp0;$I+OLkx#jWm8TMWy?*0`1)xkLqlRb6!H5J=U%c9wOy3vR@ugVdaGTXLef^%Qqo>d zbcuEuD)sq9RkgJdJwJOqtz7v+|3}S;U5!_~PSxfT-^`Dk9n35PWg?@7!p;S8GkM9x zvxh?Eq=Wknnv)tZNzF_$-x#VVR$5hbJ0vHs6OgJ7X7>!>q&8qjSCT6CM@_1v5O-s{ z?-oq=O1i`j@!2y;Bup!;guseN4TY8x<<$sCFcq9F;lYyi7wvwEf@un|q8XmN!HhcB zuwO?;(s6~cFBLQIbFSdxBYLg=Q1KM=I(HO#1qHX4?vC*h!0s zxJH}TN*2Qo@7ddot&@%KnO_$WFXSnwke%}`%tY;bIWN^autj_JaZQ4Tkan5c! zGL-*X1$#e`Ys$14eIsux(@#uf(lmRTP=AOIhnA`fsO(7g5(~@7%aGn**D^NAYXgM} z?Vlfss(VZqy`CY=U3hQz)np zCWf(!)#zOOK%KA82xZ(w8*V`KN0hYA618-|X<)4dii<_vewvT%v}}E6WMsiP-=t98 zw6+@Y+f8Y0^Sg)}HogemPue#hog@4@Z;lmk(s!G9baYscjjn5yE^WIcyU1n9=V;mh zVi2 z7MkWtpLXoW%`(1qlJ%HUQki3G3#)#e?+`;m0N-IJ|82;DFWx#t5vi&4kANkQ^M}PI z6A=@WY<+$_&IYRZ-ZQU#w`z$blSwHO9xhU=mMAo87Z>38n%&p;-Vao3vSY3j1afoK zNJnWlNibu~0<2}k=PYHT_eSZyvP_E+P$T9*PVnr>36h)=56pfJ5AP?_Sp?%g`0N#;p@n`~KeFY+9>iT0XWPcgfx z3OtVQ?&+#Re1Iy?F?IR0sdC*TFt#8Yg;q^*RtIIQeQMZPl@m;rLzK0-azNy*rCs@8 zLt6|HQE;+;frZix#qte}g%s&y1EnpjoSIhtC;TOv&Bmf+kL9c%U>5E!DIycEtwT$u zQsbCpgxnJq_C^cqxmFa7TrBmYVzhUmMl5LJyKkqhc;BMDRpMG1c@BFQMt0@7E5xo1SmrDxf)(u%TL zT1S=IUKX?E`T-r}G&CPT)fD&C5c5)i*I)@2D_5~4aB=86&fUQko6<4lO_2+0&2M@x zmn1EyJuJqaTYf+wJ;fb3lpi(K%}I{q_T(DkCwTeVRV;hLdvEu`0Z4d%_;~m;!rUTh z@mo};bG-uv7q=GqK=G_f($>aT@ch}``zhCXxnvXkw;c&;N%?m6SW%=SipZXuwuN6S zIprNPYU{U3C`CVfbC-g5OINKR%VTFF$lkRz+!>J+$f~u*R!vCGs+^jtFSMW9Hy^g= zDCi!7IAncESvmQJV2oLcdqo4c^@z)*!q#Elj2(Ls=X`lQZ*oCS^WgMbieQaot0%OU zmcC{DO%*;ONF{Y|{!1k}gKrESTpi4P0s6ndA(MSTz&>sY+t~O7MNTd!FV6_{z)6*O z1`2{Yf$A9ltu4a`pm|8?i05PZ8g==tJW%_lcL!8M1TpIOT!_7`0#5B|#Nb%NX#)54 z_b6{;*&+AKJAJczD8lFbWm>U_dMh3|T$C2vKNO!mao`kAoDrOnE`*1$G8E6{^L-(G z#=J?06~si=RSEvF;T->gY^Dkmg7|}Bv>bhHzSmaPhj=5d2`!W(=ND#7RlBi1l!UJn zh?eA(5?`MtW?bTU4cY(-sf4+ak2@hXQ?bjaM6@c-V_eU2+4o1)hm8%?)$UZO zcT#iW79ZpWG*2{G2}n#C<&cv4u?MJ3s~LxVRL;$o#KPN1EZRd=Dp{uIG%5Xb9$0c0 z@6MOcY2#@m8QU#30^e_I_-9oIIv7@#T{nGdVm1&q__D5n9d^?>ML}CbNWbF$oy-}` z)WozckaCa6uuZ8%ohKQtLRuPj(qC4^I?j-xfX~jnbjB7hHBa+xzslaGZ)jjW=FhG7 z-+KW>zlld!TH$X@4|=J3{M|B&vp z04JUL9qp(Vq-bRW3Sy~iwK6M*5BqY7Fp)*q7}!W3t#25ASl`8zUxZbww0a?vB~J1* zVZN7cgukDL2{1A0tu0CJtKUChASN5X71qYW`?Bej=QzDqy{I8pXdTlVHg#=JInreE zx@^f4o#?um*_mUwxO5FB1lkVs=M@Q3W^*z!SMm~svCMi2R%z^%58WHK9x+(?LWl4> zypGdDV`ywX7~~E9s*KMf1A7?&fE7!?qsm6|P9KHCBMVZPPIOA<@cH7W6ZveaVlwq2)|RO-O(Jjm?an zc9yDGkvG_E3fOy7s+^w2>PBH~ErW0F9L(jN-vnRr!&FitmK?3IK{{p#HKH7J@!-s- zLRX!g9ge6NbN_XE1~Nc559cGNK#e6;nBH7Eb#8jZ1lgkVdZ+}7xzTnjQ2B|HdkR#K zo&u)_{h1QYI-uDmH#J*cZ>f4Mob7x#5Jp%7^Tis*XTwqb@gtkY^$Yu*I82bjtT>3 zY}1tzA``mONZT8qKJm*4^Oo+Ew1?SDY`|NK=ub0JqT-LiFYK_c3paDh|7_OLM)0m> zLJs#E2Bl)P?5yw37h__mh6!CpK< zo*QOn&{-w95J)%G;8^m}3FZ2S9YL#U2cBrdH}2iuY^WI zQ8onRRTi*gO7})pP+zXie*r`De*aHj;k<8BL8Hy?&J)mq3KUfq6 zDZlyR-ng!&riOroL?p-5*o@zuo4(5Ts)gg)k4nTX#%?Sim^A`^t+m(S=d!j@uUUr& z%EjK{yc>#{5zWQUoWdOwTCs{jDZ5Gpxz%FMVpi2!{`Q+P`{vphdT?g+zpCr2 zs>?5_F)!RPz7)l}UhmG`{UhDcWbnQH{n!|U^R1yyAX_Y}ppYe8r=+Cxv%D8?A2FcZ zdI3q3j1x_&KNPSJ8~U_7;wn z=-8=at%l>JNd>wzr!C|2w_e#?K8u-5=8B2C9`(GjPz#d+q5jC`IZZ#8}S;IM_Bx^Okn+U<>cP z7W-;pM|6e4d044jyLwU?ZlXVQt^IYkhjjjYvCH}36bVVQid;1gt1INSJdb8^V#EtN zmi=fIZaM$DLbp$YymZ@jZf*f70a86oha!d|4?WFzV?83ft=)$F=jhx^1iM1*3oJDyEJNhv!n`^msy4QQhb^C>nT8#+Qj06DPj zhe(0Zl)t_K-(msb*sRV}y`UX3ql+-bx1wcVT(_%WdttZJo1A+_S{@{7Hf~%c{|y|P zurs8FMZXVfR9EXc1`Dh~(9%)q| z$NQ81M8}i->6^*n4o)_r?teHS?L+kCY>Sp-nc*e&nOu^-u+}E)IXSV0`65>BCsHN4 zpiUOqZ@tniKRSb1_sf7zc17`zkTH~=H^X5wQisJHrg(Ug+ngrUSS)0R|&$NbRe zvnJKNT=KQfz2Q8mob+c3tlLL9MSuVeOCbiQeZ6ptv zZ|R~>rh#H!K2>{)lux;~c+9@_#pgRLmbE?c_T8rA!}GL}VfwRy)4!vM1m4n!6m)do z*vw}ML_|d;;NwZqiC_h&M(xBz&`ypgMKohLEFpBArh#kS!$RpN+4M z<|@f`>@$f#yG1gsoI|RcE3KAy=y;@;2kJP_1R5eQ`x zcE!C|1R85P1C9O~TzZxf=@)7(m$;zB$}>JUt*wrDUR5s3`d3B)VM9tV-7!%TPMQh} zPdrkIszP?;&a#_Gu$V0a!v3P}V^>F(9%9-B{~jST#_48OdxokHwL**7xFem(9&anj zT~>tYnZSr1=?mZ<5QFANE~Wb1F5tqSkkQEZ#}!^sdp^U5r#{|~c4^_FeKDdskH`|4 zcfDdu6rl=9(qlPx+-eQgY<^YUJ@?+&Ac?47M=*-?O?I_7T@x4gvb?0G)O(ca<3cel zwJ5Z?0yDq%7~iCE*P`S?_4Ysv9@{1~&iuW(41B@?2xhtN26Ud9Ne9>mRXZt#g|&W5 z%*^V@mc7TLG;aKDK6AxcWBtq5Hl9XX${F?ZnBA7Bj*aBE5dk;jCMWMN6?MAmB1_n0 zRPLat-c%qQZ;~2H_ltV7&ZUR$b0~HP6VnIJI^H9C9fQ%|#!scVAB2NL^l61H!}c^T1y+yYt{xJT_9ET zKY0I*Jz$?Yps9Ww#QIbeX+BZvc}Z=)+*Ds0FUAe50I<&j{V7xNO&u*ksN&9!XWUeLwh} zq(8uX0_aKID9q*uvLv5H)AFIHJ7N1Gs6UwGt!!hK7hW0w32XuaXqMQ+cQ;+A!Inh0 zkXOaYh!L)G`OCy@7bwlWDa_IT$+d&-0GJC7w=0?_pq5{7S(uKEO-VRVkt%Hc?97(u ztdIEJKEt>4aD*{_PEJl0pp-wVKyX8+hxdB%3%~;QSu1)v2B3iMT&%YvNh7{6LR1^ZlG(_54dO*{1P%$`9O0L4q5478KUiF4N0h|u1E1-?)D$pC5 zldg`S%qyNecTT0%lh^TZK07TuIJg7Iz?2I6L+-16v;v)=2|qer*o4G4OUrVQmSXL1 zhr!@&=2JpnsDtSduagp&^-#UQko)N2&U-U(SW7Nc=s#hyNQK7+D7XLm6#^@yA2l^Y z0YXX&*=}3YFR4!#xf1q!tTP&!S?oKF-`r{sfc~d(NV1v$`pZ6^Q6C}&I8{FEi1DBC zrJk2DvW*Vk0Om=zr^NqccwS($p?;1K&Cb0akr1Qw0CwkTLp`| zrZqvvO`PBcibYXpWPK!aZDFj=b?h<_Z~3k#q}_;s^@s`p4>+NU5B!zLBp^7MQr2F} zj?3psvd8KvWqOjaV$q7YCCzckW-Yap0Wr4iLB13@Vxp)^gtY9kjSD&gv;hw< z5Y7cPhX(SL^EBR)n!LW{6f1AaUjm)!fKIZM-{&}uunKxZ*_Q)DvDvAlKUIf?|2-;_QANN-J)(+=5&8r3cqt&@ zD1Efjs%?X^y|J;nS6Hfq(+xDhefB#!Ie9V4aH9~B+-n8PYT5ts+Z-+(c?C0dlL9YXI*k)9*#Y9kPkj-x3CBjgK~a^eSZn z;*7Ey8byFWnWCqiDjFP{vc`SXpB#{eh;-`EcCwts=F<^1+9FxdOFMyOGf zMa@r?e}N|&BHDm_D~i}DNU!GQQFP1FAUR?}fq@d^f9K>@jLX z%Vu2PVlcc23JQXH^X5GN3y#4<+bj4RbE8*(W*ks+7igf9E1JvjUvMNXD0iSy_|3w~ zlRuE_Y66%=K%U`I-8$UE208ybAO;zSSOlX02HMe4Y#Y@xT0#J8T~5xyM>uHcc7Vex z2nchE6&n46{rUwf0rPv2+~Zw=H2K>>O1>S!wuFQPiqUD4%Xyi}1R3DY=F-Q%$Nn>|fHoxnFe3M>8RI0s zMCZLq0N`?iL2PQbX6EL;2PEGzgJB_rtT6;=7erQju&uga*%v^+>rWers`~=|G(FmeTVKI>t*cCJQds;!?(|AD#et6oezc69!V6C@9Rv^U;kayxT zGBR2gyZ_}L{xi^a(70FCnN2_Z5)1+XI1(~)tklt`02_OI`_INAtpD$6b|Br2!yoor zRqf=0dtNuLtkrL)2x)2Ikx3`b%21A)|5|7NBqP0B-UAP7sVk`ZZHv;>p(m%NbOBmF z=gTSOU4|p2aTMuaBl!;!m}C?ioNgynoRj>|LIY>^1|U{Q0Na_Mxw$#R_jgNffdWcO zXh5ZR=qpIL)${deL#g0#tWUy4TnL zujSB&4eZrsSzX*eqjV-b8Dd{)(<|2j=tH#BR7Jo_z}YP3H;{A>=3)9G`_yYK9ZI+C z{w4Dr2e1z^WBZZ zq+@1wEx>N-lP0vpA0wl3B=Gi>Tm?AgIzSu>#g8mWzjiZ$HMB2yiRom>uOEQZSwI`W zH|hsan88EB;hae3kMP}p00QJL7Gfb7Ycm{p>?H5mIlV3jo$_xRdL4i``FM)x9 zjxy{(>JTvSIZNvt1a;7T^`-bgC;C*E&`lI_04yHQ=izFNEpfOY1wx%2;&s0Kz3E9t zqd@`@pHKSw>qQ7Cpp&>9VCY*Pn50v9Fk|lIcb5qxVq$zjyV9!VHYZ@6gM|eJw8?iE zj*_$2{sjTHK&VR#b!7XkogxHU$xn7N!}Wl8+|964%fzuN0s!+96chwGWI8}7^#&lf zEPNZ2`Bh(EKbD33X`|=Li|y*~QY!-Q65_V^|JGI>5ucOnSa^AH1K{zGzD$p09gz`m z2O%RN#k79=hSoO%37~J6Cgk}3EJr|=_Q8P0O77@w|NZ_R$!!xd{GmV%vM%6lcq}Q* z&kTWY^y&W(GUqM$O+PD!QV`c~pX&k!*>Di2!+ z6O@0wRK(~1xI{#quD^DYx2M!9aDosqFd+S5XxF+Wu>L<|yTb<=)|JEwy`RN`gUF`%Az6&BqlmKi7c=NwL zJ^?R?L%$dm=TZI|vj9BeY=Z-}Qi(qSAZ5W_K$6&1PkZA!oYK0eF+$Sez;4N z^R|TCm-olvLdMQ@w(9~dE(ll+C}P-LCAvamZ~-)`TM!C;E&5(zIa~@cifPg}rH$J= zuIi0qG7|r|WjktMv=obtufDTcbmZU$j9OSRYZkH)tc)J|W%jRJTX@-v zZvNp@xZdynYn{c~BKz#w^S<-uGtZ2m##trjII14$lb!CN!=FVBJRgctzR~$*q$}JV z$iB)!dS+ije?R~)L$$rM4kcdnaT%~Ho^_8m-ZL`8?z1F{YY;dR&*i$9{@Qu#@zsC)IL-QnPzQ>7OfyQWlx)cUJ8el>HbMoW@t*cK@tz+d!gTMbpq= z`6ToED{e_lo58Klr_1*SX}o5pq%GNBs$^XoHYYppPbZt;9`pQh|CQRW9{V7BYaDK& zI3tYsPv48Bl0NhZhVqY(2*C4QL9h~^bRFMlnM-6HsKjiIndZ-2p4VOuXS-PKOi^I? zlU~1am(FLPgu?8wO85eI1NPMc zo7Qit#W#{&k(PY^-KzE47Uom`>BIbDZry?RD<6qr2cqipf{Z-Q@Ry7(IFw{0J1vD@ zW^q|O9_3Zfw0ulpmZGXxTg%Cnm8Ab2N+IwN*hpLiYdB`FX z{n-R5*>xyw_u%D(UG(aU*A%4KTl6k=%`WwSB7qu=G{|?RD>B$5-^`BiN|- z`)N{xC`Z;7bH~Z)_eE-Oy|=A7mJ9Fk*KV5T)tk{Z#GgM3_~qw z;B-*_Ozu6zfVkRM?yF9nO|hbh&QZ6p@2wub_Gz@7P%OnMz>cn8WLI~uuqM)d(eAY$ zn#S0xU{ZNra9&yww8VBLmSs+ePZm~{vuX`gWkv##`F{8toj`)TeGl7ieudk9K~-K8 zjUPBEe^Fs`95gTmHhYPpVB*ZVm@A)@{Q*p`lD$acxs7R0Ia0}kVwspFTHYE%z)yd# zD6a-zrCF>}la7GaZ)?MM$5KFu#lGwQQN^K(g8av@?pT(W6BLB_e2BeY_wpj2L=bX) z^!D9-oGx5$W@uXBH@ez>Z(Dm12lrrdvFR_06XNGC_r=YdIBmN;zADFyc%7r)IaSLY=Qao-C1-R)9)MLy zYFNurD_GTab$~|FZBhP$AF#C%#}r-4%G0IAtmh~#))4G4843&$gjl+?Vg!A}Aq<3_s_W zEhAWSGsAj^orJ>-`tu3`88?yJxCV(UM(Cu{5E6Jz4U2~I3wY)HIEquUN68{hcDa0> zjm00t%qAF`qlFuo=0p~Tsp})QMVLiuioh1|>B9)fGRZa5PT&L6Shy6VOhq%^)5kTZ zl?Z)h7+e~|m)}VcZaNN+OwG%7Y;N=DqUlqB=9Iu(^Do@XUbPn$pC=L}#Zqx~!+)^> z?Og}io;B9vvz*sah0+8G?0#VkgU9@v$7({$;jzhW_Jia6I#Q*lr?vi0{Es0Hm>AFr zr<>YMh`=wZo`C@hEt@vVKDzv>KJw;1;|cQ5k&^f9biPM0y=+Eki!};w?~qP&%N9NL z%JzUt4H8yN)jW+&D_(QUEUr>*Z<7kWU%})~wyM(Zcsw)-fVXUE0|SaQ&lr@XSP6=m zY!Y?$?093d)8ady(hP>pll}T^5ZY&;wwgq#)ZR{Ke@>>Jz(k1~7}iF}l$QEN()mt9 zSG!bZVX=Ulv!h20JH^8ClL-HWl0g~5B!}ztMNl&NRlA=fcW(r&pq`?sB~B~P+s0kJ zpnqR2Av#4%Wze+zmF8vVlcoJ3ZOgD7JAUozIT<3V=lDPN`}Zpt?fkmK6w9>iWeaWj zi;A>^t7-(6=ARmw=o3g6@fvhgG{;RQR3kSa=Y&%e1~AH6b7T~`@pYGR=5PA(iN$DD zwVcLv1iq@)RLJrdhJMwYO!y*Odbe#ky=)?CWf5agE%zZz!x}$M9)<9nHtoUJ(_{TT zmy6Hx6NKesFHXG54n>q|)M%~Zy@)4Xhje;XE*&Gb9ghlie&r6FjA>n}YB|>3bKa=% zh}hk>Nuq=(GY7Z8su;nVS3MR98>a>txmRX2|m0*@eFIZ1jYsV zu&x4A2^;_7u)%L-l9Cln7P7usjUSIOc+x zn;A^}P*$j<%}{pcqXYC6^{!=9VR(E6_t(&DO8*V_yUhlf0&#LxsF6$MBYF~Dwv6ek zx)BLuXn1XE&hpmQH4(89q=t_!HKc|N2vX_ex_B5hhwj8wv?>VurIxJDH+-|juNgXOW;$j$7o+k0u9up)t=V+FjGJJ*!h|Z>_D;N2d0@ICl|@QQ*P;5vXcf zn5{5LVpPJK{V{%s@W3my!v;3~UZ#zkXQ3c)@Q!>Tqu0pWS40ywUm5#UwG>PX9J)9v z63`{ul?OsEdy^_%&`OT;I9`So-Fv#R6Zm@Ac8vP?e#Gz_JqW_s6A%E82mIdVd*xF} zTam%3LL7ad%9&bRTufZ_UUrUHXniM*vA%x=_VQ~1=TAJobS}mHAjNIbiAH@h63v+P z0A98ymEv36>wEj6-J^}Ush9FJDW3;hpOk6m$(j07`ZK1C;w_|!NpKNQrnGC42l7~E zXUn?{X#i$VL;WVX<`3qLn-0I z35+FV-q5ThB85xuao%Otuxi*&SVCw$@$Xu{T1d>h9ZBrIwPUO}Il%wOff*d8c-PGklDg7w~ zoD)AVG<1asbRX-wc&n+9hN?Vh)&Epv^^i;+)}%jD-iE=&ur5B2!4!83Z;Ow_o7{(| z%&vR#lz3HB&i7OC4gOSzr_~?vDQu@~ufi5(AlvP+aZ9h;!FEvs#o3 z9?w0L4J-?jmRI{R`nGJ_ZbLhjgC=I(PN=A3Y{{#+(ItWX0c~$Yd`AhMyBvlL(LJWS z)jKui@6$3XE2Bael(=()-86gOO?97nbUyY{H|vQ5j};>yXxqKI{jQMcX!U`Eo8< z9@umRYk7j?y!8D0tWHLC0(#J5dOv4Gw$zI{p9SstPm3dIj#&x1la9qW&-34!e8-qa zsM2cpnxM$~D-F*3Cvn#S{aAn`Pd2@sbcYY}UBY{3LD8BJ#i+5Mf`@t7{;PdcbF9Aj z7x!OTIXI`ED@oYTmck$X5OD^ei<4RD+@cvDNuse8P3)deLZegbBRK??%v3WoN>AJ@ z2XvouB()$~p5b*2trs8Srofh8-FMUAQ+#s=v^su~>c)CYgwouz%oCwy(wUe8oA)wDEFu@06z%;QNkSHbTB^Lt z9+q$GW{LyHK2}Em>}y}j0!Pr4GHHB}`x&Ypr;K~wV9jo7kKn=TvB&MXhvl8Zxf1je z?0UOmJm?zDV)R(=c3v|#&E>^iq6}+e`!5%0Pn{LF4GIlgf3U`Ec3q}jL`JoDPTJE; z%L>p5M$P!uKUFL92wPJ{g-UOYFb4znMu9n@A)`TquRhMB;&JXH;Ra@tHH3wHQO-R7 z_g^mtR?uHv)El2weuF#4Q|44rkjOII+8GrZ=vb;!L3)h)T$rC@T|TyE>&zf!W!MU> zg6+P)ibob#YY9IF)#snvcmjEZtgZfE$4BERv9^3YhZTmCAZvfs0qO;&%Rg4Nb$7R1 z73J@*%C{U~VPLAVi6#dr9d|`SoQE|7&enc@B!cZpDH6%Fq&UN#w%wgW*S$2EgwNm^ z@iFx0NSQ7%=)_$(`>3hn0C(8w$c@}AE?VJ+Y-(Kat_=klS+Iz|`P-XWI-GGR`d6q{{WOS@qZ>b#HRDsuv-XM3?}ROvKwtZKa;K@s^ksD$u0`X<4L+;>E`7re=Q|k zwuO7IzDyi6L&~1loq$k&KryZUu>aSIEHA0BinnzEF#nQi7hMqasR;bqqlJpEZTB}U4L=;Co>hrT-NfJZ%+Co>_*F{pF`}5 ztO#4hrSaIccrb(Nm|PP!e%Tj^H?E}L?Tq40%}s!vd|=h%ofQGqnV1H@Q56Qk9W86z zlTkdvj)%`7UG^T7Pt$+sWp|;6RBrRc$Dozv%6zGLLfD zh{t`!KlGPh3@#~=u+L)SG_Fk9+Gpc-BCBGu!RwSRl31Gk=%LOi(ojg#rh`5ddws0$ zYc(fK*~(W=qSpPUqDq`P!M05QqFkXhd&(bL5to$bRS}Xcr=?}IwpO&b+cln@&eF(D z*LAs#`azXTFMZd?ms@^K`7LW_^Fx(M&upgrrnTejfk*klKA|=5790-jV%Xo5z79}6 zpy%v2_;h4LL6MK~iA9~K-m|&67k7+^2~BQ6wci)HTzm55`syvqUH*Iym1Z}56K7X zQB@fju%mrTg%!*sH2nnX+|LCtb6&>y=AfCNlbQ0>M@2|d9p9gqsTI63@@7|kKqijf z905(qAF^od`YD@HSd(8<<-ThX?th`?VgXWZvh5`>NsXa!qSlHD?_&VOfwqFRN zw*O+PyQobkv#vb3FcNhTq+DbS*r6F(FT)3nm%wx}OxB)wMn{$zB1?Tyu=>PSF;H6ID6s7-#p#txKV zDPegDL;dl~wPctnfKB=Nhxh>mExF;8SMv;AfWyNAbKw#DYZ{Xe`fBAt8hm@|l;?}G zXDQ*OrQCP~R}GS68TbmTmI*CR^#yYQZ0*THB-5cBFXLXfDz{akPCteGesL$SReWD~pngaH_Pr@9 zmt=*VOCO$DJx#)9oBVccs(Ig`;0d#;O{JxKYl9XD{ttdsM1S%XC^#5tgyv-JlMWZP){mM;rOzhdvX*`3gLad42^ZM}3enh*)_>j4DfjSaqsf-WPr72K1m z$A>*Q@0M&{;KCN-jIN-)JVE=3WMgXBkn+J`LG_wjzv)n((mu6g_VKf${mO)gq9qVc z=IGR^w-$vTDsO|8VcI3Qw(+rExMg}gG<3EjXG*LZKcQHO$Ir(1^KC4VlrQVEvYL5HO9EB9Cc)I*$SOKiVRy~SmSQF?8oqKU>s62Y zxY>(4nq+#Jl`7z}P-t?*ZR$y%;~9*s)zTN_Iine7>oeEqo*pwLXtxknS*(%)tZNSvM~GMkEz6_2-Wyl8OF{n4kyos_&w8 zb&BDDX;cEYy%ZKnTSRT}^NaG~z3Cr7Cm`awU_)Me$!kzof@BarBZF*^zKmf&{*`@D zgQQRxp`yt+IHW9ftVY9V4iNFe-k^$=Nglyhl?ur%9Q_ z`pl5B_GGytTT~;EX~X?8?- zrPA(}6Zq(Y^!EV#8A}=IzkR$qMpr1~sKgQ=HMb5hEzI-ekP@Oe*Qww#U_HA5CoL>A~V`o}*)I#b|yzN5<-&sf-08RLX@aTLrO9V79Mic92-b>c9vP zH+Jtf>h=zmaCZFM-iU+PWTJbO?Fnf4(yV;QlFv+wVnwie|;Ct5GDEA4bKvVCF4+MaPVR9E?Zr!%N_?Y@cGV{9yU)y0t`I0T&*?Q&_??V;<#RD&;tP)sheeZTY8x&j;V*pRKz&nqE#Nm0RG z^q6!T)}KS7s1E42O5UW@oW#45${r2sf$k*0$#;{ub){tIY zp7!X&!R+_MIc7piqFk#=*p0rrcBv%nCtqIwX5IvUE&*?fA`qGKRm9@S*D9YW_ z_ws{$L1vyRtEi7#7tEHh(%y2{SV8My`*X~l2;q3d=#RU)PRTXIV^4jF;3Gi&@Ky!0 z;tk*>Ss!7_1;(KH?tGuq{iOJ)=NITdtUTQqIkA3#yoY$z8}wC55B%f(FeU)^6j}Lj z@YoH;r5y9BS*V<^J(-QB&k=bP@mHVrA7q1_@hK`A!vEq8#DDEj5b=kq8KPH0?h*rI;e1KfrK&^mix zcSeQJ(F>W9qI<)naPa^7JjSY%ox>0mL`4vQ`{zS?h8%#);zbOAL|H2N+DGV*$PsQ~ z!2SJ!FjIOaG{5F%!F`0}3HQ%OU;`;$9-TRc)0!+-wSdeK^$Y61pF}z>4964bZZ!>m z{ix(rEWj>CSYkdNrCw&CC9hRiF8F&8H$O?~k#sYxRbSk`d+Yl9LP+4%)YP87>BPl< z?&0RqnaprKh~Gm2KRwC7_{vfLyb&CN6fY!GAwzyJOKGL%bc1fYrta_8`RAJ20v-t; z=kR{=yX$v_xM5EtPJ@o8v|^qn)NS1BfA4`IU_51nIl`SG{{BA*maJ}Xil`lc&AR{u zic~ojF8{v=_a5;ULSUmlG4s8f2k~NEQP6+RsE-l8_m|IiKj!_TB@k9g z-M!`BtK)|I0H#>u$+>U;ztoQOrRvp9-&-3PuZJ!01rq>SGr(r_-W;`}d%5VicW=h^ zXL<{zfChD}b~al683T1aLe1HZbe2vn|0F;tQjVb9C%V?IYaMC`hx2Nl;bOvlc=IGU zc;aAR&}-Aj2W$aws1LkvH0Sza-WS|-{KdEQX56B(x*HQvyNfgDRRGxxJq$#1WKE2=g{CcuP5x@>Kv1*t76aY9Ze&BpZMT!oRlS5wtFh9oN zu;VMeZIqcZt^&Ahzu;i1sb|3m*Lv`eCeBEZk`W?)V1Zmulc#5RU5)$cTfl8n?0)KC z^e|75lpeVX@Cy`!&4%r*ty=`YKA_;d1r%ljUxX1&CM!yG`0m}PP&=oXGPjf@0R}V3a> zFmW0<$~5|8fnErZd6RH5SYFK*d$TJ<)m}HRE1(O{34q`P1AojO9MXGa2!LKI_&;L! zmWmL7r;)2(vRscyav$3Z_bw1>IVQDA9^w8x={Nnwyt2#Y6 zq?9EP|Ct}R;|Af7zCFPNI70SQcfKgCE5ea98hnd`D?mNToiuN4AQkguC#N7)bnzOmS`7==~~+du#NyOWVs1PN2IQN zpv!8-ehr|izk+Q#5g=%Ai=X!;6B85bn{NxpWIlN8jq;b-fLJ{Sx?bLi(0pUnr^R(g z3k~0q8MffF2bSfKnWJviwIh za7Yn+@SKS$Yd^Vo{}>JkmM|$lf1-M+ndD~GuIwi~w!8P>AxK;2XJxhLfdCynDnLv9 zXNLY*nD3+*n2)~Jk^VjXW!nJ)mz?%T7Y?I3*3zn}P9d=H-7B9wde*$!;d`g0p; zH-cCIuHa;a{a0@L)%nr8`2Ty?d?K6!{!${I`i%}eV1)pP8v#19Mx}%K<3ohq8{2bp zAqziZyhh<=dOepAJt}60HPx##V`bw^7o@ZE z#R9oUacWrOX5qOEww{LH0yR4-3E#jZu`nNsD5{46;!(vmyrT#Ot2oLz(rS1$6 z7|9=QOiI@lZDIU-Yz-0MF@MJ%5u)&ozUUdi49SBYS4Ya}7T*8d;{`|j9_LZNr{K-( zm`zqh0?R7SX4Hjn|9U!a#s|@(0F%~)M51-$8k~@~80QlCT;;(6t@;r19|gIdG{1Nt zP#i8BJEZHGnWnJXnikaewU(C$&C&lS_!4~qtbji*XT|O7CvQ141u2IdwByzvNX1GzG+naxTgRAk9zPJje zKEFWlxn6dL5I98NW9oZ+?qHvg9oX5>&rmjzf+PHI&kLUV_Q;K5X*f7H}H; zUWgVrNbTPfo9uLD%c{wX<^% z+I;8FU*8DaQ=k_UxaVcnuT62{?6qIWr@XwfxG{ zf*rgofaK#U^ocfBwj%!b=={P3M64ZxYHnt_9Ss6zKOyDo*A;N@Q`^NCQqt02r>b51 zfhjj`c#pgX>}3zwmG*Y_$EUsM+OxDZPe{hiME$wIcmo1Uv?AnstLybwj5VFilBCnQ zBKPhD+x_zV@XFnu0Q(yN0}k8;NFmdxJJAPi>fh4`hv4T67nDIwys`Z7&*<9;Z=qpi zWMmL{7#SE~kSG+`F3HXo1#x|J`{jPv3xW&P#qzq>|6UVF96$kl#{+bE{|xe_6f(t= zCu2N;qoQb!Y(apN+8jtgAg*jhiiiB~c@p^lr0B-`fz3LkTq=^b_-!v)mTEyt5&r+P zNSXwI^5}U6FBI2vP{#cIL&?iJy)KT6I-B%Gu{YM z|Iea_$P0OTH@k`4$pG=(>IAe1^C=_cMm;J9l7wzoJl8L8RwvHt#9C(NmAdtHaFYkZwGdQB>+J9woFcQf*|Shysk z_{d1Z_!SpG0vu(cGed~Pd=;Wqfb7e=p?tfUz!+?D7Tiz1Nr?Wr5S4^8!pEUB-@EgV zQF>{H0Ej-90b`_P!M;uu&!R3%?Zx@#I|64RAukr3cPHV;-WlMCv-b})={oL9$8Ne= zY=WgIHTE6Ft_n~#q}nXBzxsZT=Zi)}rj7j}=BOyRr6C{xnMqF)AeU}fLo2;m=U|yh z-MWge>nR%U{G(iuX#|J05y3NCE97_t%Ugk7WOemLz+Ye`8CHP>)|f+Fx8yrtVm2BU z%WkgzQma9h1$$ax8JLB@SFO>vn|M>nHZK}Jpgg`4$n}v9mh$~>8^n~)>8H*B2&H4m z$jMQ%rAO{u`w5U~QO{gupEKAWXMX#r`Jg)cVJ#yBCfi}!;4wEiMXvoY?_`n1Dtd~J z%e~!|A1w+a^bwb!r9q?cuxg@^rohz&7$w2!REIS*z4liq{q_X zqR!e}dl<7jD+Rn{>SpaF|1`AOEgzkj_cJIDgu0=#P+bOt6y=|@}&Q{JfK?rqh8mgEnPkEIooONzjcMFcU5WD8|oDUCcfUM^mSfh3u6I|*Qb~H1~#I>1% ze_IStGe~B!xP5K*AY@c^x7d+4L`6hif|x!)KpAYg%hiO2m70y}5mL#|-xl^26|2LW zk31E$fr`i1t3nqch4hjJnMOSHI1zkC@64jZM^wI;C@fB#IHY=1pA-X9AHTpr%9?IE zl{_=VP(aoti}Hw`8NR&~m2UdyFss9MOAJp-a?pSgvo;qgib~LmY4#-UgoeV>j1g(!ejf zei=pZGGrtq-1MCASe8$CRv|+<`@@H*WO3?Kjw|9eWe3{k z?95yI@P;vTf$H-Oot!NCAY`J>Y~DL)fF?&%KsYNUelC-YHmak@5Q?zOGnm zt3QimIB88q1Bn`ur>1)AR)wX~NZO#9(Fq5Ea4hIe_a0;mvj-40$J^Shw*2^k%M;X; z&gQsk3yvqci(0$8Sc?!iN?c2^?J{Q@bc_-QwiWh(v-Se#UR#vU+|_6BBmS@97mCBR zC`43q`L7CRCml^j^ zOFUXsg{gnxB}|mbim_g?%YM}C%VAsL_Vcz}fdYg8=m!NICN_qX8pQr?xoU*K4VJ9(otc|ezx;1<6FOLhNE8z8B$Z*8}HW#g*1imK+=xCVw ze!*nwGkh+3=%sspC)=@XmEouP>BOprHLGogA>+B@-9YC7!m8QiD1_4a$IePwiY!4{ z(*i?acW^bD5N$7ljeG6G!ZPCScY(y5!wWAfmA3V>`49uDZITZFxz`@0sej84m<&3p z%D0#GoWwqk#Jf08!H(Il@82WL;lM%M1i1e8gDaFE2V6BCLb>H z4(nM@X`#cGKa<>!y7k|T7mkP8)r(xx0?Ny@m&1;-7ag+t z8wx}5R?#I-?4Owokn;P+1m}&^xbrY*SA7QNZ|}>0h0fHsuT1pq@cTHw9fupTL{H28 zW+!h}toYFQ+t2BxFxic~T<<-Xvg6{=rd2mv8e-R0(&KPgwfzt= zD#e8~grP)WVN|-msQfFd4%fRKr5~)e9K;-okCgRvqxPNLXFYj9TM5uH$BT^68PtnE zf^D2J-euqJalnI~@cBZgb5%+s>o3HxqE7oT|HOG8y%3Jxg^Beha41r==rEL6wFRHd z-$A2yxWi6uH36E}Xd`&SB&ZM8bm>BqyCkXF4k$O`wm00S7m5*bC;=hbs+G-M$9Z*lRV=p|8=C$FfqlL4Ws&Lv;*5rVj!uFa z|6gHo&uTW;Zc}X!$N1+%n&T9J+N+7fE4g%?`)Rc~FX;o9l?hnin!CiOZng0|HjJOR zn>mj$?Yuy-+p*hPxXT}Inu(H1l9PDaxA|~riQ+(n{hqKBwgxM|1)1UFryM7Sd@D)g ze&~7%-D!*=9c2*lcGXWJCq`={r1OSt zV-UW@I~>Q}R_~MDo3BtWF=-B(13ad9MtQ{iZl6KvNxX^&i{=cewQ8HUy=s?QG|Ghr zWgfCDN&Mn@2oVhqPna|`5oS*&-Q`k2*jcN)FY9{3xyM~Cr{%B;8^(IN$clDXr^=~! zF&|byKW8w0Hp|v@357dUZM8|+wZ}D9HFH@ zt#8K7xzydSUqj69ZmSvC#+!+EB5G5gEul0GHk2)#N|k*lp$(XU7<6jlOD!f%5RwA# z{+B1Cw!c~}_6qlWf6u!O8EJiZyxki2XhWIH)F3 zb@2x@hpAe7j|)U{+j(<AT-GSn6jQGbl*|P4f$=u(fh#t$<~CX3HC&Fa z1tgk`7o4`GKMlh~9`PAfUp+=trP~<@u&+byQC#67XK+wZdUjrgA7kyA4L9hQZNF>> zab(-~ked<-c+m(fP#`UjctJ7oyBC0z;EABXNlhk*Z^2MFz{7Ai+i{gAUwB1sQ^TN5 z*m!eIVax{F8n!e#q4Azh5gX(hBo6|{AG)zjj-}z(EOtNy4G#YjpB^xg0&YF zs8PUMYL-#1$Dg?6)~d?csScShvkqJLb*R44p~R`BG;%Lsa9=f~haFJ7rLX84f({ul zd}7c_GVG0x?|xv}mx{b?@eU1tcXT$M{6AHHAZIsF4TwJDdXM;9>7k^$cjY-%b4W%A zVsG&w>9@AOpSLg~woSO0)xLk;Q&D8!B=-G4Ph&5E>(p%ZLG2~sk68*q8f4|R5;g$x zNGuAn@Xm*76OSo@8t<$=EoVpxNOy&CEN4XO;-A~&d=p$LGXAClrllTOlPG)y7qiiVkr8!U0_yED%1 zQ`@I>KnJ9Wma3-k+07&X#TKREn>T&!k#vCxEuf6`bZ`5niVkv@m#kOCC)Op@ufL^C zjR22j6-pYww!|pfvaB7vy9|O5v~N~na42PlYHKzL!F-IZ;#eAbzha7vd#zz&tMTje zWBJt^MT{EFwmV7Q%`O02^qn6u{k_U}-N*r+{o`2k-R>n|s0ph;50nU~UlgNexo#ku z+BSAiZF#6bZVc>DZ#%f(9l?Z);FGPE!>|J#1NWtKHH(6~ds{{5ggKuz5fun0_u0=v zc&F?&Yuub?*@AEw)D7aD*A}_j|8`;xNx&-2JQv4({M#yFVumDn*jk*)-FdO5*+ytL zBG7i{zqRY5+5@Zy9UUdh>F?1+kN)Nndchfjcl zje9(qtwt2(C;I(9WgBGO6$n*cxGwAXjH$<`yw)yuO~#W6ZL?+cw(&B{Bw#HgA|6~x zR#YHKSS#uk_a+q(rdHIc43qxoSh?AvSaS5Q7X*6ZHr3{&u0sqN8*(*rfy8SQRqd0N zU?Tk=;%Ovr&ntEd>Z=JCI_zm~1{*rBn11T`;iI5qrj(-^iqBzT#!JEU>{+D8$qLn# ziSFk8^t|=&#8Y9jca;}ZRzh{qTq$^L9hpEEI?X5d1e_!FZyeJg98zaMW!6n&@9 z@osLw0qxr+s6_`W$bKukH^=dfzthUJACMsvsh(~;v zDiU}jLbKT)>+?;+P*i2f9w{>`##@Ze5>o)}C=0j?GXS00D?PmwzPlUfnOjI(eA5TB z#QUeh2EAZe$J>N)JsPFHzwpz{BFDU@7S&ZbZ~T#h3tk5=W1C@sOV|35dRS{k5F=v0 zGTbf54e5Ep2dwitQkK?&?aS#yYKl=JVD7l3PcIXANYc=eC02&@ z#8=_(WTyts=TOxffv^Ik_ITO69w_r5I2<47c#7uHY=%{`F#Wh`eGD5lIq({FG1!UZp% zquMfRe?K*!rWc#2>zLA1GH*Y=Wu~~r$dAK(EP_@kO9Zt1o^?HX4vvS(Ci^ej26tuK zJS7`2erwFVC{G0A5!wz&*ub5>ZcF!M4`BxMq1t{~K^S6Dv;rSUSwrX`Pml$+KZ{23 zmetc1tQ0pbfRkr_K=jexCh$79oUd;*|oi0av}dkssDK-tZ?~3#${pAuN8`5N$o-lifEfQ;7&A|3{$eBC5e`R zHw10Jt1=D^9UVAhN?jC$uBo7jxb)KMH})a~9exxK@Az$CIu|C~c>Hp5UNI;=mKS$3 zpZzW%Y&|B0kR%DggjOk98=K@8({)A+`y91f!p9GwgWbWGebES?C%ojaKF)fm%H@eh zvFkO)RIb><#d;6!gz%!Jn~!{l0Q5_s@BD(1knmeN+b$@hZ%?tO;yel&$Y-DC2TMk$ z*`guXg11Z4b~gMN4=dElKU-8Jys%BGBAy7VNsKp@$V)H{9L5~B#vG{N3vius|{(Nr95srMEiFAtz-)Z{c_`j`+YK)21bOp6Udr zO`0Ad{w@W+L6%5vMD-ky-14?h4KU;jN$t>Fin1fpa_G0G3$NMbPSjmbaKGC>?A~LT zK?EJLpD;k<eZsYOq=slTs z=$42X?@0{;7PriA3C1;~Ot5|Qi=B9rK=Zaxh%|5rnxT(g8J`tXGTurg<;*Nqd z+7oLmS1ipw+syFzePL8(YXS}p7rf`i{=wPb)QZx#lNmiErT|Nj5OA0Cc_BNJ0vjmo zHxB;<~y9nOA)*e_|pRr6?SgZhW>V4LgXQ(jzrayTw!_Db870e zGV-DVi6rp4aU?EpHSm$AJHGXCW^euOIgkb;aBkH@G}++v?mBnsM#c%Ed3_H;cp<_* z9&-zqX6}GY8brV58GMX5<0;_^#GM|p=07V^wsqhOxe*V-b+BGK5M*zKIuP3Fxo^jT zak=z5j?KIDM)GGXWxrYD7f?uo%+fPf^`1$bHT)JS4 zxa-9L_dHSc!7B{0+ncdl{VMzNPlV@>Q6uIrdhG4EUh>dH*BDf3UfIc?hV*YN$`wQ| zI#jFmk?C1(ziwQgr-Zfse1zx?)wHvNX)?lO%(i1@Wn!Ox0omd!a28BK$7Q1H#^b5L zfZyPZklT=epL-&WaT4ncVzh7Jbv1fKUgtl!vgQw7kZE4W;c$q_oL2Rc@Z?z3vo