J'essaie de créer un pipeline avec Snakemake, mais je n'arrive pas à lier les fichier config.yaml et env.yaml à mon script snakemake, tous trois dans le même dossier.
Bonjour,
pour utiliser conda, il faut ajouter dans tes règles
conda:
"env.yaml"
et mettre l'option --use-conda dans ta commande snakemake.
Après tu as un soucis dans tes règles dans la définition de tes échantillons. Dans ta règle finale il faut que tu utilises expand() pour lister les échantillons. Et dans ta règle bwa_map, utiliser une wildcard {sample} à la place de config[samples].
Depuis le temps, j'ai modifié le code qui maintenant marche, mais en utilisant des expand() au lieu des wildcard{} dans les règles. Quelle est la différence ?
Aussi, je voudrai utiliser des boucles for (pour traiter plusieurs fichiers et les merger), comment je pourrai faire ?
Bonjour,
difficile de répondre sans un exemple précis. Mais on n'utilise pas de boucles for dans un script snakemake. Avant de te lancer, il faut avoir compris ce que sont les wildcards. C'est ça qui te sert à faire une action sur chacun de tes échantillons. expand() sert à appliquer une commande unique à une liste de fichiers, par exemple pour merger des fichiers. Tu peux suivre différents tutos pour te former : https://snakemake.readthedocs.io/en/stable/tutorial/tutorial.html https://ifb-elixirfr.gitlab.io/cluster/doc/tutorials/snakemake/#0
Bonne journée!