{"id":355,"date":"2023-09-01T11:11:45","date_gmt":"2023-09-01T09:11:45","guid":{"rendered":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/?page_id=355"},"modified":"2025-03-07T18:10:16","modified_gmt":"2025-03-07T16:10:16","slug":"1-17-3-analisis-de-los-genes-humanos","status":"publish","type":"page","link":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/es\/1-17-3-analisis-de-los-genes-humanos\/","title":{"rendered":"1.17.3. An\u00e1lisis de los genes humanos"},"content":{"rendered":"<p>El an\u00e1lisis del cat\u00e1logo de genes de una especie es un ejemplo perfecto de la utilidad de los comandos del terminal en este cap\u00edtulo. Un gen es una secuencia de ADN que contiene informaci\u00f3n para crear una mol\u00e9cula biol\u00f3gica. Los genes de los organismos eucariotas se componen de exones. Muchos genes humanos tienen combinaciones plausibles de exones, lo que resulta en transcritos alternativos.<\/p>\n<p>Para codificar la ubicaci\u00f3n de los genes, se utilizan ficheros tabulados que contienen informaci\u00f3n como la localizaci\u00f3n y las caracter\u00edsticas del transcrito del gen, como el n\u00famero de exones y las coordenadas exactas.<\/p>\n<p>En este ejercicio, se utiliza la anotaci\u00f3n del consorcio <em>RefSeq<\/em> para obtener informaci\u00f3n sobre el genoma humano, en un primer momento, pero tambi\u00e9n se utilizar\u00e1 informaci\u00f3n del genoma de rat\u00f3n (<em>mouse<\/em>). La informaci\u00f3n se encuentra en un fichero llamado <em>refGene.txt<\/em> y se puede obtener en la p\u00e1gina web del navegador gen\u00f3mico de UCSC mediante el enlace <em>Annotation<\/em>. La direcci\u00f3n de descargas se muestra en la tabla 19.<\/p>\n<div class=\"tabletitle\"><p>Tabla 19. P\u00e1ginas de descarga de los ficheros refGene.txt en funci\u00f3n de la especie.<\/p>\n<\/div>\n<table width=\"603\">\n<tbody>\n<tr class=\"table-header\">\n<td width=\"238\">Acceso<\/td>\n<td width=\"365\">Direcci\u00f3n<\/td>\n<\/tr>\n<tr>\n<td width=\"238\">P\u00e1gina descarga <em>human<\/em><\/td>\n<td width=\"365\"><a href=\"https:\/\/hgdownload.soe.ucsc.edu\/goldenPath\/hg38\/database\/\" target=\"_blank\" rel=\"noopener\">https:\/\/hgdownload.soe.ucsc.edu\/goldenPath\/hg38\/database\/<\/a><\/td>\n<\/tr>\n<tr>\n<td width=\"238\">P\u00e1gina descarga <em>mouse<\/em><\/td>\n<td width=\"365\"><a href=\"https:\/\/hgdownload.soe.ucsc.edu\/goldenPath\/mm39\/database\/\" target=\"_blank\" rel=\"noopener\">https:\/\/hgdownload.soe.ucsc.edu\/goldenPath\/mm39\/database\/<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div class=\"tablefooter\"><p>Fuente: elaboraci\u00f3n propia.<\/p>\n<\/div>\n<p>Las anotaciones, en el servidor de UCSC, suelen representarse gr\u00e1ficamente en el navegador gen\u00f3mico en forma de pista. El navegador gen\u00f3mico est\u00e1 gestionado internamente por el administrador de bases de datos relacionales de MySQL. En consecuencia, en esta p\u00e1gina web encontraremos dos tipos de fichero para cada pista de anotaciones de UCSC. El primer fichero, cuya extensi\u00f3n ser\u00e1 del tipo <em>sql<\/em>, contiene una especificaci\u00f3n gen\u00e9rica de los atributos de las anotaciones. Este archivo es necesario para crear una tabla vac\u00eda en una base de datos relacional. El segundo fichero, que estar\u00e1 comprimido y poseer\u00e1 la extensi\u00f3n <em>txt<\/em>, contiene propiamente la informaci\u00f3n de cada anotaci\u00f3n de forma tabulada. Al acceder a la p\u00e1gina de descarga se visualiza la siguiente informaci\u00f3n:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"droide\">This directory contains a dump of the UCSC genome annotation database for the\r\n\r\n\u00a0\u00a0\u00a0 Dec. 2013 (GRCh38\/hg38) assembly of the human genome\r\n\r\n\u00a0\u00a0\u00a0 (hg38, GRCh38 Genome Reference Consortium Human Reference 38 (GCA_000001405.15))\r\n\r\n\r\n\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 affyGnf1h.sql\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a02015-05-11 01:50\u00a0 2.1K\u00a0\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 affyGnf1h.txt.gz\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 2015-05-11 01:50\u00a0 596K\u00a0\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 \u2026\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 refGene.sql\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 2020-08-17 18:56\u00a0 1.9K\u00a0\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 refGene.txt.gz\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 2020-08-17 18:56\u00a0 8.3M\u00a0\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 \u2026\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 xenoRefSeqAli.sql\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 2020-08-17 19:17\u00a0 2.1K\u00a0\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 xenoRefSeqAli.txt.gz \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 2020-08-17 19:17\u00a0\u00a0 17M<\/pre>\n<p>Ahora procedemos a descargar el fichero <em>txt<\/em> asociado a la pista <em>refGene<\/em>, que contiene el cat\u00e1logo de genes humanos anotados por el consorcio <em>RefSeq<\/em>. Para ello, se utiliza el comando <em>wget<\/em> nuevamente para transferir el fichero al terminal.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$ wget https:\/\/hgdownload.soe.ucsc.edu\/goldenPath\/hg38\/database\/refGene.txt.gz<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"droide\">--2023-04-26 16:35:43--\u00a0\u00a0https:\/\/hgdownload.soe.ucsc.edu\/goldenPath\/hg38\/database\/refGene.txt.gz\r\n\r\nS'est\u00e0 resolent hgdownload.soe.ucsc.edu (hgdownload.soe.ucsc.edu)... 128.114.119.163\r\n\r\nS'est\u00e0 connectant a hgdownload.soe.ucsc.edu (hgdownload.soe.ucsc.edu)|128.114.119.163|:443... conectat.\r\n\r\nHTTP: s'ha enviat la petici\u00f3, s'est\u00e0 esperant una resposta... 200 OK\r\n\r\nMida: 8668756 (8,3M) [application\/x-gzip]\r\n\r\nS'est\u00e0 desant a: \u00abrefGene.txt.gz\u00bb\r\n\r\nrefGene.txt.gz\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 100%[================&gt;]\u00a0\u00a0 8,27M\u00a0 2,22MB\/s\u00a0\u00a0\u00a0 in 3,7s\u00a0\u00a0 \u00a0\r\n\r\n2023-04-26 16:35:49 (2,22 MB\/s) - s'ha desat \u00abrefGene.txt.gz\u00bb [8668756\/8668756]<\/pre>\n<p>A continuaci\u00f3n, te invitamos a que revises el contenido del primer fichero: refGene.sql. ya que es \u00fatil para conocer las caracter\u00edsticas de los genes anotados en cada columna del fichero. Los atributos que se utilizan con mayor frecuencia son los siguientes: <em>name<\/em> (c\u00f3digo del transcrito), <em>chrom<\/em> (cromosoma), <em>strand<\/em> (hebra), <em>txStart<\/em> y <em>txEnd <\/em>(coordenadas de inicio y final), <em>exonCount<\/em> (n\u00famero de exones) y <em>name2<\/em> (nombre del gen). Es importante no confundir los campos <em>name<\/em> y <em>name2<\/em>: un gen puede tener varios transcritos, pero un transcrito solo puede pertenecer a un gen. Estos par\u00e1metros se encuentran en la cabecera del fichero descargado.<\/p>\n<p>Vamos a visualizar el contenido del fichero refGene.txt. Este archivo contiene informaci\u00f3n sobre el cat\u00e1logo completo de genes anotados en el genoma humano. Cada l\u00ednea representa un transcrito de un gen determinado. En el caso de que un gen tenga varios transcritos, cada uno se codifica en l\u00edneas separadas, cada una con su propio c\u00f3digo y sus coordenadas correspondientes. En todas las l\u00edneas, los atributos de cada transcrito est\u00e1n separados por el car\u00e1cter tabulador o \u00ab<em>\\t<\/em>\u00bb. Antes de poder visualizar el contenido del archivo, debemos descomprimirlo utilizando el comando <em>gzip<\/em>.<\/p>\n<p># Descompresi\u00f3n del fichero con <em>gzip<\/em><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$ gzip -d refGene.txt.gz<\/pre>\n<p># Visualizaci\u00f3n de las primeras cinco l\u00edneas con el comando <em>head<\/em><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$\u00a0head\u00a0-5\u00a0refGene.txt<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"droide\">585\u00a0 NR_024540\u00a0 chr1 -\u00a0\u00a0\u00a0 14361 29370 29370 29370 11\u00a0\u00a0\u00a0\u00a0 14361,14969,15795,16606,16857,17232,17605,17914,18267,24737,29320,\u00a0\u00a0\u00a0\u00a0 14829,15038,15947,16765,17055,17368,17742,18061,18366,24891,29370,\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0 WASH7P\u00a0\u00a0\u00a0 unk\u00a0 unk\u00a0 -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,\r\n\r\n585\u00a0 NR_106918\u00a0 chr1 -\u00a0\u00a0\u00a0 17368 17436 17436 17436 1\u00a0\u00a0\u00a0 17368,\u00a0\u00a0\u00a0 17436,\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0 MIR6859-1\u00a0 unk\u00a0 unk\u00a0 -1,\r\n\r\n585\u00a0 NR_107062\u00a0 chr1 -\u00a0\u00a0\u00a0 17368 17436 17436 17436 1\u00a0\u00a0\u00a0 17368,\u00a0\u00a0\u00a0 17436,\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0 MIR6859-2\u00a0 unk\u00a0 unk\u00a0 -1,\r\n\r\n585\u00a0 NR_107063\u00a0 chr1 -\u00a0\u00a0\u00a0 17368 17436 17436 17436 1\u00a0\u00a0\u00a0 17368,\u00a0\u00a0\u00a0 17436,\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0 MIR6859-3\u00a0 unk\u00a0 unk\u00a0 -1,\r\n\r\n585\u00a0 NR_128720\u00a0 chr1 -\u00a0\u00a0\u00a0 17368 17436 17436 17436 1\u00a0\u00a0\u00a0 17368,\u00a0\u00a0\u00a0 17436,\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0 MIR6859-4\u00a0 unk\u00a0 unk\u00a0 -1,<\/pre>\n<p>Ten en cuenta que las anotaciones de un genoma suelen actualizarse frecuentemente. Por este motivo, los datos mostrados en este tutorial pueden variar ligeramente con el paso del tiempo si lo comparas con una nueva descarga del mismo <em>fichero<\/em>.<\/p>\n<p>Debido a la gran cantidad de informaci\u00f3n que contiene este archivo son dif\u00edciles de manejar. A continuaci\u00f3n, se decide trabajar con unos determinados campos y se utilizar\u00e1 el comando <code>gawk<\/code> para extraer \u00fanicamente los campos necesarios de este ejercicio. En particular, encontramos interesantes los siguientes atributos: nombre del gen, identificador del transcrito, cromosoma, hebra, coordenadas y n\u00famero de exones. Para evitar tener que ejecutar el comando previo cada vez que se necesiten estos datos, se redirecciona la salida hacia un archivo refgene-select.txt. Una vez obtenido, se cuentan el n\u00famero total de transcritos humanos.<\/p>\n<p># Analizamos el fichero <em>refGene.sql<\/em> para determinar la posici\u00f3n de cada columna<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$ gawk '{print $13,$2,$3,$4,$5,$6,$9;}' refGene.txt &gt; refgene-select.txt<\/pre>\n<p># Se visualizan las \u00faltimas 5 l\u00edneas<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$ tail -5 refgene-select.txt<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"droide\">KIAA0825 \u00a0 NM_001385728 \u00a0\u00a0 chr5 - \u00a0 94519215 \u00a0 94618604 \u00a0 6\r\n\r\nKIAA0825 \u00a0 NM_001385729 \u00a0\u00a0 chr5 - \u00a0 94519215 \u00a0 94618604 \u00a0 6\r\n\r\nKIAA0825 \u00a0 NR_169752\u00a0 \u00a0\u00a0\u00a0 chr5 - \u00a0\u00a0 94519215 \u00a0 94618604 \u00a0 4\r\n\r\nKIAA0825 \u00a0 NR_169753 \u00a0\u00a0\u00a0\u00a0\u00a0 chr5 - \u00a0\u00a0 94519215 \u00a0 94618604 \u00a0 6\r\n\r\nKIAA0825 \u00a0 NR_169754 \u00a0\u00a0\u00a0\u00a0\u00a0 chr5 - \u00a0 94519215 \u00a0 94618604 \u00a0 6<\/pre>\n<p># El n\u00famero de transcritos es el n\u00famero de l\u00edneas del fichero<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$ wc -l refgene-select.txt<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"droide\">88819 refgene-select.txt<\/pre>\n<p>Continuamos con diferentes an\u00e1lisis,<\/p>\n<p># Se solicita el n\u00famero de transcritos gen\u00e9ticos distribuidos en la hebra positiva<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$ gawk '{if ($4 == \"+\") print $0;}' refgene-select.txt | wc -l<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"droide\">45121<\/pre>\n<p># Se solicita el n\u00famero de transcritos del cromosoma 21<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$ grep chr21 refgene-select.txt | wc -l<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"droide\">1121<\/pre>\n<p># Se muestran los primeros siete transcritos despu\u00e9s de ordenar por nombre del gen<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$ sort refgene-select.txt | head -7<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"droide\">A1BG NM_130786\u00a0 \u00a0\u00a0\u00a0 chr19 \u00a0\u00a0\u00a0 - \u00a0\u00a0 58345182 \u00a0 58353492 \u00a0 8\r\n\r\nA1BG-AS1 NR_015380 \u00a0 chr19 \u00a0\u00a0\u00a0 + \u00a0\u00a0 58351969 \u00a0 58355183 \u00a0 4\r\n\r\nA1CF NM_001198818 \u00a0\u00a0 chr10 \u00a0\u00a0\u00a0 - \u00a0\u00a0 50799408 \u00a0 50885675 \u00a0 14\r\n\r\nA1CF NM_001198819 \u00a0\u00a0 chr10 \u00a0\u00a0\u00a0 - \u00a0\u00a0 50799408 \u00a0 50885675 \u00a0 15\r\n\r\nA1CF NM_001198820 \u00a0\u00a0 chr10 \u00a0\u00a0\u00a0 - \u00a0\u00a0 50799408 \u00a0 50885675 \u00a0 14\r\n\r\nA1CF NM_001370130 \u00a0\u00a0 chr10 \u00a0\u00a0\u00a0 - \u00a0\u00a0 50799408 \u00a0 50885627 \u00a0 12\r\n\r\nA1CF NM_001370131 \u00a0\u00a0 chr10 \u00a0\u00a0\u00a0 - \u00a0\u00a0 50799408 \u00a0 50885627 \u00a0 12<\/pre>\n<p># Se muestran los primeros seis transcritos despu\u00e9s de ordenar por el n\u00famero de genes que contiene cada transcrito<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$ sort -rnk 7 refgene-select.txt | head -6<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"droide\">TTN NM_001267550 \u00a0\u00a0\u00a0 chr2 - \u00a0 178525990 178807423 363\r\n\r\nTTN NM_001256850 \u00a0\u00a0\u00a0 chr2 - \u00a0\u00a0 178525990 178807423 313\r\n\r\nTTN NM_133378 \u00a0 chr2 - \u00a0\u00a0 178525990 178807423 312\r\n\r\nTTN NM_133437 \u00a0 chr2 - \u00a0\u00a0 178525990 178807423 192\r\n\r\nTTN NM_133432 \u00a0 chr2 - \u00a0\u00a0 178525990 178807423 192\r\n\r\nTTN NM_003319 \u00a0 chr2 - \u00a0\u00a0 178525990 178807423 191<\/pre>\n<p>El fichero <em>refgene-select.txt<\/em> contiene el listado de los transcritos humanos. Como un gen puede dar lugar a varios transcritos alternativos, podemos contar cu\u00e1ntos genes tiene el genoma humano y averiguar cu\u00e1les poseen un mayor n\u00famero de transcritos. Para conseguirlo, ordenamos los nombres de los genes e introducimos diferentes variantes del comando <code>uniq<\/code> para agruparlos. Por otra parte, la mejor forma de estudiar el comportamiento de una l\u00ednea de comandos es la deconstrucci\u00f3n: eliminando las \u00faltimas instrucciones se puede mostrar el resultado parcial de la ejecuci\u00f3n en pantalla.<\/p>\n<p># Ordena la columna por el nombre de los genes<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$ gawk '{print $1;}' refgene-select.txt | sort | more<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"droide\">A1BG\r\n\r\nA1BG-AS1\r\n\r\nA1CF\r\n\r\nA1CF\r\n\r\nA1CF\r\n\r\nA1CF\r\n\r\nA1CF\r\n\r\n\u2026<\/pre>\n<p># Ordena la columna por el nombre de los genes y que sean valores \u00fanicos<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$ gawk '{print $1;}' refgene-select.txt | sort | uniq | more<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"droide\">A1BG\r\n\r\nA1BG-AS1\r\n\r\nA1CF\r\n\r\nA2M\r\n\r\nA2M-AS1\r\n\r\nA2ML1\r\n\r\n\u2026<\/pre>\n<p># Determina el n\u00famero de genes \u00fanicos en el fichero<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$ gawk '{print $1;}' refgene-select.txt | sort | uniq | wc -l<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"droide\">28307<\/pre>\n<p># Determina cu\u00e1ntos transcritos hay para cada uno de los genes<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$ gawk '{print $1;}' refgene-select.txt | sort | uniq -c | more<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"droide\">1 A1BG\r\n\r\n1 A1BG-AS1\r\n\r\n8 A1CF\r\n\r\n4 A2M\r\n\r\n3 A2M-AS1\r\n\r\n2 A2ML1\r\n\r\n1 A2MP1\r\n\r\n\u2026<\/pre>\n<p># Determina cu\u00e1ntos transcritos hay para cada uno de los genes y ordenalos por el n\u00famero de exones, de mayor a menor<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$ gawk '{print $1;}' refgene-select.txt | sort | uniq -c | sort -rn<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"droide\">260 KIR2DS2\r\n\r\n215 LOC101928804\r\n\r\n177 KIR2DS4\r\n\r\n144 MAP4\r\n\r\n144 KIR3DS1\r\n\r\n129 KIR2DL\r\n\r\n\u2026<\/pre>\n<p>Otra operaci\u00f3n muy frecuente consiste en el c\u00e1lculo de valores promedio. En el siguiente ejemplo, el estudiante calcular\u00e1 el promedio de exones por transcrito y la longitud media de estos. El funcionamiento de <code>gawk<\/code> es similar en ambos casos, ya que trabaja con la variable <em>t <\/em>como contador que acumula la suma total. La divisi\u00f3n por el n\u00famero de l\u00edneas visitadas (NR), una vez que se completa la lectura del archivo, genera el valor promedio en cada caso.<\/p>\n<p># C\u00e1lculo de promedio de exones por transcrito<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$ gawk 'BEGIN{t=0;}{t=t+$7;}END{print t\/NR;}' refgene-select.txt<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"droide\">10.0961<\/pre>\n<p># C\u00e1lculo de la longitud media de los transcritos<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$ gawk 'BEGIN{t=0;}{t=t+$6-$5+1;}END{print t\/NR;}' refgene-select.txt<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"droide\">64883<\/pre>\n<p>Para ilustrar la utilidad de asociar dos ficheros de texto tabulado, se va a combinar el cat\u00e1logo de genes humanos introducido hasta ahora (archivo <em>refGene.txt<\/em> para <em>H. sapiens se renombra a refGene-human.txt<\/em>) con el cat\u00e1logo equivalente del genoma del rat\u00f3n (archivo <em>refGene.txt<\/em> para <em>M<\/em>. <em>musculus<\/em> y renombrado como <em>refGene-mouse.txt<\/em> despu\u00e9s de haberlo descargado del servidor gen\u00f3mico de UCSC).<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$\u00a0gzip\u00a0-d\u00a0refGene.txt.gz<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$\u00a0mv\u00a0refGene.txt\u00a0refGene-human.txt<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$ wget https:\/\/hgdownload.soe.ucsc.edu\/goldenPath\/mm39\/database\/refGene.txt<\/pre>\n<p># Se renombre el fichero del genoma <em>M.musculus<\/em><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$ mv refGene.txt refGene-mouse.txt<\/pre>\n<p># Para cada uno de los ficheros, se seleccionan las columnas nombre del gen y cromosoma y posteriormente se visualizan los 5 primeros<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$\u00a0gawk\u00a0'{print\u00a0$13,\u00a0$3;}'\u00a0refGene-human.txt\u00a0|\u00a0sort\u00a0|\u00a0uniq\u00a0&gt;\u00a0refgene-select-human.txt<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$\u00a0head\u00a0-5\u00a0refgene-select-human.txt<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"droide\">A1BG chr19\r\n\r\nA1BG-AS1 chr19\r\n\r\nA1CF chr10\r\n\r\nA2M chr12\r\n\r\nA2M-AS1 chr12<\/pre>\n<p># Para el fichero genoma de rat\u00f3n<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$\u00a0gawk\u00a0'{print\u00a0$13,\u00a0$3;}'\u00a0refGene-mouse.txt\u00a0|\u00a0sort\u00a0|\u00a0uniq\u00a0&gt;\u00a0refgene-select-mouse.txt<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$\u00a0head\u00a0-5\u00a0refgene-select-mouse.txt<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"droide\">0610005C13Rik chr7\r\n\r\n0610009B22Rik chr11\r\n\r\n0610009E02Rik chr2\r\n\r\n0610009L18Rik chr11\r\n\r\n0610010F05Rik chr11<\/pre>\n<p>Con esta transformaci\u00f3n previa del fichero, se han preparado los ficheros para utilizar el comando <code>join<\/code>: a continuaci\u00f3n, se muestra c\u00f3mo asociar los genes que tienen el mismo nombre en ambas especies. Al comando <code>join<\/code> se a\u00f1ade la opci\u00f3n <em>-i<\/em>, para que se ignoran las diferencias de may\u00fasculas\/min\u00fasculas. Cada l\u00ednea del resultado final contiene el nombre del gen y su ubicaci\u00f3n en ambos genomas.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$\u00a0join\u00a0-i\u00a0refgene-select-human.txt\u00a0refgene-select-human.txt\u00a0&gt;\u00a0refgene-comun.txt<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$\u00a0head\u00a0-5\u00a0refgene-comun.txt<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"droide\">A1BG chr19 chr19\r\n\r\nA1BG-AS1 chr19 chr19\r\n\r\nA1CF chr10 chr10\r\n\r\nA2M chr12 chr12\r\n\r\nA2M-AS1 chr12 chr12<\/pre>\n<p>A partir de este an\u00e1lisis preliminar del cat\u00e1logo de genes humanos, se pueden poner en pr\u00e1ctica m\u00faltiples variantes de los comandos aqu\u00ed mostrados. Por ejemplo, es posible a\u00f1adir m\u00e1s atributos, m\u00e1s genomas o m\u00e1s ficheros con otras propiedades para ampliar esta exploraci\u00f3n. Por lo tanto, os animamos a experimentar con cada bloque de comandos utilizado durante este ejercicio. Con esta aplicaci\u00f3n pr\u00e1ctica, se demuestra la validez del terminal de Gnu\/Linux para analizar eficientemente datos biol\u00f3gicos. En futuros apartados, se introducir\u00e1n sistemas m\u00e1s complejos para gestionar grandes conjuntos de datos, de modo que el usuario podr\u00e1 reproducir el mismo caso pr\u00e1ctico utilizando dichas t\u00e9cnicas.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>El an\u00e1lisis del cat\u00e1logo de genes de una especie es un ejemplo perfecto de la utilidad de los comandos del terminal en este cap\u00edtulo. Un gen es una secuencia de ADN que contiene informaci\u00f3n para crear una mol\u00e9cula biol\u00f3gica. Los genes de los organismos eucariotas se componen de exones. Muchos genes humanos tienen combinaciones plausibles [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"acf":[],"_links":{"self":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/es\/wp-json\/wp\/v2\/pages\/355"}],"collection":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/es\/wp-json\/wp\/v2\/comments?post=355"}],"version-history":[{"count":15,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/es\/wp-json\/wp\/v2\/pages\/355\/revisions"}],"predecessor-version":[{"id":1320,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/es\/wp-json\/wp\/v2\/pages\/355\/revisions\/1320"}],"wp:attachment":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/es\/wp-json\/wp\/v2\/media?parent=355"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}