Bumuo ng mga sistema tulad ng make ay madalas na ginagamit upang lumikha ng kumplikadong mga daloy ng trabaho, hal sa Biyoimpormatika. & nbsp; snakemake ay naglalayong bawasan ang pagiging kumplikado ng paglikha ng mga daloy ng trabaho sa pamamagitan ng pagbibigay ng malinis at modernong domain tiyak na wika pagtutukoy (DSL) sa estilo python, kasama ang mabilis at kumportableng kapaligiran ng pagpapatupad.
Pag-install
- Sa Ubuntu 12.04, maaari mong i-install ang package Debian python3-snakemake na makukuha sa aming launchpad imbakan.
- Sa iba pang mga sistema, kailangan mo ng trabaho sa pag-install ng Python> = 3.2. Depende sa iyong system, maaari mo nang i-install snakemake sa pamamagitan ng nagbigay ng alinman sa easy_install snakemake o easy_install3 snakemake sa linya ng command. Kung wala kang priviledges administrator, magkaroon ng isang pagtingin sa argumento --user ng easy_install.
- Sa wakas, snakemake maaari nang manu-mano-install sa pamamagitan ng pag-download ng archive ng source code mula pypi.
Paggamit
Snakemake-aalok ito ng mga simpleng DSL upang ilarawan ang mga daloy ng trabaho na lumikha ng mga file sa ilang mga kasunod na hakbang na ito:
sampol = ["01", "02"]
# Opsyonal na tukuyin ang isang direktoryo na kung saan ay dapat na tapos na ang trabaho.
workdir: "path / sa / workdir"
# Katulad upang gumawa, tukuyin ang dummy panuntunan na gumaganap bilang mga target build.
mamuno sa lahat:
& Nbsp; input: "diffexpr.tsv", ...
mamuno Ibuod:
& Nbsp; input: "{} sample .mapped.bam" .format (sample = s) para sa mga nasa sampol
& Nbsp; output: "diffexpr.tsv"
& Nbsp; tumakbo:
& Nbsp; # ... magbigay ng ilang python code upang makagawa ng output mula sa input file
& Nbsp; # hal. -access input file sa pamamagitan ng index
& Nbsp; input [1]
& Nbsp; # access wildcard halaga
& Nbsp; wildcards.sample
& Nbsp; # madaling patakbuhin ang shell command awtomatikong gamit ang iyong default na shell habang pagkakaroon ng direktang pag-access
& Nbsp; # sa lahat ng mga lokal at global variable sa pamamagitan ng format minilanguage
& Nbsp; mga thread = 6
& Nbsp; shell ("somecommand --threads {thread} {input [0]} {output [0]}")
mamuno map_reads:
& Nbsp; # magtalaga ng mga pangalan para sa input at output file
& Nbsp; input: bumabasa = "{sample} .fastq", hg19 = "hg19.fasta"
& Nbsp; # marka output file na write-protect pagkatapos ng paglikha
& Nbsp; output: nama-map = protektado ("{sample} .mapped.sai")
& Nbsp; # Opsyonal na natukoy ng mga mensahe na ipinapakita sa halip ng generic na panuntunan paglalarawan sa pagpapatupad ng panuntunan:
& Nbsp; mensaheng ito: "Pagma-map ng bumabasa sa {input.hg19}"
& Nbsp; mga thread: 8
& Nbsp; shell:
& Nbsp; # direkta magbigay ng shell command (sa isang multi o single line string) kung python syntax ay hindi kinakailangan.
& Nbsp; # muli, sa pandaigdigan at lokal na mga variable maaaring ma-access sa pamamagitan ng format minilanguage.
& Nbsp; # Dagdag dito, bilang ng mga thread na ginamit ng mga panuntunan ay maaaring tinukoy. Ang snakemake scheduler ay nagsisiguro na ang panuntunan ay tumakbo gamit ang tinukoy na bilang ng mga thread kung sapat na core ay ginawang magagamit sa pamamagitan ng -j pagpipilian sa linya ng command.
& Nbsp; "" "
& Nbsp; bwa aln -t {thread} {input.hg19} {} input.reads> {output.mapped}
& Nbsp; ilang --other --command
& Nbsp; "" "
Bibigyan ng "Snakefile" na may tulad na isang syntax, ang daloy ng trabaho ay maaaring isagawa (hal gamit hanggang 6 na parallel na proseso) sa pamamagitan ng issueing:
& Nbsp; snakemake -j6 -s Snakefile
Para sa higit pang mga detalye mangyaring tingnan ang Tutorial
Mga Tampok :.
- Tukuyin ang mga daloy ng trabaho sa isang tekstuwal paraan sa pamamagitan ng pagsusulat panuntunan kung paano lumikha ng output mga file mula sa input file sa isang simpleng batay python syntax. Sa kaibahan upang gumawa ng GNU (na ay pangunahing isang build ng system), ay nagbibigay-daan snakemake ng panuntunan upang lumikha ng maramihang mga file na output.
- Snakemake awtomatikong kinakalkula ng mga panuntunan na kailangan upang ipatupad upang likhain ang ninanais na output.
- Ang parehong shell batay panuntunan pati na rin ang buong python syntax sa loob ng isang panuntunan ay suportado. Shell command may diretsong access sa lahat ng mga lokal at global variable python.
- Tulad ng GNU gumawa, maaari snakemake-schedule parallel executions panuntunan kung saan posible. Dagdag dito, ilibing parallelization panuntunan ay maaaring isama sa intra parallelization panuntunan (hal thread) at snakemake Sinisiguro nito na ang bilang ng mga ginamit na mga core ay hindi hihigit sa ibinigay na halaga.
- File maaaring mamarkahan bilang pansamantalang (ibig sabihin, matatanggal ang mga ito sa sandaling hindi kailangan ng anumang higit pa) o protektado (ibig sabihin ang mga ito ay protektado write pagkatapos ng paglikha).
- Input at output file ay maaaring maglaman ng maramihang mga wildcard na may pangalang.
- Input at output file ay maaaring may pangalang upang ang pagtugon sa mga ito sa loob ng panuntunan ay magiging madaling-gamiting.
- May mapa-bawasan tulad ng pag-andar ay natapos sa pamamagitan ng paggamit ng madaling basahin python listahan intindi syntax.
- Bilang isang pang-eksperimentong tampok na ito, snakemake maaaring tumakbo sa isang kumpol sa pamamagitan ng pagtukoy ng isumite ang utos (hal qsub para sa Sun Grid Engine).
Mga Kinakailangan :
- Python
Mga Komento hindi natagpuan