Dette er den typiske jobben for snakemake.
Forutsatt at du har en fil per replikat, for eksempel T9 / Infected / Rep1 / Rep1.fastq. gz
, kan du klargjøre en fil du kaller Snakefile
med følgende innhold:
timepoints = list (rekkevidde (10)) betingelser = ["kontroll", "infisert"] replikater = [1, 2, 3] regel alle: input: expand ("T {time} / {cond} / Rep {rep} / Rep { rep} _fastqc.html ", time = tidspunkter, cond = betingelser, rep = replikater) regel do_fastqc: input: fastq =" T {time} / {cond} / Rep {rep} / Rep {rep} .fastq.gz " utgang: html = "T {time} / {cond} / Rep {rep} / Rep {rep} _fastqc.html" shell: "" "fastqc {input.fastq}" ""
Sett denne filen i katalogen som inneholder T *
katalogene og kjør snakemake
derfra.
Den øverste alle
regel forklarer hvilke filer du vil ha. do_fastqc
-regelen forklarer hvordan du lager en fastqc-rapport fra en fastq.gz-fil.
Med litt mer arbeid kan dette brukes til å sende jobber til en databehandlingsklynge. Snakemake har noen verktøy for dette.
Hvis du ikke vet de eksakte navnene på fastq-filene, men alle følger samme mønster, må du bruke glob python-modul og gjør litt programmering for å bestemme de mulige verdiene for rep
, cond
og time
. "Slangefilen" kan inneholde hvilken som helst python-kode du vil ha.
Hvis det ikke er noe vanlig mønster i filnavnene, kan du løse dette problemet først;)