Commit 11a662cd authored by khalid's avatar khalid
Browse files

first commit

parent 21c7f621
FROM php:7.0-apache
#installer R
RUN apt-get update
RUN apt-get install -y r-base r-base-dev
#installer le package seqinr
RUN R --slave -e "install.packages( 'seqinr', repos='https://cloud.r-project.org')"
#Ici on copie les scripts dans le conteneur
COPY src/ /var/www/html/src
#Ici on copie également les données dans le conteneur
COPY fasta /var/www/html/fasta
RUN echo "ServerName 127.0.0.1" >> /etc/apache2/sites-enabled/000-default.conf
EXPOSE 80
# formation-containers
Nous allons essayer de containeuriser une application qui permet de compter le nombre de séquences dans un fichier fasta :
grep permet de compter l'occurence des '>' en début de chaque identifiant de séquence :
grep -c '>' test.fa
On peut également écrire un script R utilisant le package seqinr pour lire le fichier fasta et compter le nombre de séquences
Ce script peut être appelé de cette manière.
Rscript --vanilla src/countFasta.R fasta/test.fa
On peut créer un script php pour wrapper l'appel à grep et au script R :
php src/count_seq.php
L'avantage de ce wrapper est de pouvoir accéder aux résultats via un navigateur web quand ce fichier est dans un dossier servit par un serveur web apache.
Pour que cela fonctionne, il faut les éléments suivants :
* Une distribution linux
* php + apache2
* R
* le package seqinr
Pour être s de garantir l'environnement d'exécution de notre script, nous allons construire un container Docker dont les détails sont dans le fichier Dockerfile
Depuis le dossier contenant le fichier Dockefile on construit l'mage en tapant :
docker build -t count-seq-image .
Pour lancer un conteneur :
docker run -p 80:80 count-seq-image
dans votre navigateur ouvrir cette url :
127.0.0.1/src/count-seq.php
pour examiner ce qu'il y à l'intérieur du container
docker run -i -t count-seq-image /bin/bash
Ajouter une sequence puis re-consulter l'URL
Commenter
Comment travailler sur les données de l'hôte
docker run -p 80:80 -v $PWD/fasta:/var/www/html/fasta count-seq-image
>seq1
ATGCGAT
>seq2
ATTTATT
>seq3
AAAA
>seq4
ATTTTT
<?php
echo "Le fichier test.fa contient ". exec('grep -c ">" ../fasta/test.fa') ." sequences<br>";
echo "Using R : ". exec('Rscript --vanilla ./countFasta.R ../fasta/test.fa')
?>
#Rscript --vanilla countFasta.R ../fasta/test.fa
library("seqinr")
args = commandArgs(trailingOnly=TRUE)
if (length(args)==0) {
stop("At least one argument must be supplied (input file).n", call.=FALSE)
} else if (length(args)==1) {
seqs <- read.fasta(file=args[1])
cat("Your file have : " ,length(seqs), " sequences !\n")
}
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment