Environnement Unix
View the Project on GitHub DU-Bii/module-1-Environnement-Unix
.
, ..
, ~
). Afficher l’arborescence Linux.Depuis le Jupyter Hub de l’IFB, lancez un terminal pour obtenir un shell.
Ensuite :
dubii
/shared/home/ppoulain/dubii
où ppoulain
est remplacé par votre nom d’utilisateur.Aide
Le caractère
$
au début de chaque ligne est un repère qui représente votre invite de commande. Il ne faut pas entrer ce caractère dans votre ligne de commande.Le caractère
~
est un raccourci pour désigner le répertoire personnel de l’utilisateur.$ cd ~ $ mkdir dubii $ cd dubii $ pwd
Vous devriez obtenir un chemin du type
/shared/home/ppoulain/dubii
oùppoulain
est remplacé par votre nom d’utilisateur.
Téléchargez ensuite les fichiers des jeux de données du DUBii avec la commande :
$ git clone https://github.com/DU-Bii/study-cases.git
Remarques :
$
au début d’une ligne de commande est un repère visuel qui représente votre invite de commande. Il ne faut pas entrer ce caractère dans votre ligne de commande.La commande à exécuter est assez longue et complexe. Pour éviter de faire des erreurs et aller plus vite, utilisez le copier/coller. Voici deux méthodes :
a. Sélectionnez la commande en la surlignant avec le clic gauche de votre souris. Puis dans votre shell, cliquez sur le bouton du milieu de votre souris.
b. Sélectionnez la commande en la surlignant avec le clic gauche de votre souris. Appuyez ensuite sur les touches Ctrl + C (c’est-à-dire les touches Control et C pressées en même temps). Dans votre shell, appuyez sur les touches Ctrl + Maj + V (c’est-à-dire les touches Control, Majuscule et V pressées en même temps).
Patientez quelques instants que les données soient téléchargées.
Question 1.1 : Déplacez-vous dans le répertoire study-cases
nouvellement créé.
Réponse
$ cd study-cases
Utilisez la commande tree
pour visualiser l’arborescence qui représente l’organisation des répertoires, sous-répertoires et fichiers.
$ tree
Question 1.2 : Déplacez-vous maintenant dans le répertoire Escherichia_coli/bacterial-regulons_myers_2013/data/ChIP-seq
Astuce : utilisez la touche Tab (Tabulation) pour compléter les noms des répertoires qui peuvent être très longs et ainsi éviter les erreurs.
Réponse
$ cd Escherichia_coli/bacterial-regulons_myers_2013/data/ChIP-seq
Question 1.3 : Combien de fichiers .bed
y a-t-il dans ce répertoire ?
Réponse
$ ls FNR1_vs_input1_cutadapt_bowtie2_homer.bed FNR_200bp.wig FNR1_vs_input1_cutadapt_bowtie2_macs2.bed input_200bp.wig
Ou plus directement, avec
*bed
qui signifie tous les fichiers se terminant par bed :$ ls *bed FNR1_vs_input1_cutadapt_bowtie2_homer.bed FNR1_vs_input1_cutadapt_bowtie2_macs2.bed
Il y a deux fichiers avec l’extension
.bed
Question 1.4 : En restant dans le même répertoire, déterminez le nombre de fichiers présents dans le répertoire RNA-seq
qui est au même niveau que le répertoire ChIP-seq
?
Réponse
$ ls ../RNA-seq cutadapt_bwa_featureCounts_all.tsv
Il y a un seul fichier.
La commande df
(pour disk free) permet de connaître les quantités d’espace occupé et disponible pour tous les disques du système. L’option -h
permet d’afficher ces valeurs human readable, c’est-à-dire avec les unités ko, Mo, Go, To …
$ df -h
La commande pour connaître la taille des fichiers présents dans un dossier est ls -lh
.
Question 2.1 : Utilisez la commande ls
avec les options l
et h
pour afficher le contenu du répertoire courant, puis déterminez la taille du fichier FNR_200bp.wig
.
Réponse
$ ls -lh total 264K -rw-r--r-- 1 pierre pierre 8,9K janv. 27 23:25 FNR1_vs_input1_cutadapt_bowtie2_homer.bed -rw-r--r-- 1 pierre pierre 45K janv. 27 23:25 FNR1_vs_input1_cutadapt_bowtie2_macs2.bed -rw-r--r-- 1 pierre pierre 80K janv. 27 23:25 FNR_200bp.wig -rw-r--r-- 1 pierre pierre 90K janv. 27 23:25 input_200bp.wig
Le fichier
FNR_200bp.wig
a une taille d’environ 80 Ko.
Pour connaître la quantité d’espace disque occupée par un dossier, utilisez la commande du
(disk usage), encore une fois avec l’option -h
. On peut aussi afficher la version résumé avec l’option -s
.
Question 2.2 : Déterminez la taille du répertoire study-cases
.
Rappel : si vous avez bien suivi les instructions depuis le début, le répertoire study-cases
est normalement dans le répertoire dubii
dans votre repertoire personnel.
Réponse
Le chemin du répertoire
study-cases
depuis le répertoire personnel (représenté par~
) est donc~/dubii/study-cases
.$ du -sh ~/dubii/study-cases 100M /shared/home/ppoulain/dubii/study-cases
Le dossier
study-cases
a une taille totale de 100 Mo.
Sous Linux, on dispose de plusieurs commandes pour afficher le contenu de fichiers texte.
La commande cat
affiche et concatène le contenu du ou des fichiers donnés en arguments
(ou de l’entrée standard) sur la sortie standard (à l’écran).
Question 3.1 : Affichez le contenu du fichier cutadapt_bwa_featureCounts_all.tsv
situé
dans le répertoire RNA-seq
(qui est au même niveau que le répertoire ChIP-seq
).
Réponse
On suppose que vous êtes toujours dans le répertoire
ChIP-seq
.$ cat ../RNA-seq/cutadapt_bwa_featureCounts_all.tsv Geneid WT1 WT2 dFNR1 dFNR2 b0001 70 98 72 63 b0002 23421 33092 32156 20749 b0003 7538 10350 9596 6490 b0004 8263 11927 11042 7145 b0005 121 156 104 62 b0006 177 224 287 209 b0007 138 116 68 50 b0008 2964 3971 4211 2823 b0009 213 205 196 128 [...] b4400 82 42 37 35 b4401 3349 4692 2619 1609 b4402 201 318 224 128 b4403 82 116 87 68
Question 3.2 : Concaténez le contenu des fichiers FNR1_vs_input1_cutadapt_bowtie2_homer.bed
et FNR1_vs_input1_cutadapt_bowtie2_macs2.bed
dans le répertoire ChIP-seq
.
Réponse
$ cat FNR1_vs_input1_cutadapt_bowtie2_homer.bed FNR1_vs_input1_cutadapt_bowtie2_macs2.bed # HOMER Peaks # Peak finding parameters: # tag directory = ChIP-seq/results/peaks/FNR1_vs_input1/homer/FNR1_tag # # total peaks = 161 # peak size = 177 # peaks found using tags on both strands # minimum distance between peaks = 354 # fragment length = 176 # genome size = 4639221 [...] Chromosome 4628694 4628894 FNR1_vs_input1_cutadapt_bowtie2_macs2_peak_409 255 . 1.64016 27.14359 25.51793 45 Chromosome 4633063 4633362 FNR1_vs_input1_cutadapt_bowtie2_macs2_peak_410 374 . 1.87671 39.12086 37.41762 131 Chromosome 4640075 4640748 FNR1_vs_input1_cutadapt_bowtie2_macs2_peak_411 6432 . 4.90760 645.83362 643.22699 454
Question 3.3 : Quel inconvénient majeur voyez-vous à la commande cat
?
Réponse
La commande
cat
affiche la totalité des fichiers ce qui rend la sortie de la commande souvent illisible lorsque les fichiers sont très grands.
La commande less
afficher le contenu d’un ou plusieurs fichiers
page par page, ce qui est très utile lorsqu’on manipule des fichiers de taille
importante.
Quelques raccourcis clavier :
barre d'espace
: se déplace dans le fichier page par pageflèche haut
: se déplace d’une ligne vers le hautflèche bas
: se déplace d’une ligne vers le basg
: se déplace au début du fichier (également <
)G
: se déplace à la fin du fichier (également >
)/
: recherche les occurences d’un motifn
: passe à l’occurence suivante du motif recherchéN
: passe à l’occurence précédente du motif recherché:n
: passe au fichier suivant (‘next file’, si plusieurs fichiers en arguments):p
: passe au fichier précédent (‘previous file’, si plusieurs fichiers en arguments)q
: quitte lessQuestion 3.4 : Affichez le contenu du fichier ../RNA-seq/cutadapt_bwa_featureCounts_all.tsv
avec less
.
Réponse
less ../RNA-seq/cutadapt_bwa_featureCounts_all.tsv
Pensez à utiliser la touche Q pour quitter
less
.
La commande head
affiche uniquement le début du ou des fichier(s) passé(s) en argument.
Par défaut, head
affiche les 10 premières lignes d’un fichier.
L’option -n <N>
permet d’afficher les N
premières lignes d’un fichier.
Question 3.5 : Affichez les 20 premières lignes du fichier ../RNA-seq/cutadapt_bwa_featureCounts_all.tsv
.
Réponse
$ head -n 20 ../RNA-seq/cutadapt_bwa_featureCounts_all.tsv Geneid WT1 WT2 dFNR1 dFNR2 b0001 70 98 72 63 b0002 23421 33092 32156 20749 b0003 7538 10350 9596 6490 b0004 8263 11927 11042 7145 b0005 121 156 104 62 b0006 177 224 287 209 b0007 138 116 68 50 b0008 2964 3971 4211 2823 b0009 213 205 196 128 b0010 184 193 130 74 b0011 44 13 13 10 b0013 18 6 7 3 b0014 10758 14747 15432 10243 b0015 1343 1667 1549 1045 b0016 261 326 252 141 b4412 0 0 0 0 b0018 7 0 2 1 b4413 1 0 1 1 b0019 714 944 1093 704
La commande tail
affiche uniquement la fin du ou des fichier(s) passé(s) en argument.
Par défaut tail
affiche les 10 dernières lignes d’un fichier.
L’option -n <N>
permet d’afficher d’afficher les N
dernières lignes d’un fichier.
Question 3.6 : Affichez les 20 dernières lignes du fichier ../RNA-seq/cutadapt_bwa_featureCounts_all.tsv
.
Réponse
$ tail -n 20 ../RNA-seq/cutadapt_bwa_featureCounts_all.tsv b4384 846 1241 1173 751 b4385 205 224 145 84 b4386 243 233 192 106 b4387 164 197 142 98 b4388 409 489 404 264 b4389 712 785 615 350 b4390 421 535 471 316 b4391 2341 2740 2888 1913 b4392 538 601 717 464 b4393 203 258 202 137 b4394 256 292 243 167 b4395 404 591 422 309 b4396 903 1161 1055 709 b4397 235 280 242 143 b4398 210 251 178 122 b4399 166 115 122 101 b4400 82 42 37 35 b4401 3349 4692 2619 1609 b4402 201 318 224 128 b4403 82 116 87 68
Sous Linux, il existe beaucoup d’éditeurs de fichiers textes qui soient utilisables dans un terminal. Parmi les plus connus on trouve : vi
, emacs
et nano
.
Nano est l’éditeur de texte le plus simple à utiliser.
Question 4.1 : Qu’est-ce qu’un éditeur de texte ? Quelle différence avec un traitement de texte ?
Réponse
Un éditeur de texte est un programme qui modifie des fichiers texte sans mise en forme.
Un traitement de texte est un logiciel, le plus souvent avec une interface graphique, utilisé pour mettre en forme des documents
Pour lancer l’éditeur de texte nano, il suffit de taper la commande nano
,
éventuellement suivi d’un nom de fichier à éditer.
Toutes les commandes possibles sont résumées dans le bandeau en bas de l’écran
Le symbole ^
signifie Ctrl (la touche Contrôle de votre clavier).
Voici les raccourcis les plus importants :
Vous pouvez vous déplacer dans le fichier avec les flèches du clavier ainsi qu’avec les touches PageUp et PageDown pour vous déplacer de page en page (les raccourcis Ctrl + Y et Ctrl + V fonctionnent aussi).
Question 4.2 :
~/dubii/study-cases/Escherichia_coli/
nano
le fichier Escherichia_coli_str_k_12_substr_mg1655.ASM584v2.37.chromosome.Chromosome.gff3
Chromosome ena gene 190 255
Chromosome ena mRNA 190 255
Chromosome ena exon 190 255
Chromosome ena CDS 190 255
Escherichia_coli_str_k_12_substr_mg1655.ASM584v2.37.chromosome.Chromosome_new.gff3
(la fin du nom du fichier est Chromosome_new.gff3
au lieu de Chromosome.gff3
).Réponse
$ cd ~/dubii/study-cases/Escherichia_coli/ $ nano Escherichia_coli_str_k_12_substr_mg1655.ASM584v2.37.chromosome.Chromosome.gff3
Rappel : pensez à utiliser la touche Tab pour compléter rapidement le nom du fichier à ouvrir avec nano.
Dans nano, déplacez-vous sur la ligne 10. Utilisez le raccourci Ctrl + C pour connaitre le numéro de ligne courante.
Supprimez ensuite les lignes 10, 11, 12 et 13 avec le raccourci- Ctrl + K.
Au moment de sauvegarder le fichier avec la commande Ctrl + O, pensez à modifier le nom du fichier.
Sous Linux toutes les commandes sont documentées de manière standardisée.
Il y a deux moyens d’accèder à l’aide d’une commande :
Via la commande man <nom_commande>
(par exemple man ls
) qui affiche le manuel,
c’est-à-dire la description complète de la commande page par page avec les facilités de
recherche d’un éditeur de texte. La touche Q permet de quitter ce manuel.
Via l’option --help
de la commande (par exemple ls --help
) qui affiche un résumé de la
documentation et des options.
Question 5.1 : Quel signifie l’option -N
de la commande less
?
Réponse
$ man less [...] -N or --LINE-NUMBERS Causes a line number to be displayed at the beginning of each line in the display. [...]
L’aide nous apprend que l’option
-N
affiche les numéros de lignes à gauche de chaque ligne.
Le shell garde en mémoire les commandes lancées par un utilisateur.
La liste des commandes lancées par un utilisateur est accessible via la commande
history
.
Il est aussi possible de retrouver une commande en utilisant la commande !
Par exemple la commande !?expression?
permet de relancer la dernière commande
utilisée contenant le mot expression
.
La commande !grep
permet de relancer la dernière commande utilisée commençant par ‘grep’
Question 6.1 : Lancez la commande history
, puis essayer de deviner ce que fait la commande !-4
?
Réponse
Cette commande permet d’exécuter la 4° dernière commande exécutée.
On peut également retrouver les commandes déjà exécutées en naviguant dans l’historique avec les flèches haut et bas du clavier.
La possibilité de redirection de l’entrée ou de la sortie standard est une notion fondamentale du système d’exploitation Linux.
Par défaut tout programme Linux a trois flux de données :
stdin
par défaut associée au clavierstdout
, par défaut associée à l’écranstderr
, par défaut également associée à l’écranUne redirection est une modification de l’une de ces associations. Elle est valable uniquement le temps de la commande sur laquelle elle porte.
Pour modifier l’entrée standard d’une commande en lisant les données d’un
fichier infile
on utilise < infile
.
Pour modifier la sortie standard d’une commande et écrire les résultats dans un
fichier outfile
on utilise > outfile
ou >> outfile
Pour modifier l’erreur standard d’une commande et écrire les messages d’erreurs
dans un fichier errfile
on utilise : 2> errfile
.
En résumé, dans le shell, un programme peut s’écrire :
$ program < infile > outfile 2> errfile
Question 7.1 :
~/dubii/study-cases/Escherichia_coli/bacterial-regulons_myers_2013/data/ChIP-seq
cat
sur le fichier FNR1_vs_input1_cutadapt_bowtie2_homer.bed
dans le fichier test.txt
.test.txt
?diff
pour afficher les différences entre les deux fichiers :
$ diff FNR1_vs_input1_cutadapt_bowtie2_homer.bed test.txt
Réponse
$ cd ~/dubii/study-cases/Escherichia_coli/bacterial-regulons_myers_2013/data/ChIP-seq $ cat FNR1_vs_input1_cutadapt_bowtie2_homer.bed > test.txt
cat
affiche le contenu deFNR1_vs_input1_cutadapt_bowtie2_homer.bed
.>
redirige la sortie de la commandecat
vers le fichiertest.txt
.- Finalement, le fichier
test.txt
contient le contenu du fichierFNR1_vs_input1_cutadapt_bowtie2_homer.bed
.La commande
diff FNR1_vs_input1_cutadapt_bowtie2_homer.bed test.txt
ne renvoie rien car les deux fichiers sont bien identiques.