Including a new topic
Overview
question Questionsobjectives Objectives
How to include a new topic?
Create a new topic
Set up the metadata for a topic
time Time estimation: 30 minutesSupporting Materials
last_modification Last modification: Jan 24, 2020
Introduction
Each training material is related to a topic. All training materials (slides, tutorials, …) related to a topic are found in a dedicated directory (e.g. transcriptomics
directory contains the material related to exome sequencing analysis). Each topic have the following structure:
├── README.md
├── metadata.yaml
├── images
├── docker
│ ├── Dockerfile
├── slides
│ ├── index.html
├── tutorials
│ ├── tutorial1
│ │ ├── tutorial.md
│ │ ├── slides.html
│ │ ├── data-library.yaml
│ │ ├── workflows
│ │ │ ├── index.md
│ │ │ ├── workflow.ga
│ │ ├── tours
│ │ │ ├── tour.yaml
images
directory
The images
directory collects all images/pictures needed for the training materials related to the topic, i.e pictures for the slides or the tutorials.
Images shared between several topics are in the shared/images
directory at the root.
All images for the slides must be in images
directory. The images must be in good quality. The sources (svg
or other) of the images must also be added to the images
directory. We encourage you to use yEd to easily generate diagrams and Inkscape for any other images.
slides
directory
This directory contains introduction slide deck. There could be several slide decks, to cover different aspect. The slides are rendered using remark.js
but written in Markdown to facilitate collaboration.
tutorials
directory
This directory collects the tutorials related to the topic, one per subdirectory.
The tutorials are hands-on built for workshop and self-training, with description of the whole infrastructure needed to run the tutorial on any Galaxy instance (tools, data library, etc).
The templates for the tutorials are different from the other pages to help users to focus on the content of the tutorial. To improve the output of the tutorial, several metadata are mandatory for every tutorials, such as the requirements or the objectives of the tutorials. Boxes are also used to highlight some key points as the hands-on or the tips.
The content of each tutorial is generated with Jekyll from a Markdown file and some metadata (e.g. the requirements, the Zenodo link, the questions) defined inside the metadata of the related topic.
comment Contributing
Want to contribute to a tutorial? Check out our training materials about that.
Sometimes, an hands-on tutorial is not the most appropriate format for a tutorial and slides are better. The content must be then added in the slides
directory.
docker
directory
For each topic, a flavored Docker image must integrate the tools needed for the tutorials. The corresponding image must be based on official Galaxy Docker images.
The docker
image will also integrate the Galaxy tours available for each topics and the workflows.
Creating a new topic
Agenda
In this tutorial, we will deal with:
Defining the topic
When we structured the repository, we decided to use as topics the categories that are used in the ToolShed. The ToolShed assigns a category to each tool. Therefore, to decide where to put your tutorial, have a look at which ToolShed’s category the main tools in your tutorial belong. For example, this tutorial will rely on the NCBI Blast+ tool.
hands_on Hands-on: Defining the topic for the tutorial
- Search for NCBI Blast+ on the ToolShed
Check in which category it has been placed
question Questions
In which topic will you put the new tutorial?
solution Solution
If we search for NCBI Blast+ in the ToolShed, it is placed in 2 categories (bottom): “Next Gen Mappers”, and “Sequence Analysis”. We decided to put it in “Sequence analysis” because this is the most general one for this tutorial.
In this tutorial, we want to add a new topic called about “my-favorite-topic”.
Creating the skeleton for the topic
Once the topic name has been chosen, we can create it.
hands_on Hands-on: Create all the required files and folders structures automatically
- Open a terminal
Run (by adapting the information between the quotes)
$ planemo training_init \ --topic_name "my-favorite-topic" \ --topic_title "Test" \ --topic_target "use" \ --topic_summary "Summary of the topic"
- Check that a new directory has been generated in
topics
- Check that a YAML file with your topic name has been generated in
metadata
folderMake sure that Jekyll is running
comment Jekyll
Want to learn how to start Jekyll? Check out our tutorial to serve the website locally
- Check if the topic has been correctly added at http://localhost:4000/training-material/
Adapt the metadata for your topic
Several metadata are defined in metadata.yaml
file in your topic folder to :
name
: name of the topic (name of the folder)title
: title of the topic (the one displayed on the webpage)type
: target for the topic (‘use’, ‘admin-dev’, ‘instructors’)summary
: summary of the focus of the topicrequirements
: list of resources that the reader of the material should be familiar with before starting any tutorial in this topic:type
: the type of link (internal
orexternal
)
For internal, i.e. inside the Galaxy Training Material:
topic_name
: name of the topictutorials
: list of required tutorials inside of the topic
For external:
title
: title of the external resourcelink
: URL to the external resource
-
docker_image
: name of the Docker image for the topic If no Docker image exists for this topic, let this information empty subtopics
: for large topics, we can define subtopics and create multiple tutorial lists:subtopics: singlecell: title: "Single Cell Analysis" description: "These tutorials cover single cell analysis" small: title: "Small RNA" description: "These Tutorial"
tutorials can be assigned to subtopics by adding e.g.
subtopic: singlecell
to the tutorial metadata. An example of this subtopic division can be found in the admin sectionmaintainers
: GitHub username of people maintaining the topicgitter
: The name of the chatroom on Gitter, if enabled, it will be embedded on the topic and tutorial pages. Should be formatted like../..
, without thehttps://gitter.im
, e.g.galaxyproject/dev
hands_on Hands-on: Update the new topic to the website
- Open the
metadata.yaml
file in your topic folder- Fill the correct metadata of the topic
Make sure that Jekyll is running
comment Jekyll
Want to learn how to start Jekyll? Check out our tutorial to serve the website locally
- Check how it changes the local website
Conclusion
We just created a new topic. We can now fill it by creating new tutorials
keypoints Key points
A new topic can be easily added for new tutorials
Frequently Asked Questions
Have questions about this tutorial? Check out the FAQ page for the Contributing to the Galaxy Training Material topic to see if your question is listed there. If not, please ask your question on the GTN Gitter Channel or the Galaxy Help ForumFeedback
Did you use this material as an instructor? Feel free to give us feedback on how it went.
Citing this Tutorial
- Bérénice Batut, 2020 Including a new topic (Galaxy Training Materials). https://training.galaxyproject.org/archive/2021-07-01/topics/contributing/tutorials/create-new-topic/tutorial.html Online; accessed TODAY
- Batut et al., 2018 Community-Driven Data Analysis Training for Biology Cell Systems 10.1016/j.cels.2018.05.012
details BibTeX
@misc{contributing-create-new-topic, author = "Bérénice Batut", title = "Including a new topic (Galaxy Training Materials)", year = "2020", month = "01", day = "24" url = "\url{https://training.galaxyproject.org/archive/2021-07-01/topics/contributing/tutorials/create-new-topic/tutorial.html}", note = "[Online; accessed TODAY]" } @article{Batut_2018, doi = {10.1016/j.cels.2018.05.012}, url = {https://doi.org/10.1016%2Fj.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örn Grüning}, title = {Community-Driven Data Analysis Training for Biology}, journal = {Cell Systems} }
congratulations Congratulations on successfully completing this tutorial!
Developing GTN training material
This tutorial is part of a series to develop GTN training material, feel free to also look at:
- Overview of the Galaxy Training Material
- Adding auto-generated video to your slides
- Contributing with GitHub via command-line
- Contributing with GitHub via its interface
- Creating a new tutorial
- Creating content in Markdown
- Creating Interactive Galaxy Tours
- Creating Slides
- Generating PDF artefacts of the website
- Including a new topic
- Running the GTN website locally
- Running the GTN website online using GitPod
- Tools, Data, and Workflows for tutorials
- Updating diffs in admin training