{"action":"created","comment":{"url":"https://api.github.com/repos/bgruening/training-material/pulls/comments/83097605","pull_request_review_id":3961179,"id":83097605,"diff_hunk":"@@ -45,65 +45,1274 @@\n                         <img src=\"../../shared/images/GTNLogo1000.png\" alt=\"GTNLogo1000\"\n                         class=\"no-border\" width=30%/>\n \n-                        The easiest way to **navigate** this slide deck\n-                        is **by hitting `[space]` on your keyboard**\n+                        ## Tool development and integration into Galaxy\n \n-                        You can also navigate with arrow keys, but be careful because some\n-                        slides can be nested inside of each other (vertically)\n                     </script>\n                 </section>\n \n-                <section data-markdown>\n-                    <script type=\"text/template\">\n-                        # Tool development and integration into Galaxy\n-                    </script>\n+                <!-- INTRODUCTION -->\n+                <section>\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ## A tool in Galaxy\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### A tool in Galaxy\n+\n+                            <img src=\"../images/galaxy_instance_detailed_screenshot.png\" alt=\"Galaxy instance\"/>\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### Galaxy tool / wrapper\n+\n+                            <img src=\"../images/graphlan_screenshot.png\" alt=\"Tool Form\" height=400/>\n+\n+                            ```bash\n+                            graphlan.py --format \"png\" --size 7 input_tree.txt png_image.png\n+                            ```\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### Wrapper\n+\n+                            - Description of the user interface\n+                            - Link between the tool and Galaxy instance\n+                                - How to invoke the tool\n+                                - What options to pass\n+                                - What files the tool will produce as output\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### Wrapper\n+\n+                            <img src=\"../images/wrapper_layers.png\" height=400/>\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            <img src=\"../images/planemo-logo.png\" alt=\"Planemo\" class=\"no-border\" width=500/>\n+\n+                            > Command-line utilities to assist in building and publishing Galaxy tools.\n+\n+                            - [Documentation](https://planemo.readthedocs.io/en/latest/)\n+                            - [Tutorial](https://planemo.readthedocs.io/en/latest/writing_standalone.html)\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                              ### Questions\n+\n+                              - How to \"wrap\" / interface a tool for Galaxy\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### Objectives\n+\n+                            - Discover what is a wrapper and its structure\n+                            - Use the Planemo utilities to develop a good wrapper\n+                            - Deal with the dependencies\n+\n+                        </script>\n+                    </section>\n+                </section>\n+\n+                <!-- WRAPPER -->\n+                <section>\n+                   <section data-markdown>\n+                       <script type=\"text/template\">\n+                          ## Wrapper\n+\n+                       </script>\n+                   </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### Wrapper\n+\n+                            <img src=\"../images/wrapper_big_picture_1.png\" height=400/>\n+\n+                            <small>[Galaxy Tool XML File](https://docs.galaxyproject.org/en/latest/dev/schema.html)</small>\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### Wrapper\n+\n+                            <img src=\"../images/wrapper_big_picture_2.png\" height=400/>\n+\n+                            <small>[Galaxy Tool XML File](https://docs.galaxyproject.org/en/latest/dev/schema.html)</small>\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### Wrapper\n+\n+                            <img src=\"../images/wrapper_big_picture_3.png\" height=400/>\n+\n+                            <small>[Galaxy Tool XML File](https://docs.galaxyproject.org/en/latest/dev/schema.html)</small>\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### `command`\n+                            #### How to invoke the tool?\n+\n+                            ```xml\n+                            <command><![CDATA[\n+                                graphlan.py\n+                                    --format $format\n+                                    #if $dpi\n+                                        --dpi $dpi\n+                                    #end if\n+                                    --size $size\n+                                    \"$input_tree\"\n+                            ]]></command>\n+                            ```\n+\n+                            <small>If the script is provided near the wrapper xml</small>\n+                            ```xml\n+                            <command><![CDATA[\n+                                python $__tool_directory__/graphlan.py\n+                                    --format $format\n+                                    #if $dpi\n+                                        --dpi $dpi\n+                                    #end if\n+                                    --size $size\n+                                    \"$input_tree\"\n+                            ]]></command>\n+                            ```\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### `command`\n+                            #### What options to pass?\n+\n+                            <img src=\"../images/graphlan_screenshot.png\" alt=\"input\"/>\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### `inputs` > `param` -> `command`\n+                            #### What options to pass?\n+\n+                            ```xml\n+                            <inputs>\n+                                <param name=\"dpi\" type=\"...\" label=\"...\" optional=\"True\"/>\n+\n+                                <param argumement=\"--size\" type=\"...\" value=\"7\" label=\"...\" help=\"...\"/>\n+                            </inputs>\n+                            ```\n+\n+                            Directly linked to `<command>`\n+\n+                            ```xml\n+                            <command><![CDATA[\n+                                graphlan.py\n+                                    ...\n+                                    #if $dpi\n+                                        --dpi $dpi\n+                                    #end if\n+                                    --size $size\n+                                    ...\n+                            ]]></command>\n+                            ```\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### `inputs` > `param` > `data`\n+\n+                            <img src=\"../images/input_data.png\" alt=\"input data\"/>\n+\n+                            ```xml\n+                            <param name=\"...\" type=\"data\" format=\"txt\" label=\"...\" help=\"...\" />\n+                            ```\n+\n+                            <small>[List of possible formats](https://github.com/galaxyproject/galaxy/blob/dev/config/datatypes_conf.xml.sample)</small>\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### `inputs` > `param` > `integer`|`float`\n+\n+                            <img src=\"../images/input_integer.png\" alt=\"input integer\"/>\n+\n+                            ```xml\n+                            <param name=\"...\" type=\"integer\" value=\"7\" label=\"...\" help=\"...\"/>\n+                            ```\n+\n+                            <img src=\"../images/input_integer_range.png\" alt=\"input integer with range\"/>\n+\n+                            ```xml\n+                            <param name=\"...\" type=\"float\" min=\"0\" max=\"10\" value=\"1\" label=\"...\"\n+                            help=\"...\"/>\n+                            ```\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### `inputs` > `param` > `text`\n+\n+                            <img src=\"../images/input_text.png\" alt=\"input text\"/>\n+\n+                            ```xml\n+                            <param name=\"...\" type=\"text\" value=\"\" label=\"...\" help=\"...\"/>\n+                            ```\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### `inputs` > `param` > `select`\n+\n+                            <img src=\"../images/input_select.png\" alt=\"input select\"/>\n+\n+                            ```xml\n+                            <param name=\"...\" type=\"select\" label=\"...\" help=\"...\">\n+                                <option value=\"png\" selected=\"true\">PNG</option>\n+                                <option value=\"pdf\">PDF</option>\n+                                <option value=\"ps\">PS</option>\n+                                <option value=\"eps\">EPS</option>\n+                                <option value=\"svg\">SVG</option>\n+                            </param>\n+                            ```\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### `inputs` > `param` > `select`\n+\n+                            <img src=\"../images/input_select_checkboxes.png\" alt=\"input select\"/>\n+\n+                            ```xml\n+                            <param name=\"...\" type=\"select\" display=\"radio\" label=\"...\" help=\"...\">\n+                                <option value=\"min\" selected=\"true\">Mininum</option>\n+                                <option value=\"mean\" >Mean</option>\n+                                <option value=\"max\" >Max</option>\n+                                <option value=\"sum\" >Sum</option>\n+                            </param>\n+                            ```\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### `inputs` > `param` > `select`\n+\n+                            <img src=\"../images/input_select_multiple.png\" alt=\"input select\"/>\n+\n+                            ```xml\n+                            <param name=\"...\" type=\"select\" multiple=\"true\" label=\"...\" help=\"...\">\n+                                <option value=\"ld\" selected=\"true\">Length distribution</option>\n+                                <option value=\"gc\" selected=\"true\">GC content distribution</option>\n+                                ...\n+                            </param>\n+                            ```\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### `inputs` > `param` > `boolean`\n+\n+                            <img src=\"../images/input_boolean.png\" alt=\"input select\"/>\n+\n+                            ```xml\n+                            <param name=\"...\" type=\"boolean\" checked=\"false\" truevalue=\"--log\"\n+                            falsevalue=\"\" label=\"...\"  help=\"...\" />\n+                            ```\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### `inputs` > `param` > `conditional`\n+\n+                            <img src=\"../images/input_conditional.png\" alt=\"input conditional\"/>\n+\n+                            ```xml\n+                            <command interpreter=\"bash\"><![CDATA[\n+                                #if $input_format.format == \"fasta\":\n+                                    phyml_fasta_id_encode_wrapper.sh $input_format.input $output_tree\n+                                #end if\n+                                #if $input_format.format == \"phylip\":\n+                                    phyml.sh\n+                                #end if\n+                            ]]></command>\n+                            <inputs>\n+                               <conditional name=\"input_format\">\n+                                <param type=\"select\" name=\"format\" label=\"Input format\">\n+                                  <option value=\"phylip\">Phylip</option>\n+                                  <option value=\"fasta\">Fasta</option>\n+                                </param>\n+                                <when value=\"phylip\">\n+                                  <param format=\"phylip\" name=\"input\" type=\"data\"  />\n+                                </when>\n+                                <when value=\"fasta\">\n+                                  <param format=\"fasta\" name=\"input\" type=\"data\"  />\n+                                </when>\n+                              </conditional>\n+                            </inputs>\n+                            ```\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### `inputs` > `param` > `repeat`\n+\n+                            <img src=\"../images/input_repeat.png\" alt=\"input repeat\"/>\n+\n+                            ```xml\n+                            <command><![CDATA[\n+                              #for $i, $s in enumerate( $series )\n+                                rank_of_series=$i\n+                                input_path=${s.input}\n+                                x_colom=${s.xcol}\n+                                y_colom=${s.ycol}\n+                              #end for\n+                            ]]></command>\n+\n+                            <inputs>\n+                              <repeat name=\"series\" title=\"Series\">\n+                                <param name=\"input\" type=\"data\" format=\"tabular\" label=\"Dataset\"/>\n+                                <param name=\"xcol\" type=\"data_column\" data_ref=\"input\" label=\"Column for x axis\"/>\n+                                <param name=\"ycol\" type=\"data_column\" data_ref=\"input\" label=\"Column for y axis\"/>\n+                              </repeat>\n+                            </inputs>\n+                            ```\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### `outputs`\n+                            #### What files the tool will produce as output?\n+\n+                            <img src=\"../images/output.png\" alt=\"outputs\" height=550/>\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### `outputs`\n+\n+                            ```xml\n+                            <outputs>\n+                                <data format=\"txt\" name=\"tree\" label=\"${tool.name} on ${on_string}:\n+                                Tree\" />\n+                                <data format=\"txt\" name=\"annotation\" label=\"${tool.name} on\n+                                ${on_string}: Annotation\" />\n+                            </outputs>\n+                            ```\n+\n+                        </script>\n+                    </section>\n+\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### `outputs` > `filter`\n+                            #### Conditional\n+\n+                            ```xml\n+                            <outputs>\n+                                <data format=\"png\" name=\"png_output_image\" label=\"${tool.name} on\n+                                ${on_string}: Image\">\n+                                    <filter>format==\"png\"</filter>\n+                                </data>\n+                            </outputs>\n+                            ```\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### `stdio`\n+\n+                            ```\n+                            <stdio>\n+                              <exit_code range=\":-2\" level=\"warning\" description=\"Low disk space\" />\n+                              <exit_code range=\"1:\" level=\"fatal\"  />\n+                              <regex match=\"Error:\"  level=\"fatal\" />\n+                            </stdio>\n+\n+                            ```\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### `help`\n+\n+                            <img src=\"../images/help.png\" alt=\"help\"/>\n+\n+                            ```\n+                            <help><![CDATA[\n+\n+                            **What it does**\n+                            GraPhlAn is a software tool for producing high-quality circular\n+                            representations of taxonomic and phylogenetic trees. GraPhlAn focuses\n+                            on concise, integrative, informative, and publication-ready\n+                            representations of phylogenetically- and taxonomically-driven\n+                            investigation.\n+\n+                            For more information, check the `user manual\n+                            <https://bitbucket.org/nsegata/graphlan/overview>`_.\n+\n+                            ]]></help>\n+                            ```\n+\n+                            <small>[reStructuredText markdown format](http://docutils.sourceforge.net/docs/user/rst/quickref.html)</small>\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### `citations`\n+\n+                            <img src=\"../images/citations.png\" alt=\"citations\"/>\n+\n+                            ```\n+                            <citations>\n+                                <citation type=\"doi\">10.1093/bioinformatics/bts611</citation>\n+                                <citation type=\"doi\">10.1093/nar/gks1219</citation>\n+                                <citation type=\"doi\">10.1093/nar/gks1005</citation>\n+                                <citation type=\"doi\">10.1093/bioinformatics/btq461</citation>\n+                                <citation type=\"doi\">10.1038/nbt.2198</citation>\n+                            </citations>\n+                            ```\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### Wrapper directory tree\n+\n+                            ```\n+                            graphlan/\n+                            ├── graphlan.xml\n+                            ├── test_data/\n+                                ├── input_tree.txt\n+                                ├── png_image.png\n+\n+                            ```\n+\n+                            [Details of XML tag sets](https://wiki.galaxyproject.org/Admin/Tools/ToolConfigSyntax)\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            <img src=\"../images/planemo-logo.png\" alt=\"Planemo\" class=\"no-border\" height=25/>\n+                            #### Building Galaxy Tools\n+\n+                            <img src=\"../images/planemo_tool_building_lint.png\" alt=\"Building tools\" class=\"no-border\"/>\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### Hands-on\n+\n+                            <img src=\"../images/exercise.png\" alt=\"exercise\"/>\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### Hands-on\n+\n+                            #### The Goal\n+                            A wrapper for Seqtk, a tool for processing sequence data in FASTA and FASTQ files.\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### Hands-on\n+\n+                            #### Before: install Seqtk and test it\n+                            <small>Not need brain</small>\n+                            - `planemo conda_init`\n+                            - `conda install seqtk`\n+                            - `wget https://raw.githubusercontent.com/galaxyproject/galaxy-test-data/master/2.fastq`\n+                            - `seqtk seq -A 2.fastq > 2.fasta`\n+                            - `cat 2.fasta`\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### Hands-on\n+\n+                            #### Steps\n+                            1. Use `planemo tool_init` and fill the template\n+                            2. Use `planemo lint` until all is green\n+                            3. Use `planemo serve --install_galaxy` to display your tool form\n+\n+                        </script>\n+                    </section>\n+\n+                </section>\n+\n+                <!-- FUNCTIONAL TEST -->\n+                <section>\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ## Funtional tests\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### Functional tests\n+                            #### Good practices\n+\n+                            1. Build tests using inputs/parameters/outputs\n+                            2. Run the tests --> Failed --> Coffee\n+                            3. Develop\n+                            4. Run the tests --> Failed  --> Coffee\n+                            5. Develop\n+                            6. Run the tests --> Succeed --> Beer\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### `tests`\n+\n+                            ```\n+                            <tests>\n+                                <test>\n+                                    <param name=\"input_tree\" value=\"input_tree.txt\"/>\n+                                    <param name=\"format\" value=\"png\"/>\n+                                    <param name=\"dpi\" value=\"100\"/>\n+                                    <param name=\"size\" value=\"7\"/>\n+                                    <param name=\"pad\" value=\"2\"/>\n+                                    <output name=\"png_output_image\" file=\"png_image.png\" />\n+                                </test>\n+                            </tests>\n+                            ```\n+\n+                            <small>`input_tree.txt` and `png_image.png` in `test-data` repository</small>\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### `tests`\n+                            #### Comparison Methods\n+\n+                            ```xml\n+                            <output name=\"out_file1\" file=\"cf_maf2fasta_concat.dat\" ftype=\"fasta\"/>\n+                            ```\n+\n+                            ```xml\n+                            <test>\n+                                <output name=\"out_file1\">\n+                                    <assert_contents>\n+                                        <has_text text=\"chr7\" />\n+                                        <not_has_text text=\"chr8\" />\n+                                        <has_text_matching expression=\"1274\\d+53\" />\n+                                        <has_line_matching expression=\".*\\s+127489808\\s+127494553\" />\n+                                        <!-- &#009; is XML escape code for tab -->\n+                                        <has_line line=\"chr7&#009;127471195&#009;127489808\" />\n+                                        <has_n_columns n=\"3\" />\n+                                    </assert_contents>\n+                                </output>\n+                            </test>\n+                            ```\n+\n+                            <small>[https://docs.galaxyproject.org/en/latest/dev/schema.html#tool|tests|test](https://docs.galaxyproject.org/en/latest/dev/schema.html#tool|tests|test)</small>\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### `tests`\n+                            #### Comparison Methods on the output itself\n+\n+                            ```xml\n+                            <test>\n+                                <output ...\n+                                    md5\n+                                    compare\n+                                        diff\n+                                        sim_size\n+                                    lines_diff\n+                                ...\n+\n+                            ```\n+\n+                            <small>[https://docs.galaxyproject.org/en/latest/dev/schema.html#tool|tests|test|output|assert_contents](https://docs.galaxyproject.org/en/latest/dev/schema.html#tool|tests|test|output|assert_contents)</small>\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                          ### `tests`\n+                          #### Comparison Methods within the output\n+\n+                          ```xml\n+                          <test>\n+                              <output>\n+                                  <assert_contents>\n+                                      <has_text />\n+                                      <not_has_text />\n+                                      <has_text_matching />\n+                                      <has_text />\n+                                      <...>\n+                          ```\n+                          <small>[https://docs.galaxyproject.org/en/latest/dev/schema.html#tool|tests|test|output|assert_contents](https://docs.galaxyproject.org/en/latest/dev/schema.html#tool|tests|test|output|assert_contents)</small>\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            <img src=\"../images/planemo-logo.png\" alt=\"Planemo\" class=\"no-border\" height=25/>\n+                            #### Test Galaxy Tools\n+\n+                            <img src=\"../images/planemo_tool_building_test.png\" alt=\"Testing tools\" class=\"no-border\"/>\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### Hands-on\n+\n+                            <img src=\"../images/exercise.png\" alt=\"exercise\"/>\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### Hands-on\n+\n+                            #### The Goal\n+                            At functional test to the Seqtk wrapper for Seqtk\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### Hands-on\n+\n+                            #### Steps\n+                            1. Fill a `<test>` tag using the file you generate previously with `seqtk`\n+                            2. Use `planemo test --install_galaxy ...` until all is green\n+\n+                        </script>\n+                    </section>\n+                </section>\n+\n+                <!-- DEPENDENCIES -->\n+                <section>\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ## Dependencies\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### Dependencies\n+                            #### What about tool installation?\n+\n+                            <img src=\"../images/galaxy_instance.png\" alt=\"Galaxy instance\" height=500/>\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### Dependencies\n+                            #### Embedded tool\n+\n+                            ```\n+                            graphlan/\n+                            ├── graphlan.xml\n+                            ├── test_data/\n+                                ├── input_tree.txt\n+                                ├── png_image.png\n+                            ├── graphlan.py\n+\n+                            ```\n+\n+                            ```\n+                            <command><![CDATA[\n+                                $__tool_directory__/graphlan.py\n+                                    ...\n+                            ]]></command>\n+                            ```\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### Dependencies\n+                            #### External tool\n+\n+                            Definition of requirements in `.xml` file\n+\n+                            ```\n+                            <requirements>\n+                                <requirement type=\"package\" version=\"1.66\">biopython</requirement>\n+                                <requirement type=\"package\" version=\"1.0.0\">graphlan</requirement>\n+                            </requirements>\n+                            ```\n+\n+                            Local installation using ~~tool_dependencies.xml~~\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### Dependencies\n+                            #### External tool\n+\n+                            Definition of requirements in `.xml` file\n+\n+                            ```\n+                            <requirements>\n+                                <requirement type=\"package\" version=\"1.66\">biopython</requirement>\n+                                <requirement type=\"package\" version=\"1.0.0\">graphlan</requirement>\n+                            </requirements>\n+                            ```\n+\n+                            Local installation using `conda` package\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            <img src=\"../images/conda_logo.png\" class=\"no-border\" />\n+                            > Package, dependency and environment management\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            <img src=\"../images/conda_logo.png\" class=\"no-border\"  height=25 />\n+                            #### Miniconda\n+\n+                            <img src=\"../images/miniconda_vs_anaconda.png\" alt=\"Miniconda\" class=\"no-border\" height=\"500\"/>\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            <img src=\"../images/planemo-logo.png\" alt=\"Planemo\" class=\"no-border\" height=25/>\n+                            #### Test Galaxy Tools using Conda packages\n+\n+                            <img src=\"../images/planemo_tool_building.png\" alt=\"Testing tools\" class=\"no-border\"/>\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### Hands-on\n+\n+                            <img src=\"../images/exercise.png\" alt=\"exercise\"/>\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### Hands-on\n+\n+                            #### The Goal\n+                            Use Conda package installation during the functional test of the wrapper for Seqtk\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### Hands-on\n+\n+                            #### Before\n+                            1. `conda uninstall seqtk`\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### Hands-on\n+\n+                            #### Steps\n+                            1. Fill a `<requirement>` tag to target a `seqtk` conda package\n+                            2. Use `planemo conda_install` to install tools and set an environment\n+                            3. Use `planemo test --conda_dependency_resolution ...`\n+\n+                        </script>\n+                    </section>\n+\n+\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            <img src=\"../images/bioconda.png\" class=\"no-border\"  height=25 />\n+                            #### Bioconda\n+\n+                            # TODO\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            <img src=\"../images/bioconda.png\" class=\"no-border\"  height=25 />\n+                            #### Bioconda contributing\n+\n+                            # TODO\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            <img src=\"../images/conda_logo.png\" class=\"no-border\"  height=25 />\n+                            #### `conda build`\n+\n+                            # TODO\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### Hands-on\n+\n+                            <img src=\"../images/exercise.png\" alt=\"exercise\"/>\n+\n+                        </script>\n+                    </section>\n+\n                 </section>\n \n+\n+                <!-- PLANEMO -->\n                 <section>\n                     <section data-markdown>\n                         <script type=\"text/template\">\n-                            ## A tool in Galaxy\n+                            <img src=\"../images/planemo-logo.png\" alt=\"Planemo\" class=\"no-border\" width=750/>\n+\n+                            > Command-line utilities to assist in building and publishing Galaxy tools.\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            <img src=\"../images/planemo-logo.png\" alt=\"Planemo\" class=\"no-border\" height=25/>\n+                            ### Summary\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            <img src=\"../images/planemo-logo.png\" alt=\"Planemo\" class=\"no-border\" height=25/>\n+                            #### The big picture\n+\n+                            <img src=\"../images/big_picture.png\" alt=\"The big picture\" class=\"no-border\" height=\"550\" />\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            <img src=\"../images/planemo-logo.png\" alt=\"Planemo\" class=\"no-border\" height=25/>\n+                            #### Checklist (1/3)\n+\n+                            <p style=\"text-align: left;\">\n+                              <input type=\"checkbox\"/> Create of a dedicated repository <br/>\n+                              <input type=\"checkbox\"/> Create of the main `.xml` file with <br/>\n+                              ```planemo create``` <br/>\n+                              <input type=\"checkbox\"/> Fill the `.xml` file <br/>\n+                              <input type=\"checkbox\"/> Test the wrapper structure with <br/>\n+                              ```planemo lint```<br/>\n+                            </p>\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\" >\n+                            <img src=\"../images/planemo-logo.png\" alt=\"Planemo\" class=\"no-border\" height=25/>\n+                            #### Checklist (2/3)\n+\n+                            <p style=\"text-align: left;\">\n+                              <input type=\"checkbox\"/> Write the `tool_dependencies.xml` file <br/>\n+                              <input type=\"checkbox\"/> Initiate the `.shed.yml` file with <br/>\n+                              ```planemo shed_init``` <br/>\n+                              <input type=\"checkbox\"/> Create the repository on ToolShed with <br/>\n+                              ```planemo shed_create```<br/>\n+                              <input type=\"checkbox\"/> Install and test the wrapper on a Galaxy instance <br/>\n+                            </p>\n+\n                         </script>\n                     </section>\n \n                     <section data-markdown>\n                         <script type=\"text/template\">\n-                            ### Subpart1.1\n+                            <img src=\"../images/planemo-logo.png\" alt=\"Planemo\" class=\"no-border\" height=25/>\n+                            #### Checklist (3/3)\n+\n+                            <p style=\"text-align: left;\">\n+                              <input type=\"checkbox\"/> Improve the wrapper and push modification on toolshed <br/>\n+                              ```planemo shed_update``` <br/>\n+                              <input type=\"checkbox\"/> Add functional tests <br/>\n+                              <input type=\"checkbox\"/> Run functional tests <br/>\n+                              ```planemo test```<br/>\n+                            </p>\n+\n+                            <aside class=\"notes\">\n+                                Gildas: for me tests come before shed_*. Ideally, tests come before command, input, output ... They are the first thing to do... Ideally\n+                            </aside>\n \n-                            -  https://www.dropbox.com/s/afoftkt2k103tdx/galaxy4bioinformatics-integration-partI-1.13.pdf?dl=0\n-                            - http://bebatut-slides.github.io/galaxy_workshop_05_16/#/\n                         </script>\n                     </section>\n                 </section>\n \n+\n+                <!-- GITHUB + TRAVIS.CI + PLANEMO + CONDA -->\n                 <section>\n                     <section data-markdown>\n                         <script type=\"text/template\">\n-                            ### <i class=\"fa fa-question-circle\" aria-hidden=\"true\"></i> Questions\n+                            <img src=\"../images/github_logo.png\" alt=\"github\" height=\"150\"/><br/>\n+                            <img src=\"../images/travis_ci_logo.png\" alt=\"travis ci\" height=\"150\"/><br/>\n+                            <img src=\"../images/planemo-logo.png\" alt=\"planemo\" height=\"100\"/><br/>\n+                            <img src=\"../images/conda_logo.png\" alt=\"conda\" height=\"90\"/>\n \n-                            - Major question that would be addressed in this tutorial (same as the markdown)\n-                            - Second question\n+                        </script>\n+                    </section>\n \n-                            <aside class=\"notes\">\n-                                Oh hey, these are some notes. They'll be hidden in your presentation, but you can see them if you open the speaker notes window.\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### GitHub side\n+\n+                            <img src=\"../images/github_travis_github.png\" alt=\"Travis in GitHub\"/>\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### Travis CI side\n+\n+                            <img src=\"../images/github_travis_travis.png\" alt=\"GitHub in Travis\"/>\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### IUC: Intergalactic Utilities Commission\n+\n+                            - Lobbyist :)\n+                            - Host orphan tools: [GitHub](https://github.com/galaxyproject/tools-iuc)\n+                            - [IUC-standards](http://galaxy-iuc-standards.readthedocs.io/)\n+\n+                        </script>\n+                    </section>\n+                </section>\n+\n+\n+                <!-- PUBLISHING TOOLSHED -->\n+                <section>\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ## Publishing on Toolshed\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### Publishing on ToolShed\n+\n+                            Metadata description: `.shed.yml` file\n+\n+                            ```\n+                            categories:\n+                              - Metagenomics\n+                              - Graphics\n+                              - Phylogenetics\n+                            description: \"GraPhlAn is a software tool for producing high-quality\n+                            circular representations of taxonomic and phylogenetic trees\"\n+                            homepage_url: \"https://bitbucket.org/nsegata/graphlan/overview\"\n+                            name: graphlan\n+                            owner: bebatut\n+                            remote_repository_url: \"https://github.com/ASaiM/galaxytools/tree/master/tools/graphlan/\"\n+                            ```\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### Publishing on ToolShed\n+\n+                            Metadata description: `.shed.yml` file\n+\n+                            ```\n+                            graphlan/\n+                            ├── graphlan.xml\n+                            ├── test_data/\n+                                ├── input_tree.txt\n+                                ├── png_image.png\n+                            ├── .shed.yml\n+                            ```\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            <img src=\"../images/planemo-logo.png\" alt=\"Planemo\" class=\"no-border\" height=25/>\n+                            #### Publishing to the ToolShed\n+\n+                            <img src=\"../images/planemo_toolshed_publishing.png\" alt=\"Publishing on ToolShed\" class=\"no-border\"/>\n+\n+                        </script>\n+                    </section>\n+                </section>\n+\n+                <!-- ADVANCED -->\n+                <section>\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ## Advanced features\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### Other tags\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### `configfiles`\n+\n+                            <div align=\"left\">\n+                              Like `command` allow cheetah code<br/>\n+                              <br/>\n+                              <ul>\n+                                <li>Create a config file</li>\n+                                <li>Create a whole script or a module</li>\n+                              </ul>\n+                            </div>\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### `configfiles`\n+\n+                            ```xml\n+                            <command><![CDATA[ mb $script_nexus  ]]></command>\n+\n+                            <configfiles>\n+                              <configfile name=\"script_nexus\"><![CDATA[\n+                            set autoclose = yes;\n+                            execute $input_data;\n+                            #if str( $data_type.type ) == \"nuc“\n+                                      lset nst=$data_type.lset_params.lset_Nst;\n+                            #end if\n+                            mcmcp ngen=$mcmcp_ngen;\n+                            mcmc;\n+                            quit\n+                              ]]></configfile>\n+                            </configfiles>\n+\n+                            ```\n+\n+                            ```bash\n+                            set autoclose = yes;\n+                            execute dataset_42.dat;\n+                            lset nst=2 ;\n+                            mcmcp ngen=100000;\n+                            mcmc;\n+                            quit\n+                            ```\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### `command` > Reserved Variables\n+\n+                            ```xml\n+                            <command><![CDATA[\n+                              ${input_foobar.ext}\n+\n+                              --search_pfam \"${ filter( lambda x: str( x[0] ) == str( $search.pfam_db ), $__app__.tool_data_tables[ 'pfam_databases' ].get_fields() )[0][-1] }\"\n+\n+                              library $__app__.config.user_library_import_dir/$__user_email__/$inputs.library\n+\n+                              #if isinstance( $input1.datatype, $__app__.datatypes_registry.get_datatype_by_extension('gff').__class__):\n+                            ]]></command>\n+                            ```\n+                            <small>[Reserved Variables List](https://docs.galaxyproject.org/en/latest/dev/schema.html#tool|command)</small>\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### `macro`\n+\n+                        <img src=\"../images/macro.png\" alt=\"macro\"/>\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### Dataset collection\n \n-                                To see the notes, hit **'s'** on your keyboard\n-                            </aside>\n                         </script>\n                     </section>\n \n                     <section data-markdown>\n                         <script type=\"text/template\">\n-                            ### <i class=\"fa fa-bullseye\" aria-hidden=\"true\"></i> Objectives\n+                            ### Dataset collection\n+\n+                            # TODO\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### Some Config\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### `job_conf.xml`\n+\n+                            <img src=\"../images/job_conf.xml_1.png\" alt=\"job_conf.xml\" height=\"500\"/>\n+                            ```bash\n+                            blastn -query foo_bar -num_threads 8\n+                            ```\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### `job_conf.xml`\n+\n+                            <img src=\"../images/job_conf.xml_2.png\" alt=\"job_conf.xml\" height=\"500\"/>\n+                            ```bash\n+                            blastn -query foo_bar -num_threads 4\n+                            ```\n+\n+                        </script>\n+                    </section>\n+\n+                    <section data-markdown>\n+                        <script type=\"text/template\">\n+                            ### `tool_data_table_conf.xml`\n+\n+                            <img src=\"../images/tool_data_table_conf.xml.png\" alt=\"tool_data_table_conf.xml\"/>\n \n-                            - First objective of this tutorial (same as the markdown)\n-                            - Second objective\n-                            - Third objective\n-                            - ...\n                         </script>\n                     </section>\n                 </section>\n \n+                <!-- END -->\n+                <section>\n+                  <section data-markdown>\n+                      <script type=\"text/template\">\n+                          ## END","path":"Dev-Corner/slides/tool_integration.html","position":null,"original_position":1344,"commit_id":"bd65abad62ad18784c870647c0a0459e3ad24011","original_commit_id":"70977993b955225c8f585815371405d23f36061c","user":{"login":"lecorguille","id":11072022,"avatar_url":"https://avatars.githubusercontent.com/u/11072022?v=3","gravatar_id":"","url":"https://api.github.com/users/lecorguille","html_url":"https://github.com/lecorguille","followers_url":"https://api.github.com/users/lecorguille/followers","following_url":"https://api.github.com/users/lecorguille/following{/other_user}","gists_url":"https://api.github.com/users/lecorguille/gists{/gist_id}","starred_url":"https://api.github.com/users/lecorguille/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lecorguille/subscriptions","organizations_url":"https://api.github.com/users/lecorguille/orgs","repos_url":"https://api.github.com/users/lecorguille/repos","events_url":"https://api.github.com/users/lecorguille/events{/privacy}","received_events_url":"https://api.github.com/users/lecorguille/received_events","type":"User","site_admin":false},"body":"Done: removed","created_at":"2016-10-12T21:00:48Z","updated_at":"2016-10-12T21:00:48Z","html_url":"https://github.com/bgruening/training-material/pull/128#discussion_r83097605","pull_request_url":"https://api.github.com/repos/bgruening/training-material/pulls/128","_links":{"self":{"href":"https://api.github.com/repos/bgruening/training-material/pulls/comments/83097605"},"html":{"href":"https://github.com/bgruening/training-material/pull/128#discussion_r83097605"},"pull_request":{"href":"https://api.github.com/repos/bgruening/training-material/pulls/128"}}},"pull_request":{"url":"https://api.github.com/repos/bgruening/training-material/pulls/128","id":88456404,"html_url":"https://github.com/bgruening/training-material/pull/128","diff_url":"https://github.com/bgruening/training-material/pull/128.diff","patch_url":"https://github.com/bgruening/training-material/pull/128.patch","issue_url":"https://api.github.com/repos/bgruening/training-material/issues/128","number":128,"state":"open","locked":false,"title":"WIP: Tool integration tutorial","user":{"login":"lecorguille","id":11072022,"avatar_url":"https://avatars.githubusercontent.com/u/11072022?v=3","gravatar_id":"","url":"https://api.github.com/users/lecorguille","html_url":"https://github.com/lecorguille","followers_url":"https://api.github.com/users/lecorguille/followers","following_url":"https://api.github.com/users/lecorguille/following{/other_user}","gists_url":"https://api.github.com/users/lecorguille/gists{/gist_id}","starred_url":"https://api.github.com/users/lecorguille/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lecorguille/subscriptions","organizations_url":"https://api.github.com/users/lecorguille/orgs","repos_url":"https://api.github.com/users/lecorguille/repos","events_url":"https://api.github.com/users/lecorguille/events{/privacy}","received_events_url":"https://api.github.com/users/lecorguille/received_events","type":"User","site_admin":false},"body":"@bebatut \r\n\r\n- First review of Berenice slides\r\n- Some reorganisation in upper sections\r\n- Some modifications : Some add\r\n- A List of TODO\r\n\r\nI hope I didn't completly put the mess or upset you with my modifications 🙏 \r\n\r\nI think that it should be good to split the Planemo part \"Integration\" and \"Publishing\".\r\n\r\nTODO (according to me):\r\n- [x]  configfiles\r\n- [x] `$__app__`\r\n- [x] macro\r\n- [ ] dataset collection\r\n- [ ] html output\r\n- [x] tool_data_table_conf.xml\r\n- [x] `\\${GAALXY_SLOTS:-1}`\r\n- [ ] Datatypes\r\n- [x] GitHub -> TravisCI\r\n\r\n\r\n\r\nI try to add some `<aside >` but I didn't manage to see them!\r\n\r\n\r\nI will now working on a `conda build` tutorial/hands_on in markdown... Expect if you have already something?\r\n\r\n","created_at":"2016-10-07T15:13:34Z","updated_at":"2016-10-12T21:00:48Z","closed_at":null,"merged_at":null,"merge_commit_sha":"ec62c7e2c456938ef4fab64df69c1a958b15fc64","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/bgruening/training-material/pulls/128/commits","review_comments_url":"https://api.github.com/repos/bgruening/training-material/pulls/128/comments","review_comment_url":"https://api.github.com/repos/bgruening/training-material/pulls/comments{/number}","comments_url":"https://api.github.com/repos/bgruening/training-material/issues/128/comments","statuses_url":"https://api.github.com/repos/bgruening/training-material/statuses/bd65abad62ad18784c870647c0a0459e3ad24011","head":{"label":"bgruening:tool_integration_tutorial_lecorguille","ref":"tool_integration_tutorial_lecorguille","sha":"bd65abad62ad18784c870647c0a0459e3ad24011","user":{"login":"bgruening","id":469983,"avatar_url":"https://avatars.githubusercontent.com/u/469983?v=3","gravatar_id":"","url":"https://api.github.com/users/bgruening","html_url":"https://github.com/bgruening","followers_url":"https://api.github.com/users/bgruening/followers","following_url":"https://api.github.com/users/bgruening/following{/other_user}","gists_url":"https://api.github.com/users/bgruening/gists{/gist_id}","starred_url":"https://api.github.com/users/bgruening/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bgruening/subscriptions","organizations_url":"https://api.github.com/users/bgruening/orgs","repos_url":"https://api.github.com/users/bgruening/repos","events_url":"https://api.github.com/users/bgruening/events{/privacy}","received_events_url":"https://api.github.com/users/bgruening/received_events","type":"User","site_admin":false},"repo":{"id":38241461,"name":"training-material","full_name":"bgruening/training-material","owner":{"login":"bgruening","id":469983,"avatar_url":"https://avatars.githubusercontent.com/u/469983?v=3","gravatar_id":"","url":"https://api.github.com/users/bgruening","html_url":"https://github.com/bgruening","followers_url":"https://api.github.com/users/bgruening/followers","following_url":"https://api.github.com/users/bgruening/following{/other_user}","gists_url":"https://api.github.com/users/bgruening/gists{/gist_id}","starred_url":"https://api.github.com/users/bgruening/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bgruening/subscriptions","organizations_url":"https://api.github.com/users/bgruening/orgs","repos_url":"https://api.github.com/users/bgruening/repos","events_url":"https://api.github.com/users/bgruening/events{/privacy}","received_events_url":"https://api.github.com/users/bgruening/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/bgruening/training-material","description":"A collection of training material from offered Galaxy courses","fork":false,"url":"https://api.github.com/repos/bgruening/training-material","forks_url":"https://api.github.com/repos/bgruening/training-material/forks","keys_url":"https://api.github.com/repos/bgruening/training-material/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bgruening/training-material/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bgruening/training-material/teams","hooks_url":"https://api.github.com/repos/bgruening/training-material/hooks","issue_events_url":"https://api.github.com/repos/bgruening/training-material/issues/events{/number}","events_url":"https://api.github.com/repos/bgruening/training-material/events","assignees_url":"https://api.github.com/repos/bgruening/training-material/assignees{/user}","branches_url":"https://api.github.com/repos/bgruening/training-material/branches{/branch}","tags_url":"https://api.github.com/repos/bgruening/training-material/tags","blobs_url":"https://api.github.com/repos/bgruening/training-material/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bgruening/training-material/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bgruening/training-material/git/refs{/sha}","trees_url":"https://api.github.com/repos/bgruening/training-material/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bgruening/training-material/statuses/{sha}","languages_url":"https://api.github.com/repos/bgruening/training-material/languages","stargazers_url":"https://api.github.com/repos/bgruening/training-material/stargazers","contributors_url":"https://api.github.com/repos/bgruening/training-material/contributors","subscribers_url":"https://api.github.com/repos/bgruening/training-material/subscribers","subscription_url":"https://api.github.com/repos/bgruening/training-material/subscription","commits_url":"https://api.github.com/repos/bgruening/training-material/commits{/sha}","git_commits_url":"https://api.github.com/repos/bgruening/training-material/git/commits{/sha}","comments_url":"https://api.github.com/repos/bgruening/training-material/comments{/number}","issue_comment_url":"https://api.github.com/repos/bgruening/training-material/issues/comments{/number}","contents_url":"https://api.github.com/repos/bgruening/training-material/contents/{+path}","compare_url":"https://api.github.com/repos/bgruening/training-material/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bgruening/training-material/merges","archive_url":"https://api.github.com/repos/bgruening/training-material/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bgruening/training-material/downloads","issues_url":"https://api.github.com/repos/bgruening/training-material/issues{/number}","pulls_url":"https://api.github.com/repos/bgruening/training-material/pulls{/number}","milestones_url":"https://api.github.com/repos/bgruening/training-material/milestones{/number}","notifications_url":"https://api.github.com/repos/bgruening/training-material/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bgruening/training-material/labels{/name}","releases_url":"https://api.github.com/repos/bgruening/training-material/releases{/id}","deployments_url":"https://api.github.com/repos/bgruening/training-material/deployments","created_at":"2015-06-29T10:16:39Z","updated_at":"2016-10-12T09:08:22Z","pushed_at":"2016-10-12T20:58:16Z","git_url":"git://github.com/bgruening/training-material.git","ssh_url":"git@github.com:bgruening/training-material.git","clone_url":"https://github.com/bgruening/training-material.git","svn_url":"https://github.com/bgruening/training-material","homepage":"http://bgruening.github.io/training-material","size":123173,"stargazers_count":21,"watchers_count":21,"language":"HTML","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":36,"mirror_url":null,"open_issues_count":51,"forks":36,"open_issues":51,"watchers":21,"default_branch":"master"}},"base":{"label":"bgruening:master","ref":"master","sha":"e617a46ba1e7fdbeba500eb52a81ccf38dfc4ab0","user":{"login":"bgruening","id":469983,"avatar_url":"https://avatars.githubusercontent.com/u/469983?v=3","gravatar_id":"","url":"https://api.github.com/users/bgruening","html_url":"https://github.com/bgruening","followers_url":"https://api.github.com/users/bgruening/followers","following_url":"https://api.github.com/users/bgruening/following{/other_user}","gists_url":"https://api.github.com/users/bgruening/gists{/gist_id}","starred_url":"https://api.github.com/users/bgruening/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bgruening/subscriptions","organizations_url":"https://api.github.com/users/bgruening/orgs","repos_url":"https://api.github.com/users/bgruening/repos","events_url":"https://api.github.com/users/bgruening/events{/privacy}","received_events_url":"https://api.github.com/users/bgruening/received_events","type":"User","site_admin":false},"repo":{"id":38241461,"name":"training-material","full_name":"bgruening/training-material","owner":{"login":"bgruening","id":469983,"avatar_url":"https://avatars.githubusercontent.com/u/469983?v=3","gravatar_id":"","url":"https://api.github.com/users/bgruening","html_url":"https://github.com/bgruening","followers_url":"https://api.github.com/users/bgruening/followers","following_url":"https://api.github.com/users/bgruening/following{/other_user}","gists_url":"https://api.github.com/users/bgruening/gists{/gist_id}","starred_url":"https://api.github.com/users/bgruening/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bgruening/subscriptions","organizations_url":"https://api.github.com/users/bgruening/orgs","repos_url":"https://api.github.com/users/bgruening/repos","events_url":"https://api.github.com/users/bgruening/events{/privacy}","received_events_url":"https://api.github.com/users/bgruening/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/bgruening/training-material","description":"A collection of training material from offered Galaxy courses","fork":false,"url":"https://api.github.com/repos/bgruening/training-material","forks_url":"https://api.github.com/repos/bgruening/training-material/forks","keys_url":"https://api.github.com/repos/bgruening/training-material/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bgruening/training-material/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bgruening/training-material/teams","hooks_url":"https://api.github.com/repos/bgruening/training-material/hooks","issue_events_url":"https://api.github.com/repos/bgruening/training-material/issues/events{/number}","events_url":"https://api.github.com/repos/bgruening/training-material/events","assignees_url":"https://api.github.com/repos/bgruening/training-material/assignees{/user}","branches_url":"https://api.github.com/repos/bgruening/training-material/branches{/branch}","tags_url":"https://api.github.com/repos/bgruening/training-material/tags","blobs_url":"https://api.github.com/repos/bgruening/training-material/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bgruening/training-material/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bgruening/training-material/git/refs{/sha}","trees_url":"https://api.github.com/repos/bgruening/training-material/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bgruening/training-material/statuses/{sha}","languages_url":"https://api.github.com/repos/bgruening/training-material/languages","stargazers_url":"https://api.github.com/repos/bgruening/training-material/stargazers","contributors_url":"https://api.github.com/repos/bgruening/training-material/contributors","subscribers_url":"https://api.github.com/repos/bgruening/training-material/subscribers","subscription_url":"https://api.github.com/repos/bgruening/training-material/subscription","commits_url":"https://api.github.com/repos/bgruening/training-material/commits{/sha}","git_commits_url":"https://api.github.com/repos/bgruening/training-material/git/commits{/sha}","comments_url":"https://api.github.com/repos/bgruening/training-material/comments{/number}","issue_comment_url":"https://api.github.com/repos/bgruening/training-material/issues/comments{/number}","contents_url":"https://api.github.com/repos/bgruening/training-material/contents/{+path}","compare_url":"https://api.github.com/repos/bgruening/training-material/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bgruening/training-material/merges","archive_url":"https://api.github.com/repos/bgruening/training-material/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bgruening/training-material/downloads","issues_url":"https://api.github.com/repos/bgruening/training-material/issues{/number}","pulls_url":"https://api.github.com/repos/bgruening/training-material/pulls{/number}","milestones_url":"https://api.github.com/repos/bgruening/training-material/milestones{/number}","notifications_url":"https://api.github.com/repos/bgruening/training-material/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bgruening/training-material/labels{/name}","releases_url":"https://api.github.com/repos/bgruening/training-material/releases{/id}","deployments_url":"https://api.github.com/repos/bgruening/training-material/deployments","created_at":"2015-06-29T10:16:39Z","updated_at":"2016-10-12T09:08:22Z","pushed_at":"2016-10-12T20:58:16Z","git_url":"git://github.com/bgruening/training-material.git","ssh_url":"git@github.com:bgruening/training-material.git","clone_url":"https://github.com/bgruening/training-material.git","svn_url":"https://github.com/bgruening/training-material","homepage":"http://bgruening.github.io/training-material","size":123173,"stargazers_count":21,"watchers_count":21,"language":"HTML","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":36,"mirror_url":null,"open_issues_count":51,"forks":36,"open_issues":51,"watchers":21,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/bgruening/training-material/pulls/128"},"html":{"href":"https://github.com/bgruening/training-material/pull/128"},"issue":{"href":"https://api.github.com/repos/bgruening/training-material/issues/128"},"comments":{"href":"https://api.github.com/repos/bgruening/training-material/issues/128/comments"},"review_comments":{"href":"https://api.github.com/repos/bgruening/training-material/pulls/128/comments"},"review_comment":{"href":"https://api.github.com/repos/bgruening/training-material/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/bgruening/training-material/pulls/128/commits"},"statuses":{"href":"https://api.github.com/repos/bgruening/training-material/statuses/bd65abad62ad18784c870647c0a0459e3ad24011"}}}}
{"actor":{"display_login":"lecorguille"}}