Header Image - bioinformatika

Tag Archives

One Article

Bioinformatikai konténerek – bevezető

Hogyan kap
gyorsan fejfájást a bioinformatikus?

  • 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:

  1. számos függőséget tartalmazhatnak, amiket külön kell telepíteni
  2. a telepítésük kezdő informatikai tudásnál mélyebb ismereteket igényelnek
  3. nem megfelelő a dokumentáció, így nehéz telepíteni/dolgozni vele
  4. újabb verzió készül, ami nem kompatibilis az addigi rendszerrel
  5. nem kompatibilis minden operációs rendszerrel és/vagy környezettel (pl.: csak linux-on fut, más JAVA verziót használ stb.)
  6. 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
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.

  • Docker telepítése – cikk
  • Dockerfile készítése – cikk