Membangun sistem seperti make sering digunakan untuk membuat alur kerja yang rumit, misalnya dalam bioinformatika & nbsp;. snakemake bertujuan untuk mengurangi kompleksitas menciptakan alur kerja dengan menyediakan bersih dan modern domain yang spesifik bahasa spesifikasi (DSL) dalam gaya python, bersama-sama dengan lingkungan eksekusi yang cepat dan nyaman.
Instalasi
- Pada Ubuntu 12.04, Anda dapat menginstal paket Debian python3-snakemake tersedia dalam repositori launchpad kami.
- Pada sistem lain, Anda memerlukan instalasi kerja Python> = 3.2. Tergantung pada sistem Anda, Anda kemudian dapat menginstal snakemake dengan mengeluarkan baik easy_install snakemake atau easy_install3 snakemake pada command line. Jika Anda tidak memiliki hak istimewa administrator, kita lihat di --user argumen easy_install.
- Akhirnya, snakemake dapat diinstal secara manual dengan men-download kode sumber arsip dari pypi.
Penggunaan
Snakemake menawarkan DSL sederhana untuk menggambarkan alur kerja yang membuat file dalam beberapa langkah berikutnya:
sampel = ["01", "02"]
# Opsional menentukan direktori dimana pekerjaan harus dilakukan.
workdir: "path / ke / workdir"
# Sama untuk membuat, menentukan aturan dummy yang bertindak sebagai membangun target.
memerintah semua:
& Nbsp; masukan: "diffexpr.tsv", ...
memerintah meringkas:
& Nbsp; masukan: "{} sampel .mapped.bam" .format (sampel = s) untuk dalam sampel
& Nbsp; Output: "diffexpr.tsv"
& Nbsp; jalankan:
& Nbsp; # ... memberikan beberapa kode python untuk menghasilkan output dari input file
& Nbsp; # mis. Akses masukan file dengan indeks
& Nbsp; input [1]
& Nbsp; # nilai akses wildcard
& Nbsp; wildcards.sample
& Nbsp; # dengan mudah menjalankan perintah shell secara otomatis menggunakan shell default Anda sementara memiliki akses langsung
& Nbsp; # untuk semua variabel lokal dan global melalui format minilanguage
& Nbsp; benang = 6
& Nbsp; shell ("--threads somecommand {} {benang masukan [0]} {keluaran [0]}")
memerintah map_reads:
& Nbsp; # menetapkan nama untuk input dan output file
& Nbsp; masukan: membaca = "{} sampel .fastq", hg19 = "hg19.fasta"
& Nbsp; # file mark keluaran menjadi write-protected setelah penciptaan
& Nbsp; Output: dipetakan = dilindungi ("{} sampel .mapped.sai")
& Nbsp; # Opsional menentukan pesan yang ditampilkan, bukan deskripsi aturan umum pada pelaksanaan aturan:
& Nbsp; pesan: "Pemetaan membaca untuk {} input.hg19"
& Nbsp; benang: 8
& Nbsp; shell:
& Nbsp; # langsung memberikan perintah shell (dalam string multi-atau satu baris) jika sintaks python tidak diperlukan.
& Nbsp; # lagi, variabel global dan lokal dapat diakses melalui format minilanguage.
& Nbsp; # Selanjutnya, jumlah benang yang digunakan oleh aturan dapat ditentukan. The snakemake scheduler memastikan bahwa aturan ini dijalankan dengan jumlah tertentu benang jika cukup core yang dibuat tersedia melalui opsi baris perintah j.
& Nbsp; "" "
& Nbsp; BWA aln t {} {benang input.hg19} {} input.reads> {} output.mapped
& Nbsp; beberapa --Lain --command
& Nbsp; "" "
Mengingat "Snakefile" dengan sintaks seperti itu, alur kerja dapat dieksekusi (misalnya menggunakan hingga 6 proses paralel) dengan issueing:
& Nbsp; snakemake -j6 -s Snakefile
Untuk lebih jelasnya silakan lihat Tutorial
Fitur :.
- Tentukan alur kerja dengan cara tekstual dengan menulis aturan bagaimana membuat output file dari file masukan dalam sintaks python sederhana berbasis. Berbeda dengan GNU membuat (yang terutama membangun sistem), snakemake memungkinkan aturan untuk membuat beberapa file output.
- Snakemake otomatis menghitung yang aturan harus dilaksanakan untuk menciptakan output yang diinginkan.
- Kedua shell serta sintaks python penuh dalam aturan didukung. Perintah shell memiliki akses langsung ke semua variabel python lokal dan global.
- Seperti GNU make, snakemake dapat menjadwalkan aturan eksekusi paralel di mana mungkin. Selanjutnya, antar aturan paralelisasi dapat dikombinasikan dengan intra aturan paralelisasi (misalnya benang) dan snakemake memastikan bahwa jumlah core yang digunakan tidak melebihi nilai yang diberikan.
- File dapat ditandai sebagai sementara (yaitu mereka dapat dihapus setelah tidak diperlukan lagi) atau dilindungi (yaitu mereka akan menulis dilindungi setelah penciptaan).
- Input dan output file dapat berisi beberapa bernama wildcard.
- Input dan output file dapat diberi nama sehingga menyapa mereka dalam aturan menjadi berguna.
- Sebuah peta-mengurangi seperti fungsi dilakukan dengan menggunakan mudah dibaca python sintaks pemahaman daftar.
- Sebagai fitur eksperimental, snakemake dapat berjalan di cluster dengan menetapkan mengirimkan perintah (misalnya qsub untuk Sun Grid Mesin).
Aturan berdasarkan
Persyaratan :
- Python
Komentar tidak ditemukan