Bygga system som gör används ofta för att skapa komplicerade arbetsflöden, t.ex. i bioinformatik. & nbsp; snakemake syftar till att minska komplexiteten i att skapa arbetsflöden genom att tillhandahålla en ren och modern domänspecifik specifikation språk (DSL) i python stil, tillsammans med en snabb och bekväm exekveringsmiljö.
Installation
- På Ubuntu 12.04, kan du installera Debians paket python3-snakemake finns i vår Launchpad förrådet.
- På andra system, behöver du en fungerande installation av Python> = 3.2. Beroende på ditt system, kan du sedan installera snakemake genom att utfärda antingen easy_install snakemake eller easy_install3 snakemake på kommandoraden. Om du inte har administratörs privilegier, ta en titt på argumentet --user av easy_install.
- Slutligen snakemake kan installeras manuellt genom att ladda ner källkoden arkivet från pypi.
Användning
Snakemake erbjuder en enkel DSL att beskriva arbetsflöden som skapar filer i flera efterföljande steg:
prover = ["01", "02"]
# Valfritt definiera en katalog där arbetet ska utföras.
workdir: "sökväg / till / workdir"
# Liknar göra, definiera dummy regler som fungerar som byggmålen.
härska alla:
& Nbsp; input: "diffexpr.tsv", ...
regera sammanfatta:
& Nbsp; input: "{prov} .mapped.bam" .format (prov = s) för si prover
& Nbsp; output: "diffexpr.tsv"
& Nbsp; kör:
& Nbsp; # ... ge viss python kod för att producera utdata från indatafilerna
& Nbsp; # t.ex.. Tillgång indatafiler efter index
& Nbsp; input [1]
& nbsp; # tillgång jokervärden
& Nbsp; wildcards.sample
& Nbsp; # enkelt köra skalkommandon automatiskt med din standardskal samtidigt ha direkt tillgång
& Nbsp; # till alla lokala och globala variabler via formatet minilanguage
& Nbsp; trådar = 6
& Nbsp; skal ("somecommand --threads {trådar} {input [0]} {utgång [0]}")
regera map_reads:
& Nbsp; # tilldela namn för in- och utgående filer
& Nbsp; input: läser = "{prov} .fastq", hg19 = "hg19.fasta"
& Nbsp; # märke utdatafiler vara skrivskyddad efter skapelsen
& Nbsp; output: mappas = skyddad ("{prov} .mapped.sai")
& Nbsp; # Valfritt definiera meddelanden som visas i stället för generisk regel beskrivning på genomförande av regeln:
& Nbsp; meddelande: "Mapping läser till {input.hg19}"
& nbsp; trådar: 8
& Nbsp; skal:
& Nbsp; # direkt ge skalkommandon (i en fler eller enda rad sträng) om inte behövs python syntax.
& Nbsp; # igen, globala och lokala variabler kan nås via formatet minilanguage.
& Nbsp; # Vidare antal trådar som används av regeln kan anges. Den snakemake schemaläggare ser till att regeln körs med det angivna antalet trådar om tillräckligt kärnor görs tillgängliga via -j kommandoraden alternativ.
& Nbsp; "" "
& Nbsp; bwa aln -t {trådar} {input.hg19} {input.reads}> {output.mapped}
& Nbsp; en del --Andra --command
& Nbsp; "" "
Givet en "Snakefile" med en sådan syntax, kan arbetsflödet exekveras (t.ex. med upp till 6 parallella processer) genom issueing:
& Nbsp; snakemake -j6 -s Snakefile
För mer information vänligen se Handledning
Funktioner :.
- Definiera arbetsflöden i en text sätt genom att skriva regler hur man skapar utdata filer från indatafiler på ett enkelt python baserad syntax. I motsats till GNU göra (som främst är ett byggsystem), medger snakemake en regel för att skapa flera utdatafiler.
- Snakemake beräknar automatiskt vilka regler måste genomföras för att skapa önskad effekt.
- Både skal baserade regler samt fullständiga python syntaxen i en regel stöds. Skalkommandon har direkt tillgång till alla lokala och globala python variabler.
- Liksom GNU gör, kan snakemake schema parallella regel avrättningar där så är möjligt. Vidare kan inter regel parallel kombineras med intra regel parallel (t.ex. trådar) och snakemake säkerställer att antalet använda kärnor inte överskrider det givna värdet.
- Filer kan markeras som tillfällig (dvs de kan tas bort när den inte behövs längre) eller skyddad (dvs de kommer att skrivskyddad efter skapelsen).
- In- och utgående filer kan innehålla flera namngivna wildcards.
- In- och utgående filer kan namnges så att ta itu med dem inne i regel blir praktiskt.
- En karta-minska liknande funktionalitet uppnås genom att använda lättlästa python listan förståelse syntax.
- Som en experimentell funktion snakemake kan köras på ett kluster genom att ange lämna kommandot (t.ex. qsub för Sun Grid Engine).
Krav :
- Python
Kommentarer hittades inte