Le langage de description du workflow (WDL) est une norme ouverte pour décrire les workflows de traitement des données avec une syntaxe lisible par l'homme et écrite. WDL rend simple à définir les tâches d'analyse, à les connecter ensemble dans les flux de travail et à paralléliser leur exécution. Le langage s'efforce d'être accessible et compréhensible pour toutes sortes d'utilisateurs, y compris les programmeurs, les analystes et les opérateurs d'un système de production. Le langage permet d'exprimer des modèles communs, tels que le spat-gather et l'exécution conditionnelle, à exprimer. WDL est conçu pour la portabilité, et il existe plusieurs implémentations à choisir dans une variété d'environnements, y compris les systèmes HPC et les plates-formes cloud.
Le versioning WDL suit les conventions de version sémantique.
La langue WDL a une version à deux numéros (par exemple, 1.2
). Une augmentation du numéro de version mineur (deuxième) (par exemple, 1.1
à 1.2
) indique l'ajout de fonctions ou de modifications non révolutionnaires des fonctions de langue ou de bibliothèque standard. Une augmentation du (premier) numéro de version (par exemple, 1.0
à 2.0
) indique que des changements de rupture ont été apportés.
La spécification WDL a une version à trois numéros (par exemple, 1.2.0
). La version de spécification suit la version linguistique, mais il peut également y avoir des versions de correctifs (indiquées par une modification du correctif, ou le troisième numéro de version) qui inclut des correctifs pour les fautes de frappe, des exemples supplémentaires ou des clarifications non révolutionnaires du langage ambigu.
La spécification WDL contient toutes les informations pertinentes pour les utilisateurs et les développeurs, y compris ceux qui souhaitent implémenter un moteur d'exécution. Ce projet GitHub utilise la branche pour la version actuelle de la spécification comme branche principale, vous verrez donc toujours la version actuelle de la spécification tant que vous visitez l'URL racine de ce projet. Les utilisateurs sont fortement encouragés à utiliser la version actuelle de la spécification, sauf si nécessaire.
Cette branche est destinée à la version 1.2 de la spécification du langage WDL. Tout le développement de nouvelles fonctionnalités non révolutionnaires devrait être effectué contre cette branche.
Les versions précédentes de la spécification peuvent être trouvées ici:
Il existe un certain nombre de versions provoquées qui correspondent aux premiers efforts pour créer WDL. Bien qu'il s'agisse de spécifications fonctionnelles, elles ne doivent pas être considérées comme une fonctionnalité complète et contiennent de nombreux bogues et irrégularités.
La prochaine version principale de la spécification est 2.0. Tout le développement de nouvelles fonctionnalités de rupture doit être effectué contre cette branche.
La communauté WDL dépend de votre implication pour prospérer. Vous êtes encouragé à poser des questions, à aider les autres utilisateurs et à faire des contributions où vous le pouvez. Les interactions se produisent principalement sur le github et le mou. La communauté WDL dispose également d'un blog officiel où des annonces sont faites.
#support
.Les collections suivantes sont des collections de flux de travail WDL open source. La tâche ou le flux de travail WDL dont vous avez besoin peut déjà être disponible dans l'un de ces référentiels, ou vous pouvez trouver un flux de travail similaire et le personnaliser à vos besoins.
WDL n'a pas de mise en œuvre officielle. Des tiers sont invoqués pour fournir des logiciels installables ou des plates-formes hébergées qui interprètent et exécutent des flux de travail et des tâches WDL. Bien que WDL n'ait pas encore de programme de conformité officiel ou de processus de certification, les implémentateurs devraient concevoir leurs outils en fonction de la spécification afin de maximiser la portabilité des workflows entre les implémentations. Néanmoins, les implémenteurs peuvent fournir des fonctionnalités facultatives supplémentaires spécifiques. Veuillez consulter la documentation associée à chaque outil / plate-forme pour des informations sur les options d'exécution et la prise en charge disponibles.
Mise en œuvre | Nécessite une installation | Exécution locale | HPC | Nuage |
---|---|---|---|---|
AWS Healthomics | Non | Non | Non | AWS |
Cromwell * | Oui | Oui | Beaucoup | AWS Batch, Azure, GCP |
dxcompuler | Oui | Non | Non | Dnanexus |
Miniwdl | Oui | Oui | Slurm | Lot AWS |
Terra | Non | Non | Non | Azure, GCP |
* Voir également WDL Runner, un script pour le lancement de WDL Workflows sur GCP en utilisant Cromwell
IDE | Outil |
---|---|
Emacs | poly-wdl |
Emacs | mode wdl |
Brains de jet | Winstanly |
Sublime | Surligneur de syntaxe WDL |
Vim | vim-wdl |
Code Visual Studio | Surligneur de syntaxe WDL |
WDL ne progresse que par les contributions communautaires. Bien que la participation à des discussions et que la soumission des problèmes soit d'excellents moyens de s'impliquer, une aide est également nécessaire pour mettre en œuvre des modifications apportées à la spécification. Pour plus d'informations sur la façon dont vous pouvez contribuer, veuillez lire le guide de contribution.
Les demandes de traction soumises sont soumises au processus RFC. Veuillez vous réviser et vous familiariser avec le processus si vous souhaitez voir les modifications soumises à la spécification.
La spécification WDL est entièrement axée sur la communauté; Cependant, il est supervisé par un comité de gouvernance. Si vous êtes intéressé à participer à la gouvernance WDL, veuillez vous joindre au Slack et publier un message dans la chaîne #general
.