Enregistrement des pipelines
Les pipelines sont enregistrés au démarrage du serveur IRIDA Next. Les redémarrages futurs du serveur n'enregistreront que les nouveaux pipelines ajoutés au fichier de configuration, et les fichiers de schéma pour un pipeline particulier seront mis à jour si des versions plus récentes sont disponibles dans le dépôt.
Dépôt de pipeline
Actuellement, seuls les pipelines Nextflow sont pris en charge et ils doivent avoir un dépôt GitHub. Chaque pipeline doit avoir un fichier nextflow_schema.json
au niveau supérieur du dépôt, et un fichier schema_input.json
sous un répertoire assets
dans le dépôt.
Configuration
Configuration
Le fichier de configuration pour enregistrer les pipelines est au format json
et stocké dans le répertoire config/pipelines/
avec le nom pipelines.json
.
Ce fichier pipelines.json
devrait être au format ci-dessous et peut inclure les éléments suivants :
- URL (Requis) du dépôt GitHub du pipeline
- name (Requis) du pipeline
- description (Requise) du pipeline
- versions (Requises) du pipeline qui devraient être disponibles pour le lancement.
name
: (Requis) fait référence au drapeau-r
utilisé par nextflow.automatable
: (Optionnel)true
oufalse
pour spécifier si le pipeline peut être automatisé.executable
: (Optionnel)true
oufalse
pour spécifier si le pipeline peut être exécuté. Lorsqu'il est défini surfalse
, le pipeline ne sera pas répertorié à l'utilisateur.
- overrides (Optionnel) pour le pipeline
Exemple
[
{
"url": "https://github.com/phac-nml/iridanextexample",
"name": "phac-nml/iridanextexample",
"description": "Pipeline d'exemple IRIDA Next",
"overrides": {
# VOIR SECTION OVERRIDE CI-DESSOUS
},
"versions": [
{
"name": "1.0.2",
"automatable": true,
"executable": true
},
{
"name": "1.0.1",
"automatable": true,
"executable": false
},
{
"name": "1.0.0",
"automatable": false,
"executable": true
}
]
},
{
........
}
]
Remplacements de schéma
La section Remplacements peut être utilisée pour modifier n'importe quoi dans le schéma du pipeline nextflow d'origine. Tout ce qui se trouve dans "overrides": {<json data>}
remplacera le schéma d'origine par <json data>
en commençant au niveau le plus élevé.
Dans l'exemple ci-dessous, nous remplacerons les options de connexion à la base de données afin de pouvoir connecter le pipeline à notre chemin de base de données personnalisé. Notez que seuls les champs remplacés doivent être fournis, car tout le reste fourni par le schéma reste le même.
Exemple de schéma
{
"$schema": "http://example.com/schema",
"$id": "https://example.com/nextflow_schema.json",
"title": "Mon schéma d'exemple",
"description": "Schéma d'exemple : pour démontrer les remplacements",
"type": "object",
"definitions": {
"input_output_options": {
"title": "Options d'entrée/sortie",
"type": "object",
"description": "Définir quelles données utiliser avec le pipeline.",
"required": ["input", "outdir"],
"properties": {
"input": {
...
},
"outdir": {
...
},
"database": {
"type": "string",
"description": "Base de données Kraken",
"enum": [
[
"bd_par_defaut",
"CHEMIN_VERS_BD"
],
[
"bd_organisation",
"CHEMIN_VERS_BD_ORG"
]
]
}
}
},
"plus_options": {
...
}
},
"plus_options": {
...
}
}
Exemple de remplacement
[
{
"url": "https://github.com/phac-nml/iridanextexample",
"name": "phac-nml/iridanextexample",
"description": "Pipeline d'exemple IRIDA Next",
"overrides": {
"definitions": {
"input_output_options": {
"properties": {
"database": {
"enum": [
[
"bd_personnalisee",
"CHEMIN_VERS_BD_PERSONNALISEE"
],
[
"bd_personnalisee_2",
"CHEMIN_VERS_BD_PERSONNALISEE_2"
]
]
}
}
}
}
},
"versions": [...]
},
{
........
}
]
Résultat effectif
{
"$schema": "http://example.com/schema",
"$id": "https://example.com/nextflow_schema.json",
"title": "Mon schéma d'exemple",
"description": "Schéma d'exemple : pour démontrer les remplacements",
"type": "object",
"definitions": {
"input_output_options": {
"title": "Options d'entrée/sortie",
"type": "object",
"description": "Définir quelles données utiliser avec le pipeline.",
"required": ["input", "outdir"],
"properties": {
"input": {
...
},
"outdir": {
...
},
"database": {
"type": "string",
"description": "Base de données Kraken",
"enum": [
[
"bd_personnalisee",
"CHEMIN_VERS_BD_PERSONNALISEE"
],
[
"bd_personnalisee_2",
"CHEMIN_VERS_BD_PERSONNALISEE_2"
]
]
}
}
},
"plus_options": {
...
}
},
"plus_options": {
...
}
}