Az alábbiakban összeszedtünk pár oneliner-et a teljesség igénye nélkül. Az awk, valamint a sed a két leggyakrabban használt parancs, amely a linux-os rendszerekben általában megtalálhatóak.
FROM: az alap (base image), amire épül a konténer (pl.: linux 16.04)
MAINTAINER (opcionális): a dockerfile készítőjének a nevét, emailcímét tartalmazza
RUN: a kép (image) létrehozása során futtatandó parancsok
ADD: fájl másolása a docker image-be
ENV: környezeti változó definiálása
CMD: a konténer indításakor automatikusan lefutó parancs
ENTRYPOINT: a konténer indításakor automatikusan lefutó parancs
WORKDIR: az alapértelmezett könyvtár a konténer indulásakor
Dockerfile készítése
Készítünk egy új fájlt, ami a Trim Galore programcsomagot fogja tartalmazni. A Trim Galore a Cutadapt-ot is használja, ezért ennek a telepítését is el kell végezni a Dockerfile-on belül.
# base image letöltése
FROM ubuntu:16.04
# készítő, fejlesztő
MAINTAINER Robert Herczeg <herczeg.robert@pte.hu>
# update
RUN apt-get update && apt-get -y install wget\
unzip \
python3-pip && \
rm -rf /var/lib/apt/lists/*
# Install cutadapt
ENV CUTADAPT_VERSION 1.14
RUN pip3 install cutadapt==${CUTADAPT_VERSION}
# set working dir
WORKDIR /tmp
# install Trim Galore
RUN wget http://www.bioinformatics.babraham.ac.uk/projects/trim_galore/trim_galore_v0.4.4.zip
RUN unzip trim_galore_v0.4.4.zip
# create symlink
RUN ln -s /tmp/trim_galore /usr/local/bin/trim_galore
CMD ["bash"]
A FROM részben megadtuk, hogy a 16.04-es ubuntu legyen az alapértelmezett image. Ezután azokat a programokat telepítetjük, amik szükségesek a Trim Galore futtatásához. A wget a letöltéshez, az unzip a kimötörítéshet kell. A python3-pip a Cutadapt telepítését végzi el.
Az utolsó sorral a cache-t töröljük, így csökkentve a konténer méretét. Ezt követően a telepítjük Cutadapt-ot. Az ENV-el megadtuk, hogy verziót szeretnénk telepítani, amihez a pip3 -t használjuk.
# Install cutadapt
ENV CUTADAPT_VERSION 1.14
RUN pip3 install cutadapt==${CUTADAPT_VERSION}
A WORKDIR megadásával a továbbiakban a konténeren belül ebbe fog dolgozni a docker, így a wget-el letöltendő zip fájl is ide fog kerülni, amit majd az unzip-el csomagolunk ki.
# set working dir
WORKDIR /tmp
# install Trim Galore
RUN wget http://www.bioinformatics.babraham.ac.uk/projects/trim_galore/trim_galore_v0.4.4.zip
RUN unzip trim_galore_v0.4.4.zip
Utolsó lépésben készítünk egy szimbolikus linket, illetve megadjuk a CMD-t, így a konténert elindítva egyből a bash-t fogjuk futtatni.
# create symlink
RUN ln -s /tmp/trim_galore /usr/local/bin/trim_galore
CMD ["bash"]
A konténer felépítését a docker build parancs kiadásával végezzük el. A “-t” kapcsolóval nevezzük el a konténert. Ellenőrizni a docker images paranccsal tudjuk. A konténer elkészülte után már “csak ” futtatni kell.
docker-bioinformatika-trim-galore
# konténer felépítése
docker build -t trimgalore:1 .
# konténer futtatása
# első példa
docker run -it trimgalore:1 bash
# második példa
docker run -t trimgalore:1 /tmp/trim_galore
A két példa között a fő különbség, hogy az elsőben “belépünk” a konténerbe (az “-i” kapcsoló az interaktív módot jelöli) és onnan futtatjuk a Trim Galore-t, a második esetben nem lépünk be a konténerbe, hanem a tmp könyvtárban megtalálható trim_galore parancsot hívjuk meg. Mindegyik példának meg van a maga előnye-hátránya, amelyet most nem részletezünk.
Lát egy cikket a twitter-en egy új bioinformatikai algoritmusról.
Érdekesnek tűnik az absztrakt alapján, ki kellene próbálni.
Nincs sehol a forráskód és/vagy egyértelmű link a szoftverhez….google segít.
Nem települ……google segít.
Nehezen, de települt…..örülünk
A tesztadatok elemzésénél hibát kapunk…..
Jöhet a fejfájás…
Az adatok feldolgozásához, elemzéséhez újabb ás újabb bioinformatikai módszereket, eljárásokat fejlesztenek, amelyekhez kisebb-nagyobb programokat és/vagy szoftvereket is készítenek, publikálnak. Ezeknek a szoftvereknek a telepítése/használata nem mindig egyszerű, mivel:
számos függőséget tartalmazhatnak, amiket külön kell telepíteni
a telepítésük kezdő informatikai tudásnál mélyebb ismereteket igényelnek
nem megfelelő a dokumentáció, így nehéz telepíteni/dolgozni vele
újabb verzió készül, ami nem kompatibilis az addigi rendszerrel
nem kompatibilis minden operációs rendszerrel és/vagy környezettel (pl.: csak linux-on fut, más JAVA verziót használ stb.)
nem vagy nehezen kivitelezhető a megismételhető vizsgálat (reproducible research)
Ezek a problémák napi szinten jelen vannak a bioinformatikában. Továbbá viszonylag könnyen lehet készíteni kisebb-nagyobb “programcsomagokat” (R, python, stb.) és publikálni, ahol is fontos, hogy ezeket mások is tudják használni és ne akadjanak el már az első lépéseknél, így például a telepítésnél.
Konténerek – Docker
bioinformatikai docker
Erre a prolémára egy megoldás a különböző konténertechnológiák használata (lista a leggyakoribbakról), ezek közül is a bioinformatikában az egyik legelterjedtebben használt, a Docker. A konténeres megközelítés a virtualizációt használja ki/fel (további technikai részletek a Docker-el kapcsolatban itt), és teremt ezáltal egy olyan környezetet, amely igen hasznosnak bizonyul a különböző bioinformatikai elemzések elvégzése, valamint a szoftverfejlesztések során.
Minden egyes konténernek (általában) csupán egy feladata, célja van. Készíthetünk egy olyan konténert, amely csak a fastqc programot tartalmazza. A konténer tartalmát (környezetét) egy egyszerű szöveges fájl (Dockerfile) írja le:
# Set the base image
FROM ubuntu:16.04
# File Author / Maintainer
MAINTAINER Robert Herczeg <herczeg.robert@pte.hu>
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
################## BEGIN INSTALLATION ######################
RUN apt-get update
RUN apt-get -y install wget unzip sudo mc perl
# download fastqc
ADD http://www.bioinformatics.babraham.ac.uk/projects/fastqc/fastqc_v0.11.8.zip /tmp/
# Install OpenJDK 8 JRE
RUN apt-get update && apt-get install --yes openjdk-8-jre
# Install FastQC
RUN cd /usr/local && \
unzip /tmp/fastqc_*.zip && \
chmod 755 /usr/local/FastQC/fastqc && \
ln -s /usr/local/FastQC/fastqc /usr/local/bin/fastqc && \
rm -rf /tmp/fastqc_*.zip
ENTRYPOINT ["fastqc"]
Ezt felhasználva elkészíthetjük a docker build parancs kiadásával a fastqc konténert.
docker build -t fastqc:1 .
A -t kapcsolóval (tag) a konténert nevezzük el, valamint egy verziót számot is adunk neki (nem muszáj, hogy szám legyen). A “.” megadjuk, hogy az éppen aktuális könyvtárban keresse a Dockerfile-t. Ezután nincs más hátra, mint futtatni, használni a konténert:
docker run -t fastqc:1 fastqc -f fastq --threads 1 sample.fastq
A parancs két részből áll: – konténer futtatása: docker run -t fastqc:1 – a fastqc futtatása: fastqc -f fastq –threads 1 sample.fastq
Természetesen ennél sokkal több lehetőség van a Docker-ben, amelyeket a következő cikkekben fogunk be/megmutatni.
Fastqe egy egyszerű program (python nyelven), amellyel minden egyes pozicióra kiszámolhatjuk az átlag, valamint a min/max minőség értékeket és azokat emojiként jeleníti meg.
Telepítés és használata:
A pip-el könnyen telepíthetjük:
pip install fastqe
Használata is egyszerű:
fastqe [--bin] [--min] [--max] [FASTQ_FILE ...]
Példa
fastqe test.fastq
fastqe --min test.fastq
fastqe --max test.fastq
Ha a --bin argumentumot is megadjuk, akkor az alábbiak szerint jeleníti meg az egyes minőségi értékeket.