{"id":2427,"date":"2024-09-16T09:24:34","date_gmt":"2024-09-16T07:24:34","guid":{"rendered":"https:\/\/bioinfo2.ugr.es\/biocomputacion\/?page_id=2427"},"modified":"2024-10-03T12:34:30","modified_gmt":"2024-10-03T10:34:30","slug":"herramientas-en-linux","status":"publish","type":"page","link":"https:\/\/bioinfo2.ugr.es\/biocomputacion\/herramientas-en-linux\/","title":{"rendered":"Herramientas en linux"},"content":{"rendered":"<p>Una instalaci\u00f3n est\u00e1ndar del sistema operativo Linux cuenta con un amplio numero de herramientas que nos pueden facilitar muchas tareas como:<\/p>\n<ul>\n<li>visualisar un fichero<\/li>\n<li>buscar un patr\u00f3n en un fichero de texto<\/li>\n<li>procesar un fichero tabular (la informaci\u00f3n se encuentra en diferentes columnas)<\/li>\n<li>sustituir ciertas palabras por otras<\/li>\n<li>buscar ficheros que cumplen ciertas caracter\u00edsticas<\/li>\n<li>&#8230;<\/li>\n<\/ul>\n<p>Estas herramientas son especialmente importantes cuando trabajamos con ficheros muy grandes &#8211; demasiado grandes para abrirlos en un editor de texto (o hoja de c\u00e1lculo).<\/p>\n<p>Adem\u00e1s, la interfaz entre el usuario y el SO (la shell) cuenta con su propio <a href=\"https:\/\/www.freecodecamp.org\/espanol\/news\/tutorial-de-programacion-de-bash-script-de-shell-de-linux-y-linea-de-comandos-para-principiantes\/\" target=\"_blank\" rel=\"noopener\">leguaje de programaci\u00f3n<\/a> que nos puede facilitar muchas tareas.<\/p>\n<h4>Procesar un fichero grande<\/h4>\n<p>Tenemos el siguiente fichero: \/opt\/datos\/sequences.csv que contiene las anotaciones de todos los genomas secuenciados del virus SARS-Cov-2.<\/p>\n<ul>\n<li>Visualizar el contenido<\/li>\n<\/ul>\n<pre>less \/opt\/datos\/sequences.csv\r\n\r\nmore \/opt\/datos\/sequences.csv<\/pre>\n<ul>\n<li>Ver el tama\u00f1o de los ficheros<\/li>\n<\/ul>\n<pre>cd \/opt\/datos\r\ndu -h *<\/pre>\n<ul>\n<li>Contar el n\u00famero de lineas<\/li>\n<\/ul>\n<pre>wc -l \/opt\/datos\/sequences.csv<\/pre>\n<ul>\n<li>Buscar lineas que contienen palabras claves<\/li>\n<\/ul>\n<p>grep &#8211;help<\/p>\n<p>grep &#8216;Spain&#8217; \/opt\/datos\/sequences.csv<\/p>\n<ul>\n<li>\u00bfCuantas lineas existen que contienen &#8216;Spain&#8217;?<\/li>\n<\/ul>\n<p>Soluci\u00f3n: Unir dos comandos, grep y wc usando <a href=\"https:\/\/rsg-ecuador.github.io\/unix.bioinfo.rsgecuador\/content\/Curso_basico\/04_Procesamiento_ficheros_regex_pipes\/7_Pipes.html\" target=\"_blank\" rel=\"noopener\"><strong>Pipes<\/strong><\/a><\/p>\n<pre>grep 'Spain' \/opt\/datos\/sequences.csv <span style=\"color: #ff0000;\"><strong>|<\/strong><\/span> wc -l<\/pre>\n<p>La herramienta <em>wc<\/em> acepta entrada por <a href=\"https:\/\/es.wikipedia.org\/wiki\/Flujos_de_dato_est%C3%A1ndares\" target=\"_blank\" rel=\"noopener\">STDIN<\/a> que proporciona <em>grep<\/em>.<\/p>\n<ul>\n<li>Redirigir la salida a un fichero de texto<\/li>\n<\/ul>\n<pre>grep 'Spain' \/opt\/datos\/sequences.csv <strong><span style=\"color: #ff0000;\">&gt;<\/span><\/strong> \/home\/usuario\/sars_cov_spain.txt<\/pre>\n<ul>\n<li>Trabajar con ficheros comprimidos<\/li>\n<\/ul>\n<pre>gunzip -c \/opt\/datos\/sequences_comp.csv.gz\u00a0| grep 'Spain' | wc -l<\/pre>\n<p>gunzip -c descomprime un fichero &#8216;sobre la marcha&#8217; y escribe el resultado por STDOUT (la pantalla).<strong> \u00a1No descomprime el fichero generando uno nuevo!<\/strong><\/p>\n<p>&nbsp;<\/p>\n<h4>Extraer diferentes columnas de un fichero<\/h4>\n<pre>cut --help<\/pre>\n<pre>cut -f 1,2 -d , \/opt\/datos\/sequences.csv<\/pre>\n<p>con -f podemos indicar las columnas y con -d tenemos que especificar el car\u00e1cter usado para separar las columnas (suele ser o el tabulador o la coma)<\/p>\n<p>Problema: hay columnas que contienen comas internas (por ejemplo la columna que lista los autores separados por comas). Estas columnas est\u00e1n &#8216;encomilladas&#8217; pero la herramienta <em>cut<\/em> ignora esta informaci\u00f3n.<\/p>\n<p>Soluci\u00f3n: Preguntar a <a href=\"https:\/\/chatgpt.com\/\" target=\"_blank\" rel=\"noopener\">ChatGPT<\/a><\/p>\n<pre class=\"p1\">csvtool col 1,2,19,20,21,22,23 &lt;(gunzip -c sequences_comp.csv.gz)<\/pre>\n<h5>Preguntas:<\/h5>\n<ul>\n<li>\u00bfCuantas entradas (genomas secuenciados) hay por pais?<\/li>\n<li>Generar un fichero con el conteo por pais ordenado.<\/li>\n<li>\u00bfCuantas entradas hay por estado en USA?<\/li>\n<li>\u00bfCuantas entradas hay por a\u00f1o?<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h4>Ejercicios:<\/h4>\n<p>Tenemos el fichero \/opt\/datos\/consensus.txt<\/p>\n<p>Reportar:<\/p>\n<ul>\n<li>Tama\u00f1o y n\u00famero de lineas del fichero<\/li>\n<li>N\u00famero de microRNAs diferentes (primera columna)<\/li>\n<li>N\u00famero de genes diferentes (entradas que empiezan con ENSG en la segunda columna)<\/li>\n<li>Extraer todas las lineas de los microRNAs\n<ul>\n<li>iri-miR-34-5p<\/li>\n<li>iri-miR-2b-3p<\/li>\n<li>iri-miR-bantam-5p<\/li>\n<li>iri-miR-10a-5p<\/li>\n<li>iri-miR-279a-5p<\/li>\n<\/ul>\n<\/li>\n<li>\u00bfCuantas l\u00edneas hay con un valor &gt;= 3 en la tercera columna?<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Una instalaci\u00f3n est\u00e1ndar del sistema operativo Linux cuenta con un amplio numero de herramientas que nos pueden facilitar muchas tareas como: visualisar un fichero buscar un patr\u00f3n en un fichero de texto procesar un fichero tabular (la informaci\u00f3n se encuentra <a href=\"https:\/\/bioinfo2.ugr.es\/biocomputacion\/herramientas-en-linux\/\" class=\"read-more\">Read More &#8230;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"_links":{"self":[{"href":"https:\/\/bioinfo2.ugr.es\/biocomputacion\/wp-json\/wp\/v2\/pages\/2427"}],"collection":[{"href":"https:\/\/bioinfo2.ugr.es\/biocomputacion\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/bioinfo2.ugr.es\/biocomputacion\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/bioinfo2.ugr.es\/biocomputacion\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bioinfo2.ugr.es\/biocomputacion\/wp-json\/wp\/v2\/comments?post=2427"}],"version-history":[{"count":19,"href":"https:\/\/bioinfo2.ugr.es\/biocomputacion\/wp-json\/wp\/v2\/pages\/2427\/revisions"}],"predecessor-version":[{"id":2458,"href":"https:\/\/bioinfo2.ugr.es\/biocomputacion\/wp-json\/wp\/v2\/pages\/2427\/revisions\/2458"}],"wp:attachment":[{"href":"https:\/\/bioinfo2.ugr.es\/biocomputacion\/wp-json\/wp\/v2\/media?parent=2427"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}