snakemake

Software screenshot:
snakemake
Dettagli del software:
Versione: 2.5
Data di caricamento: 20 Feb 15
Sviluppatore: Johannes Koster
Licenza: Libero
Popolarità: 10

Rating: 4.0/5 (Total Votes: 1)

Costruire sistemi come make sono spesso utilizzati per creare flussi di lavoro complessi, ad esempio, in bioinformatica. & nbsp; snakemake mira a ridurre la complessità dei flussi di lavoro creando, fornendo un linguaggio pulito e moderno dominio specifico disciplinare (DSL) in stile pitone, insieme ad un ambiente di esecuzione veloce e confortevole.
Installazione
- Su Ubuntu 12.04, è possibile installare il pacchetto Debian python3-snakemake disponibile nel nostro repository launchpad.
- Su altri sistemi, è necessario un lavoro di installazione di Python> = 3.2. A seconda del sistema, è possibile installare snakemake mediante emissione sia easy_install snakemake o easy_install3 snakemake nella riga di comando. Se non si dispone di privilegi di amministratore, date un'occhiata al --user argomento easy_install.
- Infine, snakemake può essere installato manualmente scaricando l'archivio del codice sorgente da pypi.
Utilizzo
Snakemake offre una semplice DSL per descrivere i flussi di lavoro che creano i file in varie fasi successive:
campioni = ["01", "02"]
# Opzionalmente definire una directory in cui dovrebbe essere fatto il lavoro.
workdir: "path / to / workdir"
# Simile a fare, definire regole fittizi che agiscono come build targets.
regola tutto:
& Nbsp; ingresso: "diffexpr.tsv", ...
regola sintesi:
& Nbsp; ingresso: "{} campione .mapped.bam" .format (campione = s) per s in campioni
& Nbsp; uscita: "diffexpr.tsv"
& Nbsp; eseguire:
& Nbsp; # ... fornire codice python per produrre l'output dei file di input
& Nbsp; # Per es. file di input per l'accesso all'indice
& Nbsp; ingresso [1]
& nbsp; # valori accesso jolly
& Nbsp; wildcards.sample
& Nbsp; # facilmente eseguire comandi di shell utilizzando automaticamente la shell di default, pur avendo accesso diretto
& Nbsp; # per tutte le variabili locali e globali attraverso il formato minilinguaggio
& Nbsp; threads = 6
& Nbsp; shell ("--threads somecommand {discussioni} {ingresso [0]} {uscita [0]}")
regola map_reads:
& Nbsp; # assegnare i nomi per i file di input e di output
& Nbsp; ingresso: legge = "{} .fastq campione", hg19 = "hg19.fasta"
& Nbsp; # file di output marchio di essere dopo la creazione protetto da scrittura
& Nbsp; uscita: mappato = protetta ("{} .mapped.sai campione")
& Nbsp; # Opzionalmente definiscono i messaggi che vengono visualizzati, invece di descrizione della regola generica sulla esecuzione della regola:
& Nbsp; il messaggio: "Mappatura legge a {} input.hg19"
& nbsp; discussioni: 8
& Nbsp; shell:
& Nbsp; # fornisce direttamente comandi di shell (in una stringa singola o multi linea), se non è necessaria la sintassi Python.
& Nbsp; # di nuovo, le variabili globali e locali si può accedere tramite il formato minilinguaggio.
& Nbsp; # Inoltre, è possibile specificare il numero di thread utilizzati dalla regola. Lo scheduler snakemake assicura che la regola viene eseguita con il numero specificato di thread se abbastanza core sono resi disponibili tramite l'opzione riga di comando -j.
& Nbsp; "" "
& Nbsp; bwa aln -t {discussioni} {} {input.hg19 input.reads}> {output.mapped}
& Nbsp; alcuni other --command
& Nbsp; "" "
Dato un "Snakefile" con un tale sintassi, il flusso di lavoro può essere eseguito (ad esempio con un massimo di 6 processi paralleli) da redigere:
& Nbsp; snakemake -j6 -s Snakefile
Per maggiori informazioni si prega di consultare il tutorial

Caratteristiche :.

  • Definire flussi di lavoro in modo testuale scrivendo regole come creare uscita file da file di input in una sintassi basata semplice pitone. In contrasto con GNU fare (che è principalmente un sistema di compilazione), snakemake permette una regola di creare file di output multipli.
  • Snakemake calcola automaticamente che devono essere eseguite le regole per creare l'output desiderato.

  • Regole
  • Sia shell basate così come sintassi completa python all'interno di una regola è supportata. Comandi shell hanno accesso diretto a tutte le variabili python locali e globali.
  • Come GNU make, snakemake possibile pianificare le esecuzioni di regole parallele ove possibile. Inoltre, tra regola parallelizzazione può essere combinato con intra regola parallelizzazione (es thread) e snakemake assicura che il numero di core utilizzati non eccede il valore dato.
  • I file possono essere contrassegnati come temporanea (cioè possono essere cancellati una volta che non servono più) o protetti (vale a dire che saranno protetti in scrittura dopo la creazione).

  • File
  • ingresso e di uscita può contenere più caratteri jolly di nome.

  • File
  • ingresso e di uscita possono essere denominati in modo che li affrontare dentro la regola diventa a portata di mano.
  • Una mappa-reduce come funzionalità sono realizzati usando il facile lettura python sintassi di lista.
  • Come una funzione sperimentale, snakemake può essere eseguito su un cluster specificando il comando submit (es qsub per Sun Grid Engine).

Requisiti :

  • Python

Programmi simili

CWC Simulator
CWC Simulator

11 May 15

MACS2
MACS2

20 Feb 15

Adun
Adun

3 Jun 15

Altri software di sviluppo Johannes Koster

TRMiner
TRMiner

14 Apr 15

Commenti a snakemake

I commenti non trovato
Aggiungi commento
Accendere le immagini!