{"id":1735,"date":"2015-11-27T16:48:38","date_gmt":"2015-11-27T21:48:38","guid":{"rendered":"http:\/\/bioinfo.iric.ca\/fr\/?p=1735"},"modified":"2017-04-29T17:09:17","modified_gmt":"2017-04-29T21:09:17","slug":"arguments-de-grep-que-tout-bioinformaticien-devrait-connaitre","status":"publish","type":"post","link":"https:\/\/bioinfo.iric.ca\/fr\/arguments-de-grep-que-tout-bioinformaticien-devrait-connaitre\/","title":{"rendered":"Arguments de \u00ab\u00a0grep\u00a0\u00bb que tout bioinformaticien devrait connaitre"},"content":{"rendered":"<p>Le shell, ainsi que la myriade d&rsquo;outils en ligne de commande qu&rsquo;il nous offre est un grand ami lorsque vient le temps de manipuler des fichiers de donn\u00e9es. Et soyons francs, manipuler des fichiers, c&rsquo;est une bonne partie du travail d&rsquo;un bioinformaticien.  Cependant, puisque nous avons rarement le temps de survoler l&rsquo;ensemble des arguments offerts par les diff\u00e9rents programmes d&rsquo;Unix, je me suis dit que je vous pr\u00e9senterais mes pr\u00e9f\u00e9r\u00e9s de l&rsquo;utilitaire <a href=\"https:\/\/en.wikipedia.org\/wiki\/Grep\" target=\"_blank\"><strong>grep<\/strong><\/a>. <\/p>\n<p>Je prends pour acquis que tout le monde connais <strong>grep<\/strong> et sa raison d&rsquo;\u00eatre alors allons directement aux arguments \ud83d\ude42<\/p>\n<h3 class=\"fixed-width\">-i, &#8211;ignore-case<\/h3>\n<p>En voici un assez facile \u00e0 comprendre et il appert utile lorsque vous ne connaissez pas la structure de casse utilis\u00e9e au sein du fichier que vous voulez fouiller.<br \/>\n<strong>Exemple d&rsquo;utilisation:<\/strong> <\/p>\n<pre><code class=\"bash\"># Recherche d'entr\u00e9es au sein de fichiers d'annotation de souris et d'humain \r\n# \u00e0 l'aide de <em>Gene Symbols<\/em> (ie: HOXB4 vs Hoxb4). \r\n\r\n> grep -i 'hoxb4' annotations_humaines_ou_murines.txt\r\n<\/code><\/pre>\n<h3 class=\"fixed-width\">-w, &#8211;word-regexp<\/h3>\n<p>S\u00e9lection de lignes pour lesquelles notre patron de recherche repr\u00e9sente un mot complet.<br \/>\nCelui-ci peut vraiment s&rsquo;av\u00e9rer pratique. Par exemple: utiliser grep pour chercher la chaine &lsquo;chr1&rsquo; dans un fichier gtf en oubliant de sp\u00e9cifier l&rsquo;argument -w vous laissera d&rsquo;humeur massacrante lorsque vous r\u00e9aliserez que vous avez aussi s\u00e9lectionn\u00e9 les lignes associ\u00e9es aux chr10, 11, 12, 13, etc..  Mais maintenant, vous \u00eates plus fut\u00e9s !<br \/>\n<strong>Exemple d&rsquo;utilisation:<\/strong> <\/p>\n<pre><code class=\"bash\"># Extraire les entr\u00e9es associ\u00e9es au chromosome 1 d'un fichier gtf. \r\n\r\n> grep -w 'chr1' genes.gtf\r\n<\/code><\/pre>\n<h3 class=\"fixed-width\">-f FILE, &#8211;file=FILE<\/h3>\n<p>Vous voulez fouiller pour la pr\u00e9sence de plusieurs patrons d&rsquo;un seul coup ?<br \/>\nD\u00e9posez les tous dans un fichier texte, \u00e0 raison d&rsquo;un patron par ligne, et recherchez-les tous \u00e0 l&rsquo;aide d&rsquo;une seule commande !<br \/>\n<strong>Exemple d&rsquo;utilisation:<\/strong><\/p>\n<pre><code class=\"bash\">#  Extraire les MAFs pour un ensemble de quelques centaines de SNPs \u00e0 l'aide de leurs rsIDs.\r\n\r\n> grep -w -F fichier_de_patrons.txt ESP.vcf\r\n\r\n# Redirigez la sortie vers un petit script <strong class=\"bash\">awk<\/strong>, \r\n# et boum ! La mission est un succ\u00e8s. :)\r\n<\/code><\/pre>\n<h3 class=\"fixed-width\">-v, &#8211;invert-match<\/h3>\n<p>Celui-ci force grep \u00e0 retourner les lignes qui ne contiennent <strong>PAS<\/strong> votre patron de recherche.<br \/>\n<strong>Exemple d&rsquo;utilisation:<\/strong> <\/p>\n<pre><code class=\"bash\"># G\u00e9n\u00e9rer une version \"femelle\" d'un gtf. (pourquoi pas..)\r\n\r\n> grep -v 'chrY' unisex.gtf\r\n\r\n# affaire r\u00e9gl\u00e9e !\r\n<\/code><\/pre>\n<p>Et pour terminer:<\/p>\n<h3 class=\"fixed-width\">-B NUM, &#8211;before-context NUM<br \/>\n-A NUM, &#8211;after-context NUM<\/h3>\n<p>Ces arguments demandent \u00e0 grep d&rsquo;imprimer les N (NUM) lignes AVANT (<u>B<\/u>efore) ou <u>A<\/u>pr\u00e8s le hit du patron de recherche.<br \/>\n<strong>Exemple d&rsquo;utilisation:<\/strong> <\/p>\n<pre><code class=\"bash\"># Extraire les reads d'un fichier fastq qui contiennent une chaine de nucl\u00e9otides donn\u00e9e. \r\n\r\n> grep -B 1 -A 2 -i 'ccggaacgcagcgaagtggaacgcgcgaactgcgaa' reads.fastq\r\n\r\n# (Bon d'accord, faudra r\u00e9p\u00e9ter pour la s\u00e9quence reverse-compl\u00e9ment\u00e9e...)\r\n<\/code><\/pre>\n<p>Bien sur, sentez-vous bien \u00e0 l&rsquo;aise de m\u00e9langer l&rsquo;usage de ces arguments pour obtenir l&rsquo;effet d\u00e9sir\u00e9&#8230;<br \/>\nEt n&rsquo;oubliez pas que vous pouvez rediriger la sortie d&rsquo;un grep&#8230; Vers grep !<\/p>\n<p>Voici voil\u00e0.. Mes arguments grep pr\u00e9f\u00e9r\u00e9s.<br \/>\nEt si j&rsquo;ai omis <strong>vos<\/strong> arguments pr\u00e9f\u00e9r\u00e9s, laissez-le moi savoir dans les commentaires !<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Le shell, ainsi que la myriade d&rsquo;outils en ligne de commande qu&rsquo;il nous offre est un grand ami lorsque vient le temps de manipuler des fichiers de donn\u00e9es. Et soyons francs, manipuler des fichiers, c&rsquo;est une bonne partie du travail d&rsquo;un bioinformaticien. Cependant, puisque nous avons rarement le temps de survoler l&rsquo;ensemble des arguments offerts par les diff\u00e9rents programmes d&rsquo;Unix, je me suis dit que je vous pr\u00e9senterais mes pr\u00e9f\u00e9r\u00e9s de l&rsquo;utilitaire grep. Je prends pour acquis que tout le <a href=\"https:\/\/bioinfo.iric.ca\/fr\/arguments-de-grep-que-tout-bioinformaticien-devrait-connaitre\/\"> [&#8230;]<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[69,70],"tags":[79,80],"class_list":["post-1735","post","type-post","status-publish","format-standard","hentry","category-analyse-de-donnees","category-scripts","tag-bash","tag-unix"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/bioinfo.iric.ca\/fr\/wp-json\/wp\/v2\/posts\/1735","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bioinfo.iric.ca\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bioinfo.iric.ca\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bioinfo.iric.ca\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bioinfo.iric.ca\/fr\/wp-json\/wp\/v2\/comments?post=1735"}],"version-history":[{"count":13,"href":"https:\/\/bioinfo.iric.ca\/fr\/wp-json\/wp\/v2\/posts\/1735\/revisions"}],"predecessor-version":[{"id":1900,"href":"https:\/\/bioinfo.iric.ca\/fr\/wp-json\/wp\/v2\/posts\/1735\/revisions\/1900"}],"wp:attachment":[{"href":"https:\/\/bioinfo.iric.ca\/fr\/wp-json\/wp\/v2\/media?parent=1735"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bioinfo.iric.ca\/fr\/wp-json\/wp\/v2\/categories?post=1735"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bioinfo.iric.ca\/fr\/wp-json\/wp\/v2\/tags?post=1735"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}