Initiation l'informatique pour les biologistes et futurs bioinformaticiens - PowerPoint PPT Presentation

1 / 186
About This Presentation
Title:

Initiation l'informatique pour les biologistes et futurs bioinformaticiens

Description:

Dans notre cas, nous aimerions placer ces informations dans un fichier. ... Dans notre cas, nous aimerions pouvoir ne s lectionner que certaines ... – PowerPoint PPT presentation

Number of Views:231
Avg rating:3.0/5.0
Slides: 187
Provided by: 3drecons
Category:

less

Transcript and Presenter's Notes

Title: Initiation l'informatique pour les biologistes et futurs bioinformaticiens


1
Initiation à l'informatique pour les biologistes
(et futurs bio-informaticiens)
  • PLAN
  • Introduction générale (1 séance de 3 heures )
  • Introduction au système dexploitation Linux (2)
  • Le shell et les shellscripts (2)
  • Configuration et utilisation de lenvironnement
    de travail (2 )
  • La manipulation textuelle avec les commandes
    (e)grep, sed et awk (2)
  • Généralités sur les langages de programmation
    (2)
  • Introduction au langage Perl (2)

2
Pourquoi l'Informatique dans la Biologie ?
  • Le biologiste a-t-il vraiment besoin de
    l'informatique ?
  • Si c'est le cas, pouquoi faire ?
  • L'informaticien peut-t-il aider le biologiste ?
  • Si c'est le cas, comment l'aider ?
  • Peut-on imaginer une biologie sans informatique
    !?
  • L'informatique fait-elle avancer vraiment la
    biologie ?
  • etc.

3
Quelques applications sur l'imagerie médicale
4
1. Introduction générale
  • Bio-informatique  combinaison de linformatique
    et de la biologie.
  • La bio-informatique est la discipline de
    l'analyse de l'information biologique, en
    majorité sous la forme de fichiers de séquences
    génétiques et de structures moléculaires.
  • Elle est constituée par un ensemble des concepts
    et des techniques nécessaires à l'interprétation
    de l'information génétique (séquences) et
    structurale (repliement 3-D).
  • La bio-informatique n'est pas pour autant
    dérivée de la " science " informatique elle
    n'est qu'utilisatrice des ordinateurs et de leurs
    langages dont la finalité est la compréhension
    des mécanismes du vivant.

5
Introduction générale
  • - Quelles compétences pour un bio-informaticien ?
  • Beaucoup sont utiles, mais il nest pas possible
    de les apprendre toutes. Les compétences de
    base 
  • Un bon background en biologie moléculaire,
  • Posséder une expérience avec les outils
    informatiques " classiques " de biologie
    moléculaire,
  • Savoir travailler en ligne de commande avec un
    système dexploitation (Unix, Linux, Mac OSX),
  • Posséder une expérience dans un ou plusieurs
    langages de programmation.

6
Introduction générale
  • Le but de ce cours 
  • Une initiation à lutilisation dun système
    dexploitation de type Unix et à lutilisation de
    la ligne de commande,
  • Une initiation aux concepts de la programmation
    avec lécriture de scripts bash, awk et Perl.
  • S'initier aux langages de programmation de haut
    niveau comme le C, C, et Java.

7
Initiation à l'informatique pour les biologistes
(et futurs bio-informaticiens)
  • PLAN
  • Introduction générale (1 séance de 3 heures )
  • Introduction au système dexploitation Linux (2)
  • Le shell et les shellscripts (2)
  • Configuration et utilisation de lenvironnement
    de travail (2 )
  • La manipulation textuelle avec les commandes
    (e)grep, sed et awk (2)
  • Généralités sur les langages de programmation
    (2)
  • Introduction au langage Perl (2)

8
2. Introduction au système d'exploitation Linux
  • Système d'exploitation (abrégé OS pour
    " Operating System ") interface utilisateur
    (abstraction du matériel).
  • Exemples MSDOS, MacOS, OS/2, BeOS, QNX,
    MS-Windows9x, MS-WindowsNT, UNIX, Linux.
  • Linux est un avatar de Unix. Ce dernier est né
    dans les laboratoires de Bell (ATT) dans les
    années 70. Unix/Linux sont des OS dits
    " multi-utilisateurs " et " multi-tâches " 
  • Multi-utilisateurs  plusieurs personnes peuvent
    partager les ressources de la même machine en sy
    connectant (localement ou bien via le réseau).
    Chaque utilisateur possède un compte protégé par
    un couple login/password
  • Multi-tâches  plusieurs programmes ou logiciels
    peuvent sexécuter concurremment et simultanément.

9
Introduction au système d'exploitation Linux
  • Avantages et Inconvénients
  • 1. Les plus de Linux
  • C'est un système fiable, robuste, puissant et
    efficace.
  • Il utilise très peu de ressources et peut
    fonctionner sur des ordinateurs bas de gamme très
    peu puissants.
  • Il est distribué librement avec son code source
    (listing), basé sur le principe du logiciel libre
    de la licence GPL (GNU General Public License).
    Il est gratuit (ou à faible coût).
  • Il est développé par de nombreux programmeurs
    (souvent bénévolement) impliquant une évolution
    rapide et un résultat de qualité ainsi qu'une
    correction des buggs.
  • Très stable et les plantages complets sont
    rarissimes.

10
Introduction au système d'exploitation Linux
  • Avantages et Inconvénients
  • 2. Les moins de Linux !
  • Installation parfois difficile (ordinateurs
    modernes).
  • Installation des programmes souvent problématique
    (à cause de la particularité des différentes
    distributions Linux).
  • Applications grand public moins nombreuses et
    moins sophistiquées (par rapport à celles de
    Windows par exemple).
  • Mais le retard diminue avec de nouvelles
    interfaces graphiques incluant de nouvelles
    applications suite bureatique, base de données,
    programmes graphiques, ...
  • Le grand avantage reste sa diversité (pas de
    contamination par les virus comme le cas de I
    love you sous Windows).

11
Introduction au système d'exploitation Linux
  • Fonctionnement
  • Sous Linux, un utilisateur interagit avec la
    machine soit en ligne de commande (Shell), soit
    au moyen dapplications graphiques.
  • Linterface graphique de Linux repose sur une
    implémentation libre du système X-Window appelée
    XFree86.
  • En envoyant des ordres (commandes) au système
    dexploitation, lutilisateur peut utiliser la
    puissance de calcul de la machine ainsi que les
    périphériques de lordinateur (lecteurs CD,
    imprimantes, réseau, etc.).
  • Le système dexploitation se charge de traduire
    les ordres de lutilisateur en un langage
    "machine".

12
Introduction au système d'exploitation Linux
  • Architecture
  • Un système dexploitation comme Unix/Linux est
    composé de fichiers (même les périphériques sont
    représentés par des fichiers).
  • Un fichier est une zone particulière nommée (le
    nom du fichier) dans la surface de stockage dun
    ordinateur. Cette zone a un début et une fin et
    peut-être de deux natures différentes 
  • Un programme (un fichier exécutable)  il
    permettra de réaliser une action utilisant la
    puissance de calcul ou les périphériques de la
    machine,
  • Un fichier de données (un fichier non
    exécutable) qui sera consulté/exploité par un
    programme. Les fichiers de données peuvent se
    diviser en fichiers binaires ou textuels.).
  • Un OS de type Unix/Linux a une structure
    organisée selon une arborescence composée de
    répertoires (ensembles de fichiers regroupant
    dautres fichiers).

13
Introduction au système d'exploitation Linux
  • Comment exploiter une machine via le système
    dexploitation 
  • Cliquer sur des icônes (approche Windows 9x et
    Me, anciens MacOS),
  • Ecrire les commandes directement sur une ligne
    de commande (approche DOS, Windows NT/2000, et
    surtout Unix, Linux, MacOSX),
  • Ecrire des programmes dans un langage de
    programmation (valable pour tous les OS).
  • Cliquer sur une icône revient à utiliser
     graphiquement  une commande avec un
    comportement par défaut.

14
Introduction au système d'exploitation Linux
  • Comment utiliser Linux chez vous !
  • La meilleure solution utiliser un vrai système
    UNIX tel que LINUX sous forme de distributions.
    Une distribution comprend à la fois le système
    d'exploitation Linux et de très nombreux
    programmes associés sous forme de paquets
    (packages).
  • Les distributions LINUX sont très nombreuses
    (http//distrowatch.com/). Les distributions
    telles que Mandriva, Fedora, SUSE, Debian,
    Slackware, Knoppix vont vous permettre
    dinstaller facilement Linux en dual-boot avec
    votre Windows.
  • Solutions alternatives  avec les distributions
    live (Knoppix par exemple  http//www.knoppix.com
    /), vous pouvez utiliser un système LINUX sans
    aucune installation sur votre ordinateur,
    simplement en bootant sur le CD. Distributions
    live orientées bioinformatiques (BioKnoppix gt
    http//bioknoppix.hpcf.upr.edu/, Vigyaan gt
    http//www.vigyaancd.org/, etc.).

15
Initiation à l'informatique pour les biologistes
(et futurs bio-informaticiens)
  • PLAN
  • Introduction générale (1 séance de 3 heures )
  • Introduction au système dexploitation Linux (2)
  • Le shell et les shellscripts (2)
  • Configuration et utilisation de lenvironnement
    de travail (2 )
  • La manipulation textuelle avec les commandes
    (e)grep, sed et awk (2)
  • Généralités sur les langages de programmation
    (2)
  • Introduction au langage Perl (2)

16
3. Le Shell et les Scripts Shell(TP1, 2 et 3)
  • Qu'est-ce qu'un Shell ?
  • Le shell est un programme fournit avec lOS
    jouant deux rôles interpréteur de commandes et
    langage de programmation.
  • Il permet à lutilisateur de  dialoguer  avec
    la machine hébergeant lOS.
  • Il existe plusieurs types de shell sous Linux
    sh, ksh, csh, tcsh, zsh, bash.
  • Le shell que nous utiliserons sera le bash (pour
    Bourne Advanced SHell).
  • Initialement, les systèmes UNIX étaient dépourvus
    dinterface graphique et un utilisateur
    travaillait directement dans le shell.
  • Actuellement, dans le cas dune utilisation de
    lOS via une interface graphique (KDE, Gnome pour
    Linux, Aqua pour MacOSX).

17
Le Shell et les Scripts Shell(TP1, 2 et 3)
  • Commandes
  • Lorsqu'une connexion est établie, un prompt
    saffiche à gauche de lécran. Le shell attend
    les commandes de lutilisateur. Cette commande
    sera un ordre que le shell va interpréter et
    exécuter si la commande est reconnue (sinon le
    shell retourne un message derreur).
  • Il existe deux grands types de commande 
  • celles appelant des fonctionnalités internes au
    shell,
  • celles appelant des programmes externes au
    shell.
  • Dans votre shell, comparez leffet des commandes
    " which ls " et " which more ". Quelle est la
    nature de la commande which ?

18
Le Shell et les Scripts Shell(TP1, 2 et 3)
  • Commandes
  • man ltnom_de_la_commandegt (voir TP 1)
  • commande options ltargumentsgt
  • commande  ce que lon veut faire au système (à
    la machine)
  • options (facultatives)  comment on le fait
  • arguments (éventuels)  sur quoi on le fait
    (fichiers,).
  • La commande est saisie au clavier et est validée
    par un " return " (Enter) pour être exécutée.
  • Pour test echo hello, date, ls, ls l, ls a
    l, ls al

19
Le Shell et les Scripts Shell(TP1, 2 et 3)
  • Fichiers et arborescences de fichiers (voir TP 1)
  • Le système de fichiers des OS de type Unix/Linux
    est un arbre (organisation hiérarchique) dont les
    nuds sont des répertoires et les feuilles des
    fichiers.
  • La racine de cet arbre (le niveau le plus haut)
    est représentée par le caractère / .
  • Quand un utilisateur se connecte au système, il
    est automatiquement placé dans son répertoire
    daccueil.
  • Un chemin commence par un des caractères
    suivants 
  • /  décrit un chemin absolu en commençant par
    la racine du système
  •   décrit un chemin relatif en commençant par
    le répertoire daccueil de lutilisateur
  • .  décrit un chemin relatif en commençant par le
    répertoire courant

20
Le Shell et les Scripts Shell(TP1, 2 et 3)
  • Structure de l'arborescence Linux (voir TP 1)
  • / racine
  • /bin contient des exécutables essentiels
    au système (ls, rm, cp)
  • /boot contient les fichiers de démarrage
    de Linux
  • /dev contient les points dentrée des
    périphériques
  • /etc contient les commandes et
    les fichiers nécessaires à ladministration du
    système (passwd, group,..)
  • home contient les répertoires personnels des
    utilisateurs
  • /lib contient des librairies partagées
    essentielles au système lors du démarrage
  • /mnt contient les points de montage des
    partitions temporaires (disques externes,
    disquettes,)
  • /root répertoire de ladministrateur root

21
Le Shell et les Scripts Shell(TP1, 2 et 3)
  • Fichiers et leurs droits (voir TP 2)
  • Notions abordées
  • Commandes chmod, cat, more, less, grep, cut,
    find, tail
  • Les redirections et le pipe
  • Dans tout système Unix, les répertoires et les
    fichiers ont des droits daccès. Vous pouvez les
    mettre en évidence avec loption  l  de la
    commande  ls .
  • Il existe trois catégories dutilisateurs pour un
    fichier 
  • u  le propriétaire du fichier (user)
  • g  le groupe
  • o  les autres (others)

22
Le Shell et les Scripts Shell(TP1, 2 et 3)
  • Fichiers et leurs droits (voir TP 2)
  • ainsi que quatre types de droits 
  • r  lecture (read)
  • w  écriture (write)
  • x  exécution
  • -  aucun droit
  • En utilisant la commande  ls l , on obtient le
    détail des fichiers 
  • d rwx --- --- 3 fabricej fabricej
    4096 avr 29 1100 Documents
  • d rwx rwx r-- 2 fabricej users 4096
    avr 29 0023 Nautilus
  • d rwx rwx r-x 2 fabricej admin 4096
    avr 29 1412 archives
  • d rwx --- --- 5 fabricej fabricej
    4096 avr 29 0038 evolution
  • d rwx rwx r-x 6 fabricej fabricej
    4096 avr 29 1234 office52
  • - rw- rw- r-- 1 fabricej team1
    563125 avr 29 1412 DEA

23
Le Shell et les Scripts Shell(TP1, 2 et 3)
  • Fichiers et leurs droits (voir TP 2)
  • à savoir  (par colonne)
  • type de fichier (d directory, -  fichier
    ordinaire, l  lien)
  • droits de l'utilisateur
  • droits du groupe
  • droits des autres
  • nombre de liens physiques
  • propriétaire du fichier
  • groupe du fichier
  • taille du fichier (en octets ou bytes)
  • date de la dernière modification du fichier
  • nom de fichier

24
Le Shell et les Scripts Shell(TP1, 2 et 3)
  • Fichiers et leurs droits (voir TP 2)
  • La commande  chmod  permet de changer les
    droits dun fichier dont vous êtes le
    propriétaire. Etudiez sa documentation (voir TP
    2).
  • Comment donner le droit dexécution à un fichier
    pour vous, le groupe ou bien tout le monde ?
  • Quelle différence faites-vous entre ls et ls a ?
    Quel est la caractéristique et le rôle des
    nouveaux fichiers qui sont apparus ?
  • Quelques commandes utiles
  • touch ltfichiergt crée un fichier vide
  • mkdir ltrépertoiregt crée un répertoire vide (make
    directory)
  • rmdir ltrépertoiregt supprime un répertoire vide
    (remove directory)
  • rm ltfichiergt supprime le fichier (fichier
    normal ou répertoire)
  • rm r ltrépertoiregt supprime un répertoire et de
    manière récursive tous les
    sous-répertoires et fichiers quil contient

25
Le Shell et les Scripts Shell(TP1, 2 et 3)
  • Commandes utiles (voir TP 1 et 2)
  • more ltfichiergt visualisation dun fichier
  • cp ltfichier1gt ltfichier2gt copie le contenu de
    fichier1 dans fichier2, en détruisant
    fichier2 sil existait
  • mv ltfichier1gt ltfichier2gt renomme ou déplace le
    fichier1 en fichier2
  • grep ltchaînegt ltfichiergt recherche une chaîne de
    caractère dans un fichier donné
  • echo ltchaînegt retourne les arguments donnés (ou
    afficher  chaîne ).
  • Afin de connaître dautres commandes, étudiez les
    répertoires " /bin " et " /usr/bin ". Noubliez
    pas la commande " man " pour obtenir la
    description de ces commandes.

26
Le Shell et les Scripts Shell(TP1, 2 et 3)
  • Utilisation avancée du Shell (voir TP 4, 5 et 6)
  • Maintenant que vous êtes un peu plus familier
    avec l'environnement Unix, nous allons en
    apprendre davantage sur la manipulation des
    fichiers.
  • La véritable puissance du shell s'exprime en
    combinant entre eux les résultats de différentes
    commandes (scripts).
  • Pour illustrer cette approche, nous allons
    extraire des informations d'un fichier pdb
    (décrivant la structure 3D d'une molécule
    biologique) et les mettre en forme pour obtenir
    un fichier texte.
  • Cet exemple va vous permettre d'enchaîner
    l'utilisation d'un certain nombre de commandes
    Unix utilisées couramment.

27
Le Shell et les Scripts Shell(TP1, 2 et 3)
  • Utilisation avancée du Shell (voir TP 4, 5 et 6)
  • Etape n1 visualisation d'un fichier pdb
  • Dans un premier temps, vous pouvez visualiser le
    fichier pdb sur lequel vous allez travailler
  • more ltnom fichiergt , nedit ltnom fichiergt ou même
    gedit ltnom fichiergt, etc.
  • (La commande " more " permet un affichage
    " paginé " d'un fichier (déplacement dans un
    texte page par page). Par comparaison, vous
    pouvez utiliser la commande cat ltnom de fichiergt)
  • Vous constatez qu'un fichier pdb est un fichier
    bien structuré dont chaque ligne commence par un
    mot clé (ATOM, REMARK ,) et que le fichier
    commence par HEADER et se termine par END.
  • Pour les fichiers pdb - 1.
    http//www.rcsb.org/pdb/ 2.
    http//www.rcsb.org/pdb/

28
Le Shell et les Scripts Shell(TP1, 2 et 3)
  • Utilisation avancée du Shell
  • Objectif Notre but sera d'obtenir un fichier
    (hiv.res) regroupant le titre et les auteurs de
    l'article scientifique correspondant au fichier
    hiv.pdb (informations rassemblées sous le mot-clé
    " JRNL ").

  • hiv.pdb ------gt hiv.res
  • Etape n2 placer des données textuelles dans un
    nouveau fichier
  • Vous avez vu que vous pouvez afficher des
    informations à l'écran (par exemple avec la
    commande " ls l ").
  • L'écran est appelé la sortie standard c'est la
    sortie par défaut pour les résultats de certaines
    commandes (mais pas de toutes).
  • Dans notre cas, nous aimerions placer ces
    informations dans un fichier. Il faut
    " rediriger " la sortie standard vers ce fichier
    (voir TP 2 sur les redirections).

29
Le Shell et les Scripts Shell(TP1, 2 et 3)
  • Utilisation avancée du Shell (voir TP 2
    redirections)
  • Pour cela on utilise le symbole de redirection
    gt redirection de la sortie standard (stdout).
  • Comparez dans votre répertoire d'accueil " ls
    l " et " ls -l gt toto.res ". Dans le deuxième
    cas, où sont passées les informations et comment
    les visualiser (cat, more, less, etc.)?
  • Supposons maintenant que vous vouliez rajouter
    dans votre fichier toto.res la date du jour
    (commande " date " sans arguments ni options).
    Comment feriez-vous ? Si vous rencontrez des
    problèmes, il existe le symbole gtgt qui permet
    d'enregistrer des informations dans votre fichier
    sans écraser les données déjà présentes. Quelle
    est alors la solution ?
  • Maintenant que vous savez placer des informations
    apparaissant à l'écran dans un fichier, voyons
    comment sélectionner les informations à y placer.

30
Le Shell et les Scripts Shell(TP1, 2 et 3)
  • Utilisation avancée du Shell
  • Etape n3 extraction d'informations d'un
    fichier texte
  • Comme vous le savez déjà, il est possible de
    visualiser l'ensemble d'un fichier par une
    commande telle que " more " ou " cat " par
    exemple. Dans notre cas, nous aimerions pouvoir
    ne sélectionner que certaines informations du
    fichier.
  • La commande " grep " permet d'afficher une ligne
    contenant un motif particulier. Affichez les
    lignes contenant le mot " JRNL " (correspondant
    aux lignes portant les informations de l'article
    scientifique), sachant que grep s'utilise de la
    façon suivante
  • - grep ltchaîne de caractères recherchéegt ltnom
    de fichiergt
  • - exemple grep " bonjour " test.txt (voir TP
    2). 
  • Remarque Une option intéressante de grep est de
    donner les lettres ou chiffres qui nous
    intéressent. Ainsi, grep a-d tmp afficherait
    les lignes du fichier tmp qui contiennent les
    lettres a jusqu'à d. grep 0-9 tmp affiche les
    lignes contenant des chiffres.

31
Le Shell et les Scripts Shell(TP1, 2 et 3)
  • Utilisation avancée du Shell
  • Autre solution Une autre façon de procéder est
    d'utiliser un " tube " ou " pipe " (représenté
    par le symbole    (faire " AltGr6 " sur votre
    clavier PC).
  • Lécriture " commande 1 commande2 " permet
    d'enchaîner les commandes le résultat de la
    commande 1 est passé directement à la commande 2
    et le résultat que vous observez à l'écran est
    celui de la commande 2.
  • On peut ainsi appliquer un " filtre " avec la
    commande " grep " sur laffichage de la commande
    " more ".
  • Maintenant, nous pouvons combiner tout ce que
    nous savons en plaçant le résultat de cette
    combinaison de commandes dans notre fichier
    hiv.res.

32
Le Shell et les Scripts Shell(TP1, 2 et 3)
  • Utilisation avancée du Shell
  • Etape n4 sélectionner une partie de
    linformation désirée dans une ligne
  • En utilisant la commande précédente, vous avez vu
    que lon obtient lensemble des lignes du fichier
    hiv.pdb portant le mot " JRNL ".
  • Nous aimerions ne pouvoir sélectionner que
    linformation " pertinente " de ces lignes et non
    les en-têtes.
  • Pour cela, nous pouvons filtrer la sortie de la
    commande " grep " grâce cette fois à la commande
    " cut ".
  • Sachant que les informations pertinentes suivant
    le mot clé " JRNL " commencent systématiquement
    au 20ième caractère, en utilisant la
    documentation de la commande " cut " et ce que
    vous avez appris jusque là, affichez à lécran ou
    dans un fichier uniquement linformation
    pertinente de vos lignes (voir exmple du pipe
    dans le TP 2).

33
Le Shell et les Scripts Shell(TP1, 2 et 3)
  • Utilisation avancée du Shell
  • Etape n5 créer du texte " de novo "
  • Nous allons essayer de donner une certaine mise
    en forme à notre fichier. Par exemple, donner un
    titre à notre document.
  • La commande echo affiche à l'écran ce que nous
    lui donnons en argument. Essayez echo " Bonjour
    le Monde! ".
  • Comme vous savez comment placer ce qui est
    affiché à l'écran dans un fichier, comment feriez
    vous pour écrire "  ARTICLE DU FICHIER  "
    dans le fichier hiv.res (echo .... gt ....)?

34
Le Shell et les Scripts Shell(TP1, 2 et 3)
  • Utilisation avancée du Shell
  • Etape n6 créer un fichier affichant les
    auteurs de l'article scientifique du fichier pdb
  • A la suite du titre mis en forme, nous voulons
    placer dans notre fichier les auteurs de
    l'article (avec une mise en forme également).
  • Repérez le mot clé portant cette information et
    placez la dans votre fichier hiv.res a la suite
    du titre.

35
Le Shell et les Scripts Shell(TP1, 2 et 3)
  • Le Shellscript (voir Tps 4, 5 et 6)
  • Etape n7 introduction à la notion de shell
    script
  • Pour obtenir un résultat correct, il va falloir
    améliorer et donc enrichir et compliquer notre
    liste de commandes.
  • Cela va rapidement devenir fatiguant d'écrire la
    suite de toutes les commandes pour générer notre
    fichier texte en intégralité.
  • Pour éviter cela, il faut rassembler ces
    commandes dans un fichier en un shell script.
  • L'ensemble des commandes sera executé
    séquentiellement par le shell à la suite de
    l'appel du fichier de script.

36
Le Shell et les Scripts Shell(TP1, 2 et 3)
  • Le ShellScript
  • Créez un fichier vide nommé hiv_script (commande
    " touch ").
  • Placez l'ensemble des commandes que vous avez
    tapées précédemment (l'une en dessous de
    l'autre) dans ce fichier avec l'éditeur vi ou un
    éditeur graphique comme gedit/nedit.
  • La première ligne du script sera " !/bin/bash "
    (c'est une convention pour ainsi dire).
  • NB étant donné que vous avez tapé l'ensemble
    des commandes dans le shell et que ce dernier
    possède un historique permettant de rappeler les
    commandes avec la touche fléchée vers le haut,
    comment placer vos commandes au sein du fichier
    sans les réécrire ? (indice pensez à la
    commande " echo ")
  • Une fois le fichier enregistré, effacez votre
    fichier " hiv.res " de la manipulation précédente
    et lancer votre script par la commande
    " ./hiv_script " (il faudra avoir placé le droit
    d'exécution pour l'utilisateur chmod 777
    hiv_script).

37
Le Shell et les Scripts Shell(TP1, 2 et 3)
  • Le Shellscript (voir TP 5 variables
    d'environnement)
  • Etape n8 Introduction à la notion de
    variables
  • Pour améliorer notre script, il faudrait pouvoir
    l'appliquer sur n'importe quel fichier pdb et
    placer les informations dans un fichier dont le
    nom serait différent suivant l'utilisateur (et
    non fixé pour tout le monde).
  • Il faudrait pouvoir donc taper " ./hiv_script
    ltfichier_sourcegt ltfichier_destinationgt " et le
    script s'adapterait aux arguments qu'on lui donne
    en ligne de commande.
  • Ceci est possible grâce aux variables. Des
    variables (contenant des chaînes de caractères ou
    des chiffres) peuvent être créées au besoin dans
    le shell.

38
Le Shell et les Scripts Shell(TP1, 2 et 3)
  • Essayez
  • var  " Bonjour le Monde! "
  • echo var
  • Dans la première ligne, on crée une variable
    " var " initialisée à la valeur " Bonjour le
    Monde! ".
  • Dans la seconde ligne, on affiche le contenu de
    cette variable. La convention veut que l'on
    obtienne le contenu d'une variable en précédant
    son nom du symbole .
  • Unix possède des variables prédéfinies. Par
    exemple, si vous tapez " ./hiv_script
    ltfichier_destinationgt ltfichier_sourcegt ", la
    valeur de ltfichier_destinationgt sera obtenue par
    1 et celle de fichier_source par 2.

39
Le Shell et les Scripts Shell(TP1, 2 et 3)
  • Créez un fichier test_script (avec la commande
    touch) et écrivez dedans
  • !/bin/bash
  • echo " Mon fichier source est 2 et
    mon fichier destination est 1 "
  • Enregistrez ce fichier, faites un chmod ux
    ./test_script et lancez le en écrivant
    " ./test_script hiv.res hiv.pdb ".
  • Modifiez maintenant votre script hiv_script pour
    qu'il puisse extraire ses informations de
    n'importe quel fichier pdb pour les enregistrer
    dans n'importe quel fichier précisé par
    l'utilisateur.

40
Le Shell et les Scripts Shell(TP1, 2 et 3)
  • Etape n9 Obtenir le script final
  • Maintenant que vous avez tous les éléments en
    main, constituez votre script final qui
    devra générer un fichier texte du style 
  • ARTICLE DU FICHIER  
  • Liste des auteurs
  • E.ENNIFAR,M.YUSUPOV,P.WALTER,R.MARQUET,C.EHRESMANN
    ,
  • B.EHRESMANN,P.DUMAS
  • Titre 
  • THE CRYSTAL STRUCTURE OF THE DIMERIZATION
  • INITIATION SITE OF GENOMIC HIV-1 RNA REVEALS AN
  • EXTENDED DUPLEX WITH TWO ADENINE BULGES

41
Le Shell et les Scripts Shell(TP1, 2 et 3)
  • Etape n9 Unix moins puissant que Windows ?
  • Jusquà présent, le travail fournit nest pas à
    la hauteur du résultat (autant prendre son Word
    et réaliser un copier-coller).
  • Nous allons modifier le script afin de pouvoir
    extraire les informations bibliographiques de
    nombreux fichiers pdb stockés dans un répertoire
    de l'arborescence Linux.
  • Le shell interprète certains caractères de
    manière particulière. Ces caractères sont appelés
    " jokers " 
  • remplace nimporte quel caractère ou
    chaîne de caractères,
  • ?   remplace un caractère unique.

42
Le Shell et les Scripts Shell(TP1, 2 et 3)
  • Comparez  " more hiv.pdb " avec " more .pdb ",
    avec " more hi.pdb " et avec " more ???.pdb "
    dans votre répertoire daccueil.
  • Mais notre script, dans son état actuel, ne va
    tenir compte que des deux premiers arguments de
    la ligne de commande (1 et 2).
  • Nous devons lui indiquer les instructions
    suivantes tant que tu trouves un argument de
    type xxx.pdb sur la ligne de commande, fait le
    traitement pour ce fichier.
  • Pour cela nous devons utiliser un élément très
    utilisé en programmation une structure de
    contrôle.
  • Il en existe plusieurs et celle nous intéressant
    sera un " while ". Nous la couplerons à un
    mot-clé du shell qui est " shift ".
  • Cette commande déplace d'un cran vers le bas
    toutes les variables de paramètres (3 devient 2
    et 2 devient 1).
  • Améliorez votre script et appliquez-le à un
    répertoire possédant plusieurs fichiers pdb.
    Visualisez le fichier hiv.res obtenu.

43
Le Shell et les Scripts Shell(TP1, 2 et 3)
  • Exemple du Script final
  • Version pour traiter un seul fichier pdb
  • !/bin/bash
  • design de la fonction de récuperation
  • recup()
  • more fichier_source grep "MOT1" grep
    "MOT2" cut -c 20- gtgt fichier_dest
  • fichier_dest1
  • if -e fichier_dest
  • then rm f fichier_dest
  • fi

44
Le Shell et les Scripts Shell(TP1, 2 et 3)
  • on traite le fichier pdb
  • fichier_source2
  • echo -e "\n ARTICLE DU FICHIER
    fichier_source\n" gt fichier_dest
  • recuperation des auteurs
  • echo -e "Liste des auteurs \n" gtgt fichier_dest
  • MOT1"JRNL"
  • MOT2"AUTH"
  • recup
  • recuperation du titre
  • echo -e "\nTitre \n" gtgt fichier_dest
  • MOT2"TITL"
  • recup
  • exit 0

45
Le Shell et les Scripts Shell(TP1, 2 et 3)
  • Exemple du Script final
  • Version pour traiter un nombre illimité de
    fichiers pdb
  • !/bin/bash
  • design de la fonction de récuperation
  • recup()
  • more fichier_source grep "MOT1" grep
    "MOT2" cut -c 20- gtgt fichier_dest
  • fichier_dest1
  • MOT1"JRNL"
  • if -e fichier_dest
  • then rm f fichier_dest
  • fi

46
Le Shell et les Scripts Shell(TP1, 2 et 3)
  • on traite le ou les fichiers pdb
  • while "2" ! ""
  • do
  • fichier_source2
  • echo -e "\n ARTICLE DU FICHIER
    fichier_source\n" gtgt fichier_dest
  • recuperation des auteurs
  • echo -e "Liste des auteurs \n" gtgt fichier_dest
  • MOT2"AUTH"
  • recup
  • recuperation du titre
  • echo -e "\nTitre \n" gtgt fichier_dest
  • MOT2"TITL"
  • recup shift done exit 0

47
Initiation à l'informatique pour les biologistes
(et futurs bio-informaticiens)
  • PLAN
  • Introduction générale (1 séance de 3 heures )
  • Introduction au système dexploitation Linux (2)
  • Le shell et les shellscripts (2)
  • Configuration et utilisation de lenvironnement
    de travail (2 )
  • La manipulation textuelle avec les commandes
    (e)grep, sed et awk (2)
  • Généralités sur les langages de programmation
    (2)
  • Introduction au langage Perl (2)

48
4. Configuration et utilisation de
l'environnement de travail
  • L'éditeur VI (voit TP1)
  • Le programme VI (prononcer "vee-eye") est un
    éditeur de texte en ligne de commande vous
    permettant de modifier très facilement vos
    fichiers en absence de toute interface graphique.
  • En conséquence, toutes les fonctionnalités quil
    propose sont réalisées par raccourcis clavier.
  • Sur le système UNIX le plus simple possible vous
    pouvez toujours vous attendre à pouvoir utiliser
    VI ou un de ces clones (VIM par exemple pour " VI
    Improved ").
  • Pour lancer VI, tapez sur la ligne de commande
  • Vi ou vi nom_de_fichier

49
4. Configuration et utilisation de
l'environnement de travail
  • L'éditeur VI (voit TP1)
  • VI possède deux modes  le mode de commande et le
    mode dédition.
  • On peut distinguer un troisième mode (ex mode)
    qui est équivalent au mode de commande mais dont
    toutes les commandes tapées commencent par le
    caractère "  " (commandes ex).
  • Au démarrage, VI se trouve dans le mode de
    commande. On passe en mode dinsertion en tapant
    les touches suivantes 
  • touche i  insertion à la position du curseur
  • a  insertion après la position du curseur
  • o  insertion en commençant une nouvelle ligne
    en dessous de la ligne où se trouve le curseur.

50
4. Configuration et utilisation de
l'environnement de travail
  • L'éditeur VI (voit TP1)
  • Voici une liste de touches et de commandes ex les
    plus courantes à utiliser 
  • Se déplacer dans le fichier
  • h,j gauche, bas
  • k,l haut, droit
  • w,W déplacement mot par mot vers lavant
  • b,B déplacement mot par mot vers larrière
  • e,E fin du mot
  • ),( commencement phrase suivante, précédente

51
4. Configuration et utilisation de
l'environnement de travail
  • , commencement paragraphe suivant, précédent
  • , commencement section suivante, précédente
  • 0, première, dernière position de la ligne
    courante
  • H première ligne de lécran
  • M ligne médiane de lécran
  • L dernière ligne de lécran
  • n déplacement à la ligne n
  • 0 déplacement à la première ligne du fichier
  • déplacement à la dernière ligne du fichier

52
4. Configuration et utilisation de
l'environnement de travail
  • L'éditeur VI (voit TP1)
  • Modifier un fichier
  • i,a insère du texte avant/après le curseur
  • I,A insère du texte avant le commencement ou
    après la fin de la ligne
  • o,O ouvre une nouvelle ligne en dessous, au
    dessus du curseur
  • r modifie un caratcère
  • cw modifie un mot
  • cc modifie la ligne courante

53
4. Configuration et utilisation de
l'environnement de travail
  • R écrit par dessus les caractères
  • s efface le caractère et insère un nouveau
    texte
  • S efface la ligne courante et la remplace par
    un nouveau texte
  • x efface le caractère sous le curseur
  • X efface le caractère avant le curseur
  • dw efface un mot
  • dd efface la ligne courante
  • 3dd efface les trois lignes à partir de la
    ligne courante
  • yw copie un mot

54
4. Configuration et utilisation de
l'environnement de travail
  • Rechercher dans le fichier
  • /pattern rechercher un pattern vers lavant
  • ?pattern rechercher un pattern vers larrière
  • n,N répéter la recherche dans la même
    direction, dans la direction opposée
  • Manipulation de fichiers
  • w enregistrer le fichier
  • w nom_de_fichier enregistre le fichier sous un
    nouveau nom
  • w ! forcer à enregistrer
  • x enregistree le fichier et quitter, q !
    forcer à quitter, q quitter

55
4. Configuration et utilisation de
l'environnement de travail
  • Fichiers de démarrage du Shell
  • Linux possède plusieurs types de shell possédant
    chacun leurs avantages.
  • Le shell qui est associé à votre compte est
    précisé dans le fichier /etc/passwd. Ce shell est
    lancé directement après vous être identifié au
    système.
  • Un shell utilise une collection de fichiers de
    démarrage pour aider à la création d'un
    environnement de travail. Pour le bash, ces
    fichiers sont 
  • /etc/profile  cest le premier fichier lu par le
    shell. Il définit des variables denvironnement
    globales pour tous les utilisateurs (tel que le
    PATH)
  • /.bash_profile  équivalent privé du fichier
    /etc/profile

56
4. Configuration et utilisation de
l'environnement de travail
  • /etc/bashrc et son équivalent privé .bashrc
  • /.bash_history contient une liste des
    commandes utilisées récemment
  • /.bash_logout  il est lu par le shell quand un
    utilisateur se déconnecte du système.
  • Les variables denvironnement (voir TP 5)
  • La commande printenv localisée dans le répertoire
    /usr/bin permet dafficher la liste des variables
    denvironnement définies ou bien de consulter la
    valeur dune en particulier.
  • Essayez 
  • printenv SHELL
  • printenv

57
4. Configuration et utilisation de
l'environnement de travail
  • Voici une liste de quelques variables
    denvironnement courantes 
  • EDITOR léditeur par défaut
  • HOME le répertoire daccueil de lutilisateur
    courant
  • LOGNAME le nom de lutilisateur courant
  • MAIL le répertoire à consulter pour larrivée
    demails
  • OSTYPE le système dexploitation utilisé
  • PATH le chemin de recherche des commandes
  • SHELL nom du shell en cours dutilisation
  • USER nom de lutilisateur courant

58
4. Configuration et utilisation de
l'environnement de travail
  • En plus des variables définies par défaut dans le
    système, il est possible de définir des variables
    propres à lutilisateur.
  • La commande à utiliser varie suivant le shell. En
    bash, elle prend la forme suivante 
  • export VARIABLE_NAME'value'
  • La suppression dune variable denvironnement se
    fait avec la commande unset 
  • unset VARIABLE_NAME

59
4. Configuration et utilisation de
l'environnement de travail
  • Une des variables denvironnement la plus
    importante est le PATH qui stocke la liste des
    répertoires dans lequel le système recherche une
    commande que vous venez de taper dans votre
    shell.
  • Si une commande que vous souhaitez utiliser est
    localisée dans un répertoire " non enregistré "
    dans le PATH, il vous faut taper le chemin absolu
    ou relatif en préfixe de cette commande pour que
    le système puisse la trouver.
  • Affichez la valeur actuelle de la variable
    denvironnement PATH.
  • Créez un répertoire bin dans votre répertoire
    daccueil et rajoutez le dans votre PATH. Créez
    dans ce répertoire un shell script qui se
    contente dafficher une phrase sur la sortie
    standard et essayez dexécuter cette nouvelle
    commande de nimporte où simplement en tapant son
    nom sur la ligne de commande.

60
4. Configuration et utilisation de
l'environnement de travail
  • Les variables denvironnement créées directement
    sur la ligne de commande restent temporaires.
    Pour faire en sorte quelles deviennent
    permanentes, il faut stocker la commande de
    création (ou de modification) de la variable dans
    un des fichiers de démarrage du shell, tel que le
    fichier .profile.
  • Chaque utilisateur peut configurer son shell en
    rajoutant des options dans les fichiers .profile
    et .bashrc.
  • Enregistrez dans le fichier .profile votre PATH
    incluant le répertoire bin de votre répertoire
    daccueil. Rajoutez-y une nouvelle définition de
    votre prompt 
  • PS1"\ u_at_\ h \ W\ \ "
  • Export PS1
  • Redémarrez un nouveau shell et observez les
    résultats de votre configuration.

61
4. Configuration et utilisation de
l'environnement de travail
  • Dans votre fichier .bashrc, rajoutez lalias
    suivant 
  • alias xcal cal xmessage -file -
  • Redémarrez un nouveau shell et observez les
    résultats de votre configuration (lancez par
    exemple la nouvelle commande xcal).

62
4. Configuration et utilisation de
l'environnement de travail
  • Installer un nouveau logiciel dans votre
    environnement
  • Lorsque vous voulez récupérer et installer un
    nouveau logiciel, la première étape à distinguer
    est de savoir si vous pouvez bénéficier
    directement de lexécutable pour votre OS ou
    bien si vous devez recompiler cette application
    spécifiquement pour votre plateforme à partir des
    codes sources de lapplication. Souvent on a
  • Sous forme de paquetage RPM. Il s'agit d'un
    fichier portant l'extension .rpm permettant une
    installation automatique, pour les distributions
    Linux telles que RedHat ou Mandrake.
  • Sous forme d'archive. Il s'agit de fichiers
    compressés comportant l'extension .tar.gz, .gz ou
    .tar.bz2
  • La première option est bien plus facile que la
    deuxième. Dans tous les cas, la première étape
    sera la récupération (le plus souvent maintenant
    par Internet) des fichiers (sources ou binaires)
    sous la forme dune archive.

63
4. Configuration et utilisation de
l'environnement de travail
  • Cette archive peut prendre plusieurs formes
    suivant loutil qui a servi à larchivage.
  • Voici la liste des archives les plus courantes
    avec la commande adaptée pour le désarchivage 
  • Suffix Commande de désarchivage
  • .tar tar -xvf
  • .tar.gz tar xzvf
  • .zip unzip
  • .bz2 bunzip2 d
  • .tar.bz2 tar -jxvf

64
4. Configuration et utilisation de
l'environnement de travail
  • Installation à partir dun paquetage RPM
  • RPM (Red Hat Package Manager) est un outil de
    gestion de packages (ensemble de fichiers
    constituant une application) pour Linux. Il
    permet d'installer des applications, ainsi que de
    les supprimer facilement.
  • Grâce à une commande simple, les fichiers
    s'installent directement dans les "bons"
    répertoires.
  • Pour installer le package "clutalw.rpm" il
    suffira de taper
  • rpm -ivh clustalw.rpm
  • Pour supprimer un package il suffit de taper 
  • rpm -e clustalw ou encore rpm -Uvh
    clustalw.rpm pour le mettre à jour.

65
4. Configuration et utilisation de
l'environnement de travail
  • Installation à partir des fichiers binaires 
    " bruts "
  • Si vous disposez directement du bon exécutable,
    le processus dinstallation se résumera à placer
    les fichiers dans un répertoire adapté, à
    configurer votre PATH pour pouvoir exécuter votre
    programme de nimporte quel répertoire et à
    éventuellement régler les paramètres de démarrage
    propres à chaque logiciel.
  • Installation à partir des fichiers de codes
    sources (Archive)
  • Si vous ne pouvez récupérer que les codes sources
    de votre application, ou bien si le binaire nest
    pas exécutable avec votre système, il vous faudra
    recompiler lapplication.
  • Le processus de recompilation dépend du langage
    de programmation choisi pour limplémentation du
    logiciel (C, Java, Perl, Python,).

66
4. Configuration et utilisation de
l'environnement de travail
  • Installation à partir des fichiers de codes
    sources (Archive)
  • Par exemple, dans le cas dun programme codé en
    C, vous trouverez un fichier nommé MakeFile
    contenant toutes les directives pour recompiler
    votre logiciel. Le plus souvent la série de
    commandes suivante devrait suffire 
  • ./configure
  • make
  • make install
  • Si des erreurs saffichent, il est alors
    nécessaire de gérer des problèmes de dépendances
    de librairies qui dépasse le cadre de ce cours
    dintroduction. Il est aussi vivement conseillé
    de lire les fichiers INSTALL et/ou README fournis
    généralement avec les sources pour connaître
    exactement les commandes nécessaires à la
    compilation du programme.

67
4. Configuration et utilisation de
l'environnement de travail
  • Un cas pratique  installation du programme
    CLUSTALW
  • Le programme CLUSTALW est un aligneur de
    séquences pour les séquences nucléiques et
    protéiques.
  • Etape 1  télécharger CLUSTALW
  • En utilisant la commande ftp, connectez-vous au
    site ftp.ebi.ac.uk. Comme login utilisez
    anonymous et ne rentrez aucun password. Récupérer
    le fichier tar.gz pour clustalw dans le
    répertoire /pub/software/unix/clustalw avec la
    commande get. Quittez linterface ftp avec la
    commande quit (on peut aussi utiliser
    l'interface graphique gftp de ftp).
  • Etape 2  installer CLUSTALW
  • Extraire les fichiers de larchive tar.gz. Vous
    disposez ainsi des fichiers sources de
    lapplicatif.

68
4. Configuration et utilisation de
l'environnement de travail
  • Regardez le contenu dun de ces fichiers en
    tapant, dans le répertoire qui a été créé 
  • more clustalw.c
  • Dans le répertoire qui a été créé tapez la
    commande make. Un fichier exécutable clustalw
    doit avoir été créé après cette étape. Tester le
    bon fonctionnement du nouveau programme en tapant
    ./clustalw
  • Etape 3  créer un fichier dinput pour CLUSTALW
  • CLUSTALW accepte des séquences au format FASTA.
    Nous allons utiliser la commande cat pour créer
    un petit fichier FASTA 
  • cat gtsequences ltltSTOP
  • gt gtseq1

69
4. Configuration et utilisation de
l'environnement de travail
  • gt ATCGGATACGTACACGTACCAGTTTTGGG
  • gt gtseq2
  • gt ATTGAGAGCCCACAGATATTTTTTAGAGAGGACATAGGACAAGT
  • gt gtseq3
  • gt TTTGGCCCGGTTCCCCCCCCCAAAAATTGGTGAGATATG
  • gt STOP
  • Etape 4  aligner avec CLUSTALW vos séquences en
    visualisant le résultat
  • Pour aligner les séquences, il faut donner en
    argument à la commande du programme le nom du
    fichier contenant les séquences. Que faut-il
    taper dans le shell ? Comment visualiser le
    résultat ?

70
4. Configuration et utilisation de
l'environnement de travail
  • Etape 5  comment feriez-vous pour que votre
    nouveau programme soit exécutable de nimporte
    quel répertoire ?

Merci de ne pas venir la semaine prochaine car,
et oui, je vais me marier le samedi 4 novembre
2006
71
Initiation à l'informatique pour les biologistes
(et futurs bio-informaticiens)
  • PLAN
  • Introduction générale (1 séance de 3 heures )
  • Introduction au système dexploitation Linux (2)
  • Le shell et les shellscripts (2)
  • Configuration et utilisation de lenvironnement
    de travail (2 )
  • La manipulation textuelle avec les commandes
    (e)grep, sed et awk (2)
  • Généralités sur les langages de programmation
    (2)
  • Introduction au langage Perl (2)

72
5. La manipulation textuelle avec les commandes
(e)grep, sed et awk
  • La commande egrep
  • La commande egrep est équivalente à la commande
    grep que nous avons déjà vue, mais qui létend
    ( e  pour extended) à lutilisation des
    expressions régulières (elle est équivalente à
    grep E).
  • egrep affiche sur la sortie standard les lignes
    qui contiennent une chaîne de caractères
    spécifiée en argument.
  • Une expression régulière est une série de
    caractères formant un motif (un  pattern ) pour
    lequel la commande egrep cherchera des chaînes de
    caractères  cibles  dans ce qui lui est donné
    en input.
  • Une expression régulière est formée de caractères
    standards (ou méta-caractères).

73
5. La manipulation textuelle avec les commandes
(e)grep, sed et awk
  • La commande egrep
  • Motif de recherche Cibles
  • (DNARNA) mots  DNA  ou  RNA 
  • (DR)NA mots  DNA  ou  RNA 
  • tmrRNA mots  tRNA ,  mRNA  ou  rRNA 
  • .omics tous les mots se terminant en omics
    (Genomics, Proteomics,)
  • b.g tous les mots de type big, bug, bag,
  • eEnzyme mots  Enzyme  ou  enzyme 
    commencant une phrase
  • eEnzyme mots  Enzyme  ou  enzyme 
    terminant une phrase

74
5. La manipulation textuelle avec les commandes
(e)grep, sed et awk
  • La commande egrep
  • Voici maintenant le détail dun certain nombre de
    méta-caractères (caractères spéciaux) et leur
    signification
  • . nimporte quel caractère
  • nimporte quel caractère listé entre les
    crochets (tous les caractères)
  • nimporte quel caractère non listé entre
    les crochets
  • a-z nimporte quel caractère entre le  a 
    minuscule et le  z  minuscule
  • Expressions régulières est constituée
    progressivement de plusieurs briques de base
    expressions régulières atomiques (era).

75
5. La manipulation textuelle avec les commandes
(e)grep, sed et awk
  • La commande egrep
  • Récupérez le fichier didentifiant PR0064 sur le
    site Web de la NDB ou 1KOG sur le site de la PDB.
  • Affichez toutes les lignes qui contiennent les
    amino-acides THR ou TYR (egrep T.R gt problème
    on affiche également les lignes qui commence par
    TER).
  • Affichez les lignes qui décrivent les 9 premiers
    atomes (egrep 'ATOM 1-9').
  • ? la liste ou le caractère précédent 0 ou une
    fois
  • la liste ou le caractère précédent 0 ou
    plusieurs fois
  • la liste ou le caractère précédent 1 ou
    plusieurs fois

76
5. La manipulation textuelle avec les commandes
(e)grep, sed et awk
  • La commande egrep
  • ? la liste ou le caractère précédent 0 ou une
    fois
  • la liste ou le caractère précédent 0 ou
    plusieurs fois
  • la liste ou le caractère précédent 1 ou
    plusieurs fois
  • n la liste ou le caractère précédent exactement
    n fois
  • n, la liste ou le caractère précédent au moins
    n fois
  • min,max la liste ou le caractère précédent au
    moins min fois et au plus max fois

77
5. La manipulation textuelle avec les commandes
(e)grep, sed et awk
  • La commande egrep
  • A partir du fichier PDB que vous avez récupéré 
  • affichez toutes les lignes qui contiennent les
    amino-acides THR ou TYR sans les lignes
    commençant par TER  egrep 'ATOM.T.R'
  • affichez tous les atomes des résidus méthionines
    pour les chaînes E et H  egrep 'ATOM.MET EH'
  • affichez tous les atomes des chaînes protéiques
    C, D, K et L  egrep ATOM.17CDKL

78
5. La manipulation textuelle avec les commandes
(e)grep, sed et awk
  • La commande egrep
  • Passez maintenant à lapprentissage de la
    commande sed ci-dessous pour générer facilement
    un fichier au format FASTA contenant de
    nombreuses séquences nucléotidiques. Ce fichier
    va servir pour la suite de la manipulation des
    expressions régulières (il sappellera sequences
    dans la suite).
  • ( ) permet de grouper un pattern dans le but de
    le répéter par exemple.
  • Trouvez le n pour chaque expression régulière qui
    vous donne le nombre de résultats minimum entre 
    (AT)n, ATn et ATn. Quelle différence
    faites-vous entre ces trois expressions
    régulières ?

79
5. La manipulation textuelle avec les commandes
(e)grep, sed et awk
  • La commande egrep
  • En utilisant le méta-caractère    on peut
    implémenter le OU logique  (pattern1 pattern2)
  • Trouvez des séquences qui possèdent le site
    EcorRI (GAATTC) ou HindIII (AAGCTT) ?
  • Comment feriez-vous pour savoir si des séquences
    possèdent les deux sites en même temps ?

80
6. Généralités sur les langages de programmation
  • La commande egrep
  • Les parenthèses permettent également de mémoriser
    un pattern qui a été trouvé dans une mémoire
    interne et de le rappeler via le méta-caractère
    \n. Quel type de séquences sont recherchées dans
    ce cas 
  • egrep (ACGT)(ACGT)(ACGT)(ACGT)\4
    \4\4\4\3\2\1 ./sequences
  • Comment feriez-vous pour trouver un motif ADN
    reconnu par une protéine et se décrivant de la
    façon suivante 
  • - 2 motifs 2R2Y2R directement répétés séparés par
    une série de 10 à 20 T
  • - 2 motifs 2R2Y2R inversement répétés séparés par
    une série de 10 à 20 T

81
5. La manipulation textuelle avec les commandes
(e)grep, sed et awk
  • La commande egrep
  • Quelle différence faites-vous entre 
  • egrep AT10 et egrep (AT)\19
  • egrep .10 et egrep (.)\19
  • Nous avons vu que lon pouvait définir des
    classes de caractères avec les méta-caractères
    . Certaines classes sont directement disponibles
    avec les expressions régulières 
  • -  alnum tous les caractères de  0  à  9 
    ou de  A  à  Z  ou de  a  à  z 
  • -  digit tous les caractères de  0  à  9 

82
5. La manipulation textuelle avec les commandes
(e)grep, sed et awk
  • La commande egrep
  • -  upper tous les caractères de  A  à  Z 
  • -  lower tous les caractères de  a  à  z 
  • -  blank tous les espaces et les tabulations
  • -  space tous les caractères despacement
  • -  punct tous les caractères de ponctuation
    tel que . ,    ? !  

83
5. La manipulation textuelle avec les commandes
(e)grep, sed et awk
  • Exercices à effectuer sur le fichier 1KOG
  • nafficher que les lignes des 99 premiers
    atomes  egrep 'ATOM space 5 space
    ?1-9?0-9'
  • nafficher que les lignes des atomes de 10 à 99 
    egrep 'ATOM space 51-90-9'
  • afficher tous les atomes des résidus de 100 à
    110, 200 à 210 et 300 à 310  egrep
    'ATOM.191-3(00-910)'
  • afficher tous les atomes doxygène ou dazote
    des résidus proline, thréonine, tyrosine et
    histidine après le résidu n500  egrep
    'ATOM.9ON.3(THRTYRPROHIS).35-9'

84
5. La manipulation textuelle avec les commandes
(e)grep, sed et awk
  • La commande sed
  • Sed (pour Stream Editor) est un éditeur de flux
    non interactif. Sed lit un fichier et modifie le
    contenu suivant des règles définies au lancement
    de la commande.
  • Le contenu modifié est affiché à lécran. Pour le
    sauvegarder, il faut rediriger explicitement la
    sortie standard de la commande vers un fichier.
    Sed est utilisé notamment pour substituer du
    texte.
  • La façon la plus simple dutiliser sed est  sed
    -n -e commandes_sed fichier_source
  • sed commande de substitution fichier (sed -n
    -f fichier_commandes fichier_source)
  • la commande de substitution étant de la
    forme  s/pattern/remplacement/

85
5. La manipulation textuelle avec les commandes
(e)grep, sed et awk
  • La commande sed
  • La commande de substitution peut-être plus
    développée encore  adresses/pattern/remplacemen
    t/flags
  • Ladresse indique les lignes sur lesquelles
    sappliqueront les substitutions. Les flags
    modifient le comportement de la substitution.
  • Exemple sed 's / ancien_motif / nouveau_motif
    / g ' fichier_source
  • la fonction s substitution d'une chaîne de
    caractère par une autre.
  • Les linges contenant la chaîne ancien_motif
    seront affichés après substitution d'ancien_motif
    par nouveau_motif, cela est dû au modifieur g qui
    signifie global.

86
5. La manipulation textuelle avec les commandes
(e)grep, sed et awk
  • La commande sed
  • Les adresses peuvent être de la forme 
  • a doit être un entier décrivant un numéro de
    ligne
  • la dernière ligne
  • /re/ toutes les lignes contenant un match à
    lexpression régulière décrite
  • a,b de la ligne numéro a à la ligne numéro b. a
    et b peuvent également être des expressions
    régulières ou
  • x ! la négation dune adresse décrite avec une
    des formes précédente

87
5. La manipulation textuelle avec les commandes
(e)grep, sed et awk
  • Les flags peuvent être de la forme
  • g substitution globale sur la ligne (normalement
    seule la première occurrence pour chaque ligne
    est modifiée)
  • n substitution réalisée que sur la nième
    occurrence pour chaque ligne
  • Entraînons-nous avec le petit fichier fasta
    généré avec la commande cat précédemment 
  • modifiez les noms de séquences de gtsequencex en
    gtseqx  sed s/sequence/seq/
  • rajoutez le site EcoRI GAATTC à la fin des
    séquences dADN  sed '/gt/!s//GAATTC/'

88
5. La manipulation textuelle avec les commandes
(e)grep, sed et awk
  • La commande sed
  • Sur le site de la banque de données Rfam,
    récupérer les alignements Seed de la famille des
    tRNA au format FASTA avec gaps. Créer un fichier
    qui contient le même contenu sans les gaps  sed
    '/gt/!s/\.//g' ./tRNAs gt ./sequences
  • Que se passe-til si on réalise plutôt  sed
    's/.//g' ?? Voyez vous lutilité du caractère
     \  ? Vous rappele-til quelque chose ?
  • Avec loption e on peut réaliser plusieurs
    substitutions en une seule commande. Avec cette
    option, enlevez les gaps et substituez les U par
    des T  sed e '/gt/!s/\.//g' e '/gt/!s/U/T/g'
    ./tRNAs gt ./sequences

89
5. La manipulation textuelle avec les commandes
(e)grep, sed et awk
  • La commande sed
  • Sed permet également deffacer des lignes
    entières (d), de rajouter du texte avant (i) ou
    après (a) une ligne, de changer une ligne entière
    (c) ou d'afficher à l'écran les lignes comprises
    entre n et m (p). Les commandes a,i et c sont à
    lignes multiples et requiert donc un  \ . Ces
    options fonctionnent uniquement avec des
    adresses 
  • - sed /gt/d ./sequences
  • - sed /gt/c\gta sequence ./sequences
  • - sed -n ' n,mp ' fichier_source
  • - sed -n ' /motif_debut/ , / motif_fin /p '
    fichier_source

90
5. La manipulation textuelle avec les commandes
(e)grep, sed et awk
  • La commande awk
  • AWK (Aho, Weinberger et Kernighan) est un outil
    dédition du texte, comme les précédents, mais
    qui comprend un vrai langage de programmation
    permettant de réaliser des choses beaucoup plus
    puissantes.
  • Ce qui ne peux pas être réalisé avec sed, peut
    lêtre avec awk. Les choses que vous ne pouvez
    pas réaliser avec awk seront réalisables avec des
    langages de programmation plus évolués tels que
    Perl qui sera vu dans un chapitre ultérieur.
  • Comme les langages de programmation plus évolués,
    awk permet de réaliser des tests et des boucles,
    de créer et manipuler des variables, de réaliser
    des manipulations textuelles et numériques, etc.
    Awk traite un fichier ligne par ligne et
     découpe  chaque ligne en champs séparés par un
    caractère de séparation q
Write a Comment
User Comments (0)
About PowerShow.com