Construire des systèmes comme marque sont fréquemment utilisées pour créer des workflows complexes, par exemple en bioinformatique. & nbsp; snakemake vise à réduire la complexité de la création de flux de travail en fournissant un domaine spécifique langage de spécification propre et moderne (DSL) dans le style python, avec un environnement d'exécution rapide et confortable.
Installation
- Sur Ubuntu 12.04, vous pouvez installer le paquet Debian python3-snakemake disponibles dans notre garde-bord.
- Sur les autres systèmes, vous avez besoin d'une installation de travail de Python> = 3.2. Selon votre système, vous pouvez installer snakemake par l'émission soit easy_install snakemake ou easy_install3 snakemake dans la ligne de commande. Si vous ne avez pas les droits d'administrateur, jetez un oeil à l'argument de easy_install --user.
- Enfin, snakemake peut être installé manuellement en téléchargeant l'archive du code source de pypi.
Utilisation
Snakemake propose une connexion DSL simple pour décrire les flux de travail qui créent des fichiers en plusieurs étapes ultérieures:
échantillons = ["01", "02"]
# Définir éventuellement un répertoire où le travail doit être fait.
workdir: "path / to / workdir"
# Semblable à faire, définir des règles factices qui agissent comme des cibles de construction.
gouverner tous:
& Nbsp; entrée: "diffexpr.tsv", ...
prononcer résument:
& Nbsp; entrée: "{} échantillon .mapped.bam" .format (échantillon = s) pour s dans des échantillons
& Nbsp; sortie: "diffexpr.tsv"
& Nbsp; de fonctionner:
& Nbsp; # ... fournir un certain code python pour produire la sortie à partir des fichiers d'entrée
& Nbsp; # e.g. fichiers d'entrée d'accès par index
& Nbsp; entrée [1]
& nbsp; # Les valeurs accès génériques
& Nbsp; wildcards.sample
& Nbsp; # exécuter facilement des commandes shell en utilisant automatiquement votre shell par défaut tout en ayant un accès direct
& Nbsp; # pour toutes les variables locales et globales via le format minilanguage
& Nbsp; threads = 6
& Nbsp; shell ("--threads de unecommandequelconque {} {discussions entrée [0]} {sortie [0]}")
prononcer map_reads:
& Nbsp; # attribuer des noms de fichiers d'entrée et de sortie
& Nbsp; entrée: lit = "{} échantillon .fastq", hg19 = "hg19.fasta"
& Nbsp; N ° fichiers de sortie de la marque à être protégé en écriture après la création
& Nbsp; sortie: mappé = protégée ("{} échantillon .mapped.sai")
& Nbsp; # Vous pouvez éventuellement définir les messages qui sont affichés à la place de la description générique de la règle sur l'exécution de la règle:
& Nbsp; un message: "Cartographie lit à {} input.hg19"
& nbsp; les discussions: 8
& Nbsp; shell:
& Nbsp; # fournir directement des commandes shell (dans une chaîne de ligne mono ou multi) si la syntaxe python ne est pas nécessaire.
& Nbsp; # nouveau, variables globales et locales peut être consulté via le format minilanguage.
& Nbsp; # En outre, nombre de fils utilisés par la règle peut être spécifiée. Le planificateur de snakemake assure que la règle est exécutée avec le nombre de threads si suffisamment de noyaux sont disponibles via l'option -j de ligne de commande.
& Nbsp; "" "
& Nbsp; bwa aln -t {} {discussions input.hg19} {} input.reads> {} output.mapped
& Nbsp; un certain other --command
& Nbsp; "" "
Étant donné un "Snakefile" avec une telle syntaxe, le workflow peut être exécutée (par exemple en utilisant jusqu'à six processus parallèles) par l'élaboration des cahiers:
& Nbsp; snakemake -j6 -s Snakefile
Pour plus de détails se il vous plaît voir le Tutorial
Caractéristiques :.
- Définir workflows de manière textuelle en écrivant règles comment créer une sortie à partir de fichiers d'entrée dans une syntaxe simple basée python. Contrairement à GNU make (qui est principalement un système de construction), snakemake permet une règle pour créer plusieurs fichiers de sortie.
- Snakemake calcule automatiquement règles qui doivent être exécutées pour créer la sortie désirée.
- Les deux coquilles ainsi que la syntaxe complète de python dans une règle est pris en charge. Commandes Shell ont un accès direct à toutes les variables de python locaux et mondiaux.
- Comme GNU make, snakemake peut planifier les exécutions de règles parallèles si possible. En outre, entre la parallélisation de la règle peut être combiné avec intra parallélisation de la règle (par exemple, les discussions) et snakemake assure que le nombre de cœurs utilisés ne excède pas la valeur donnée.
- Les fichiers peuvent être marqué comme temporaire (ils peuvent être supprimés une fois ne est plus nécessaire) ou protégés (ce est à dire qu'ils seront protégés en écriture après la création).
- entrée et de sortie peuvent contenir plusieurs jokers nommés.
- entrée et de sortie peuvent être nommés de telle sorte que les traiter à l'intérieur de la règle devient utile.
- Une carte-réduire comme la fonctionnalité est accompli en utilisant la syntaxe facile à lire liste de compréhension de python.
- Comme une fonctionnalité expérimentale, snakemake peut exécuter sur un cluster en spécifiant la commande submit (par exemple qsub pour Sun Grid Engine).
Règles basées
Fichiers
Fichiers
Exigences :
- Python
Commentaires non trouvées