sisteme ca mărci Construieste sunt frecvent utilizate pentru a crea fluxuri de lucru complicate, de exemplu, în bioinformatica & nbsp;. snakemake are scopul de a reduce complexitatea de a crea fluxuri de lucru prin furnizarea de un domeniu limbaj curat si modern specific specificație (DSL) în stil piton, împreună cu un mediu de executie rapid și confortabil.
Instalare
- Pe Ubuntu 12.04, puteți instala pachetul Debian python3-snakemake disponibil în depozit noastră launchpad.
- Pe alte sisteme, ai nevoie de o instalație de lucru de Python> = 3.2. În funcție de sistemul dvs., puteți instala apoi snakemake prin emiterea fie easy_install snakemake sau easy_install3 snakemake în linia de comandă. Dacă nu aveți privilegii de administrator, au o privire la --user argument de easy_install.
- În cele din urmă, snakemake poate fi instalat manual prin descărcarea arhivei de cod sursă de pypi.
Utilizare
Snakemake oferă un DSL simplu pentru a descrie fluxuri de lucru care creează fișiere în mai multe etape ulterioare:
mostre = ["01", "02"]
# Defini opțional un director în care ar trebui să se facă de lucru.
workdir: "calea / spre / workdir"
# Similare pentru a face, pentru a defini reguli marionetă care acționează ca obiective construi.
se pronunțe toate:
& Nbsp; de intrare: "diffexpr.tsv", ...
se pronunțe rezuma:
& Nbsp; de intrare: "{probă} .mapped.bam" .format (probă = S) pentru s în probe
& Nbsp; de ieșire: "diffexpr.tsv"
& Nbsp; rulați:
& Nbsp; # ... oferi un cod piton pentru a produce ieșirea din fișierele de intrare
& Nbsp; # ex. fișierele de intrare de acces de index
& Nbsp; intrare [1]
& nbsp; # valori acces wildcard
& Nbsp; wildcards.sample
& Nbsp; # rula cu ușurință comenzi shell automat cu ajutorul shell implicit în timp ce avand acces direct
& Nbsp; # la toate variabilele locale si globale prin intermediul minilanguage format
& Nbsp; fire = 6
& Nbsp; shell ("--threads somecommand {fire} {intrare [0]} {ieșire [0]}")
se pronunțe map_reads:
& Nbsp; # atribui denumiri pentru intrare și de ieșire fișiere
& Nbsp; de intrare: citește = "{probă} .fastq", hg19 = "hg19.fasta"
& Nbsp; # fișiere de ieșire marcă a fi după crearea protejat la scriere
& Nbsp; ieșire: mapate = protejat ("{probă} .mapped.sai")
& Nbsp; # defini în mod opțional mesajele care sunt afișate în loc de generic descriere norme privind executarea regulii:
& Nbsp; mesaj: "Mapping citește {} input.hg19"
& nbsp; fire: 8
& Nbsp; coajă:
& Nbsp; # furniza direct comenzi shell (într-un șir linie cu mai multe sau singur), în cazul în care nu este nevoie de sintaxă piton.
& Nbsp; # din nou, variabilele globale și locale pot fi accesate prin intermediul minilanguage format.
& Nbsp; # Mai mult, numărul de fire utilizate de regula pot fi specificate. Snakemake Programatorul asigură că regula este condus cu numărul specificat de fire, dacă suficient de miezuri sunt puse la dispoziție prin intermediul -j opțiunea de linie de comandă.
& Nbsp; "" "
& Nbsp; BWA ALN -t {fire} {input.hg19} {input.reads}> {output.mapped}
& Nbsp; unele --Alte --command
& Nbsp; "" "
Având în vedere o "Snakefile" cu un astfel de sintaxă, fluxul de lucru poate fi executată (de exemplu, folosind până la 6 procese paralele) prin issueing:
& Nbsp; snakemake -j6 -s Snakefile
Pentru mai multe detalii vă rugăm să consultați Tutorial
Caracteristici :.
- Definiți fluxurile de lucru într-un mod textual de normele scris cum de a crea ieșire fișiere din fișiere de intrare într-o sintaxă simplă, bazată piton. Spre deosebire de GNU face (care este în primul rând un sistem construi), snakemake permite o regulă pentru a crea mai multe fișiere de ieșire.
- Snakemake calculează automat care trebuie executate reguli pentru a crea rezultatul dorit.
- Atât de coajă, precum și sintaxă complet piton în interiorul o regulă este acceptat. Comenzi Shell au acces direct la toate variabilele locale si globale Python.
- Ca GNU face, snakemake pot programa execuții regulă paralele acolo unde este posibil. Mai mult, altele paralelizare regulă poate fi combinat cu intra paralelizare normă (de exemplu, fire) și snakemake asigură că numărul de nuclee utilizate nu depășește valoarea dată.
- Fișierele pot fi marcate ca temporar (de exemplu, ele pot fi șterse dată nu mai este necesar) sau protejat (de exemplu, acestea vor fi protejat la scriere după creație).
- intrare și de ieșire fișiere pot conține mai multe wildcard cu numele de.
- intrare și de ieșire fișierele pot fi numite astfel încât abordarea lor în interiorul statului devine la îndemână.
- O hartă-reduce ca funcționalitate este realizată folosind ușor de citit piton sintaxă listă înțelegere.
- Ca o caracteristică experimental, snakemake poate rula pe un cluster prin specificarea comanda prezenta (de exemplu, qsub pentru Sun Grid Engine).
Reguli bazate
Cerințe :
- Python
Comentariile nu a fost găsit